技术文档

ups单片机 单片机哪家强?实力大比拼,你用的是哪家单片机

小编 2024-11-24 技术文档 23 0

单片机哪家强?实力大比拼,你用的是哪家单片机

单片机从当初的4位发展到8位、32位,甚至更高,到现在可以说种类繁多而且齐全,数量庞大,在不同的领域主流的单片机有不同,很多设计开发有时候要面临很多选择。下面介绍几种常用的单片机

1、51系列单片机

51单片最初是由Intel始创的8004单片机开始,这是8位的单片机,特点是:寄存器少,.很多功能需要外部扩展,像AD转换、PWM专门输出信号等、I/O口输出能力不强、运行速度慢、抗干扰能力差、功耗高、不具备自编程能力。但是它的外围电路相对简单,上手容易,适合入门级,很多高校单片机都是以51单片机教学为主,在工业测控系统应用很广泛。 目前生产51单片机的厂家有:英特尔、艾德梅尔、西门子、华邦以及国产的宏晶等

2、AVR系列单片机

AVR单片机是由Atmel公司最初提出,也是8位单片机,后来也有16位的,但是与51不一样,它内部指令大大简化,同时内部结构精简,因此速度更快,功能更加强大,驱动能力比51的强,功耗也很低,抗干扰能力更强,内部有强劲的Flash程序存储器,烧录快捷方便,内部集成多种频率的RC振荡器、PWM输出、AD转换、看门狗、上电自动复位等功能。

AVR单片机有三种系列:

tinyAVR,这种主要被用于需要性能不是很高、效率低下以及在小封装中使用

megaAVR,这种主要是针对需要加额外外围电路设计的理想选择,自编程能力强

Xmega AVR,这种主要是在高集成度和低功耗使用

AVR单片机主要应用在打印机、空调、电表等控制电路板当中

3、STM32系列单片机

STM32系列单片机是有ST公司推出的,表示ARM Cortex-M内核的32位微控制器,这个芯片功能就更强大了,光是学习起来就有厚厚的一本书,这还不包括实际操作实践,从事软件开发的网友,特别是设计大型系统对这个芯片一定不陌生。这是一款高性能高性价比的芯片,特点是拥有双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度,待机功耗低至2μA,复位电路、低电压检测、RC振荡器等电路高度集成化。到目前为止,ST已经推出了基本型、增强型、USB基本型 系列、互补型等一系列芯片,功能越来越强大,主要交通运输、UPS电源、充电桩、功率转换器、计算机等方面。 

4、MSP430系列单片机

· MSP430单片机TI德州仪器公司推出的,有时候也成为混合信号处理器,这种单片机是16位超低功耗芯片,它的内部指令集也极具精简,内部集成了较为丰富的片内外设,有各类定时器各种通讯协议、液晶驱动器、高精度数模转换、USB控制器等,这种单片机特点是运算速度快、处理能力强、功耗低等。这种芯片主要是针对实际应用需求场合应用 ,主要应用在智能电子锁、键盘门禁、读取器、电梯轿厢呼叫按钮、无线扬声器、可视门铃等

5、PIC系列单片机

较为出名的莫过于Microchip公司(中文名:微芯半导体)的PIC芯片,这家公司PIC系列出货量居于业界领导者地位。PIC芯片的指令集也较为精简。Microchip8位、16位和32位单片机,拥有功能强大的架构、灵活的存储器技术、通讯方式涵盖SPI、I2C、UART、CAN、USB、以太网等、内部集成了图形以及触摸传感控制器等电路、各类比较器、A/D转器等应有尽有,目前Microchip的PIC单片机8位的典型代表有: PIC10、 PIC12、 PIC16 、PIC18,PIC系列单片机主要是用来开发和控制外围设备的一种芯片,对于庞大的系统,有些场合如果用此芯片控制可以进行高度集成化,减少外围电路。主要应用在电机、医疗、家电、有限连通、汽车领域、电池管理方案、智能能源等

6、M68HC系列单片机

这是MOTOROLA推出的单片机,摩托罗拉作为单片机最大生产商之一,它的M68HC系列单片机特点是速度快、功能强大、功耗低等,带flash重复擦写且供电电源单一、支持在线编程,最主要的额是它内部采用的时钟频率很低,抗干扰能力很强,因此很适合在工控领域使用。

除了上述这几种其实还有很多单片机,比如NXP 51系列单片机、WINBOND51系列单片机、台湾义隆单片机、松翰单片机(SONIX)、Atmel的AT89系列单片机、华邦W78系列单片机、EPSON单片机、Scenix单片机等。

