首页 > 编程知识 正文

自制编程语言基于c语言pdf,plc编程语言与c语言的联系

时间:2023-05-03 17:51:27 阅读:144839 作者:2283

正文:

说到Arduion主板,软绵绵的首先提到的是Arduino UNO R3主板。 Arduino/Genuino Uno是基于ATmega328P的单片机开发板。 14个数字输入输出引脚,其中6个可用作PWM输出。 有6个模拟输入针脚、16 MHz晶体振荡器、USB连接、电源插孔、ICSP连接器和复位按钮。 只需使用USB电缆连接到计算机,或使用交流至直流适配器或电池供电,即可开始使用。 也不用担心弄错什么,可以修改UNO。 最坏的情况下,你只需要换几元的芯片重新开始。

“Uno”是意大利语的“一”的意思,被选为Arduino软件(IDE ) 1.0的发行版。 Uno主板和Arduino软件(IDE ) 1.0版是Arduino的第一个版本,目前正在发展为新版本。 这是USB Arduino系列主板的第一个主板,以及Arduino平台的参考机型。

优点:经典,适合入门。

缺点:性能中庸,与上下相比各有不足。 另一块板的优点是这块板不够。

Arduion UNO R3规格:

工作电压: 5V

输入电压: USB连接时无需外部供电或外部7V~12V DC输入

输出电压: 5V DC输出、3.3V DC输出和外部电源输入

微处理器: ATmega328

Bootloader:Arduino Uno

时钟频率: 16 MHz

输入电压(推荐)7-12V

输入电压(限制)6-20V

支持USB接口协议和电源供应(不需要外部电源) ) ) ) )。

支持ISP下载功能。

数字I/O端口14 (4个PWM输出端口) )。

数字I/O端口14 (4个PWM输出端口) )。

模拟输入端口6

直流电流I/O端口40mA

直流电流3.3V端口50mA

闪存: 32kb(atmega328 ) (用于引导加载程序0.5 KB ) ) ) ) ) )。

SRAM2kb(Atmega328 ) )。

(EEPROM1kb(atmega328 ) () ) ) ) ) ) ) ) ) ) ) ) 652

尺寸: 75x55x15mm毫米

Arduino还有很多其他型号的主板。 谢谢你借了其他开发者总结的图,为我总结:

开式板选型使用总结

学习入门:推荐UNO。 UNO几乎都是作为Arduino开发板的形象代言人登场的。 因此,如果说Arduino开发板默认被识别为UNO,笔者就不赞成。 各属性在Arduino主板系列中非常中庸,库、项目等多种资源与UNO配套,适合学习、入门,有很多帮助。

物联网开发:推荐Mega2560。 吹了很久,为什么不说Yun、Due、以太网这些面向服务器的开发板呢? 由于esp8266非常强大,所以像Zigbee的没落一样,物联网硬件正在慢慢沉淀。 推荐Mega2560也是因为它适用于客户端和客户端分发。

可穿戴:推荐Arduino101或Nano/Micro。 这是两种解决方案,101是高性能的,集成了BLE和IMU。 问题是开发习惯和体积。 Nano/Micro 6050 BT/WIFI正好体积小,但性能有限,兼容性有漏洞。

USB设备:推荐Micro。 32u4主控设备(如联想)可以用作模拟USB设备。 之所以推荐Micro,只是因为它体积小,成本最低。

PS: Arduino及其徽标是Arduino意大利官方所有的商标,不能自由使用。 国内很多写有Arduino的控制器都是侵权行为,开源并不是没有版权。 建议购买Arduino或找正规制造商。 希望支持Seeed、OpenJumper等正规销售人员。 正版UNO约100多元,国内模仿的板子约不到30元,其中不好的不仅有质量,还有版权灯。

Arduino语言

Arduino正在用C/C编写程序。 c与c语言兼容,但这是两种语言。 c语言是面向过程的编程语言,c是面向对象的编程语言。 早期的Arduino核心库是用c语言编写的,然后引入了面向对象的思想,目前最新的Arduino核心库是用c和c混合编写的。

Arduino语言通常是Arduino核心库文件提供的各种APP应用程序编程接口(applicationprogramminginterface,简称API )的集合。 这些API是对更基础的单片机支持库的二次封装。 例如,使用AVR单片机的Arduino核心库是AVR-libc (基于gcc的AVR支持库)的次级封装。