其实选择哪一种单片机要根据实际情况同时结合自身条件以及要求,一般来说,对于控制系统不是很复杂,I/O数量不是很多,可以采用精简指令集的单片机,这种单片机在读取指令和数据时候分开进行,因此单片机速递不是很高,例如可以用例如PIC系列单片机、SONIX单片机等;而对于系统较为复杂一点的可以采用速度快一点的,例如STM32系列等。

PLC作主站,51单片机作从站,用ModBus协议进行通讯

本节主要完成PLC作主站,51单片机作从站,用ModBus协议进行通讯。PLC读取单片机保持寄存器区的数据。S7-200PLC程序主要通过调用Modubs RTU 主站指令库完成。

一、调用 Modbus RTU 主站初始化和控制子程序

使用 SM0.0 调用 MBUS_CTRL 完成主站的初始化,并启动其功能控制:

各参数意义如下:

a.

EN

使能:

必须保证每一扫描周期都被使能(使用 SM0.0)

b.

Mode

模式:

为 1 时,使能 Modbus 协议功能;为 0 时恢复为系统 PPI 协议

c.

Baud

波特率:

支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。

d.

Parity

校验:

校验方式选择

0=无校验

1=奇较验

2=偶较验

e.

Timeout

超时:

主站等待从站响应的时间,以毫秒为单位,典型的设置值为 1000 毫秒(1 秒),允许设置的范围为 1 - 32767。

注意: 这个值必须设置足够大以保证从站有时间响应。

f.

Done

完成位:

初始化完成,此位会自动置1。可以用该位启动 MBUS_MSG 读写操作(见例程)

g.

Error

初始化错误代码(只有在 Done 位为1时有效):

0= 无错误

1= 校验选择非法

2= 波特率选择非法

3= 模式选择非法

二、调用 Modbus RTU 主站读写子程序MBUS_MSG,发送一个Modbus 请求;

各参数意义如下:

a.

EN

使能:

同一时刻只能有一个读写功能(即 MBUS_MSG)使能

注意:建议每一个读写功能(即 MBUS_MSG)都用上一个 MBUS_MSG 指令的 Done 完成位来激活,以保证所有读写指令循环进行(见例程)。

b.

First

读写请求位:

每一个新的读写请求必须使用脉冲触发

c.

Slave

从站地址:

可选择的范围 1 - 247

d.

RW

从站地址:

0 = 读, 1 = 写

注意:

1. 开关量输出和保持寄存器支持读和写功能

2. 开关量输入和模拟量输入只支持读功能

e.

Addr

读写从站的数据地址:

选择读写的数据类型

00001 至 0xxxx - 开关量输出

10001 至 1xxxx - 开关量输入

30001 至 3xxxx - 模拟量输入

40001 至 4xxxx - 保持寄存器

f.

Count

数据个数

通讯的数据个数(位或字的个数)

注意: Modbus主站可读/写的最大数据量为120个字(是指每一个 MBUS_MSG 指令)

g.

DataPtr

数据指针:

1. 如果是读指令,读回的数据放到这个数据区中

2. 如果是写指令,要写出的数据放到这个数据区中

h.

Done

完成位

读写功能完成位

i.

Error

错误代码:

只有在 Done 位为1时,错误代码才有效

0 = 无错误

1 = 响应校验错误

2 = 未用

3 = 接收超时(从站无响应)

4 = 请求参数错误(slave address, Modbus address, count, RW)

5 = Modbus/自由口未使能

6 = Modbus正在忙于其它请求

7 = 响应错误(响应不是请求的操作)

8 = 响应CRC校验和错误

-

101 = 从站不支持请求的功能

102 = 从站不支持数据地址

103 = 从站不支持此种数据类型

104 = 从站设备故障

105 = 从站接受了信息,但是响应被延迟

106 = 从站忙,拒绝了该信息

107 = 从站拒绝了信息

108 = 从站存储器奇偶错误

常见的错误:

如果多个 MBUS_MSG 指令同时使能会造成 6 号错误库存储区被程序其它地方复用,有时也会造成6 号错误从站 delay 参数设的时间过长会造成主站 3 号错误从站掉电或不运行,网络故障都会造成主站 3 号错误。

三、需要从站支持的功能及Modbus 保持寄存器地址映射

为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:

需要从站支持的功能

Modbus 地址

读/写

Modbus 从站须支持的功能

00001 - 09999

数字量输出

功能 1

功能 5:写单输出点

功能 15:写多输出点

10001 - 19999

数字量输入

功能 2

30001 - 39999

输入寄存器

功能 4

40001 - 49999

保持寄存器

功能 3

功能 6:写单寄存器单元

功能 16:写多寄存器单元

Modbus 保持寄存器地址映射举例:

四、S7-200PLC程序

五、单片机程序;STC11F04E单片机,9600波特率

START: MOV TMOD,#21H ;定时器1是8位再装入,定时器0为16位定时器

MOV TH1,#0FDH;预置初值(按照波特率9600BPS预置初值)

MOV TL1,#0FDH; 0FDH=9600=11.0592

MOV TH0, #0DCH;88H ;8800=12t,7000=stc1t

MOV TL0, #00H

ORL IE, #92H ;EA=1,ES=1;ET0=1

SETB PS ;串口中断优先

SETB TR1 ;启动定时器1

MOV 98H,#50H ;scon

MOV P1M0,#01000000b ; P1M0=0 P1M1=0双向口 P1M0=1 P1M1=0输入口 P1M0=0 P1M1=1推挽输出20ma

MOV P1M1,#10000000b

MOV WDT_CONTR ,#27H 看门狗设置使能

QL0: MOV A,#00H

MOV R0,#10H

MOV R2,#9BH ;10-ABH清零

CLEAR: MOV @R0,A

INC R0

DJNZ R2,CLEAR

CLR FLAG

CLR FLAG_0

SETB TR0 ;启动定时器0

;ANL AUX,#07FH ;p3.0p3.1当串口

ORL AUX,#80H ;p1.7,p1.6当串口

CLR P3.7 ;485芯片接收使能

WA1: ;MOV WDT_CONTR ,#37H;喂狗; SETB CW

JNB FLAG_0,WA1 ;FLAG_0=1表示已经接收到上位机数据

CLR TR0

MOV A,2CH ;检查设备地址是01h码,设本机地址码是1

MOV R2,A

XRL A,#01H

JNZ QL0

ACALL FSZJ ;FH: DB 01H,03H,16,00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,0DH,0EH,0FH,10H,11H,12H,13H,14H,15H,16H,17H,18H,19H,1AH,1BH,1CH,1DH,1EH,1FH;18

ACALL DELAY

CALL FZJ

AJMP QL0

FZJ: MOV R0,#2cH ;向主机发送数据子程序

FZJ0: MOV R2,#10H

FZJ1: CLR EA

ANL AUX,#07FH ;p3.0p3.1当串口

FZL1: MOV A,@R0

MOV SBUF,A

JNB TI,$

CLR TI

INC R0

DJNZ R2,FZL1

SETB EA

RET

FSZJ: MOV DPTR,#FH

MOV R2,#19;

ORL AUX,#80H

SETB P3.7 ;发送数据

MOV R0,#40H

FSZJA: MOV A,#0H

MOVC A,@A+DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R2,FSZJA

MOV R0,#40H

MOV CRCCD,#19

LCALL CRC1

MOV R2,#21

MOV R0,#40H

FSZJ2: MOV A,@R0

MOV SBUF,A

JNB TI,$

CLR TI

INC R0

DJNZ R2,FSZJ2

SETB EA

RET

FH:DB 01H,03H,16,00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,10H,11H,12H,0DH,0EH,0FH,10H,11H,12H,13H,14H,15H,16H,17H,18H,19H,1AH,1BH,1CH,1DH,1EH,1FH;18

用串口助手检测到的数据如下图。

相关问答

山特500 UPS 无市电停输入时每秒保警一次,5分钟后0.5秒报警一...

您的情况应是正常现象..但当然如果后备电力时间变得很短便可能是UPS内置电池老...STC12C5204AD单片机4541浏览7回答电脑上所有的图标都变成了WPS图标了,怎么...

本科电气工程专业职业生涯具体应该怎么发展?

弱电主要就走...说了这么多好像都与强电有关,弱电的自动化方向好像没有说到,我可以很负责任告诉你,你读这个专业如果靠自动化糊口,那是不是很好的就业方向了,虽...

大家知道要“如何选购最好的门禁锁”吗?

“门禁系统”在智能建筑领域,意为AccessControlSystem,简称ACS。指“门”的禁止权限,是对“门"的戒备防范。门禁系统又称出入口管理系统,是对人员进出进行...

猜你喜欢