传统的开发方式需要明确各寄存器的含义和关系,通过配置多个寄存器来达到目的。 Arduino使用简单易懂的API代替繁琐的寄存器配置过程。

关键字: if

if.else

for

交换机情况

世界卫生组织

do.while

布雷克

continue

return

goto

语法符号:;

{}

//

运算符:=

+

-

*

/

%

==

!=

<

>

<=

>=

&&

||

!

++

--

+=

-=

*=

/=

数据类型:boolean  布尔类型

char

byte  字节类型

int

unsigned int

long

unsigned long

float

double

string

array

void

数据类型转换:char()

byte()

int()

long()

float()

常量:HIGH | LOW     表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。

INPUT | OUTPUT   表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT  表示输出(AVR能提供5V电压 40mA电流)。

true | false    true 表示真(1),false表示假(0)。

以上为基础c语言的关键字和符号,有c语言基础的都应该了解其含义,这里也不作过多的解释。

结构void setup()   初始化变量,管脚模式,调用库函数等

void loop()  连续执行函数内的语句功能

数字 I/OpinMode(pin, mode)    数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。

digitalWrite(pin, value)    数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。

int digitalRead(pin)    数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。

模拟 I/Oint analogRead(pin)    模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。

analogWrite(pin, value) - PWM     数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。

扩展 I/OshiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。

unsigned long pulseIn(pin, value)    脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。

时间函数unsigned long millis()   返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。

delay(ms)    延时函数(单位ms)。

delayMicroseconds(us)    延时函数(单位us)。

数学函数min(x, y)  求最小值

max(x, y)  求最大值

abs(x)   计算绝对值

constrain(x, a, b)  约束函数,下限a,上限b,x必须在ab之间才能返回。

map(value, fromLow, fromHigh, toLow, toHigh)    约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。

pow(base, exponent)  开方函数,base的exponent次方。

sq(x)     平方

sqrt(x)   开根号

三角函数sin(rad)

cos(rad)

tan(rad)

随机数函数randomSeed(seed)   随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。

long random(max)   随机数函数,返回数据大于等于0,小于max。

long random(min, max)   随机数函数,返回数据大于等于min,小于max。

外部中断函数attachInterrupt(interrupt, ISR, mode)  外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数;ISR 中断发生时的中断服务程序,这个函数必须没有参数没有返回值;mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。

detachInterrupt(interrupt)  中断开关,interrupt=1 开,interrupt=0 关。

中断使能函数interrupts()  使能中断

noInterrupts()  禁止中断

串口收发函数Serial.begin(speed)  串口定义波特率函数,speed表示波特率,如9600,19200等。

int Serial.available()  判断缓冲器状态。

int Serial.read()   读串口并返回收到参数。

Serial.flush()    清空缓冲器。

Serial.print(data)  串口输出数据。

Serial.println(data)   串口输出数据并带回车符。

官方库文件

EEPROM - EEPROM读写程序库

Ethernet - 以太网控制器程序库

LiquidCrystal - LCD控制程序库

Servo - 舵机控制程序库

SoftwareSerial - 任何数字IO口模拟串口程序库

Stepper - 步进电机控制程序库

Wire - TWI/I2C总线程序库

Matrix - LED矩阵控制程序库

Sprite - LED矩阵图象处理控制程序库

非官方库文件

DateTime - a library for keeping track of the current date and time in software.

Debounce - for reading noisy digital inputs (e.g. from buttons)

Firmata - for communicating with applications on the computer using a standard serial protocol.

GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset.

LCD - control LCDs (using 8 data lines)

LCD 4 Bit - control LCDs (using 4 data lines)

LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.

LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.

Messenger - for processing text-based messages from the computer

Metro - help you time actions at regular intervals

MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds.

OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol.

PS2Keyboard - read characters from a PS2 keyboard.

Servo - provides software support for Servo motors on any pins.

Servotimer1 - provides hardware support for Servo motors on pins 9 and 10

Simple Message System - send messages between Arduino and the computer

SSerial2Mobile - send text messages or emails using a cell phone (via AT commands over software serial)

TextString - handle strings

TLC5940 - 16 channel 12 bit PWM controller.

X10 - Sending X10 signals over AC power lines

以上库文件都需要下载到编译环境(例如下目录:arduinohardwarelibraries)中才能使用。

一般我们编写程序用到的IDE是官方出品的Arduino IDE,目前最新的版本号是 :1.8.9 ,下载地址:

【参考】:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。