正文内容
at89c52的主要应用
来源:盘古文库
作者:火烈鸟
2025-09-26
1

at89c52的主要应用(精选6篇)

at89c52的主要应用 第1篇

AT89C52 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。主要功能特性

1、兼容MCS51指令系统 2、8kB可反复擦写(大于1000次)Flash ROM; 3、32个双向I/O口; 4、256x8bit内部RAM; 5、3个16位可编程定时/计数器中断;

6、时钟频率0-24MHz; 7、2个串行中断,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位;

10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;

11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。引脚功能及管脚电压

AT89C52为8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚

PDIP封装的AT89C52引脚图

排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。P0 口 P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1 口

P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉

电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和程序校验期间,P1 接收低8 位地址。表.P1.0和P1.1的第二功能 引脚号 功能特性

T2,时钟P1.0 输出 T2EX(定P1.1 时/计数器2)

P2 口

P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3 口

P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能,P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP 外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。XTAL2 振荡器反相放大器的输出端。特殊功能寄存器

在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFR),SFR 的地址空间映象如表2 所示。并非所有的地址都被定义,从80H—FFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。不应将数据写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。

AT89C52除了有AT89C51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于T2CON(参见表3)T2MOD(参见表4),寄存器对(RCAO2H、RCAP2L)是定时器2 在16 位捕获方式或16 位自动重装载方式下的捕获/自动重装载寄存器。编辑本段数据存储器

AT89C52 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。

当一条指令访问7FH 以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高128 字节RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能寄存器。

例如,下面的直接寻址指令访问特殊功能寄存器0A0H(即P2 口)地址单元。MOV 0A0H,#data 间接寻址指令访问高128 字节RAM,例如,下面的间接寻址指令中,R0 的内容为0A0H,则访问数据字节地址为0A0H,而不是P2 口(0A0H)。MOV @R0,#data 堆栈操作也是间接寻址方式,所以,高128 位数据RAM 亦可作为堆栈区使用。·定时器0和定时器1:

AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同。片上资源

定时器2基本特性: 定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON(如表3)的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。

在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。捕获方式:

在捕获方式下,通过T2CON 控制位EXEN2 来选择两种方式。如果EXEN2=0,定时器2 是一个16 位定时器或计数器,计数溢出时,对T2CON 的溢出标志TF2 置位,同时激活中断。如果EXEN2=1,定时器2 完成相同的操作,而当T2EX 引 脚外部输入信号发生1 至0 负跳变时,也出现TH2 和TL2 中的值分别被捕获到RCAP2H 和RCAP2L 中。另外,T2EX 引脚信号的跳变使得T2CON 中的EXF2 置位,与TF2 相仿,EXF2 也会激活中断。

自动重装载(向上或向下计数器)方式:

当定时器2工作于16位自动重装载方式时,能对其编程为向上或向下计数方式,这个功能可通过特殊功能寄存器T2CON(见表5)的DCEN 位(允许向下计数)来选择的。复位时,DCEN 位置“0”,定时器2 默认设置为向上计数。当DCEN置位时,定时器2 既可向上计数也可向下计数,这取决于T2EX 引脚的值,当DCEN=0 时,定时器2 自动设置为向上计数,在这种方式下,T2CON 中的EXEN2 控制位有两种选择,若EXEN2=0,定时器2 为向上计数至0FFFFH 溢出,置位TF2 激活中断,同时把16 位计数寄存器RCAP2H 和RCAP2L重装载,RCAP2H 和RCAP2L 的值可由软件预置。若EXEN2=1,定时器2 的16 位重装载由溢出或外部输入端T2EX 从1 至0 的下降沿触发。这个脉冲使EXF2 置位,如果中断允许,同样产生中断。定时器2 的中断入口地址是:002BH ——0032H。

当DCEN=1 时,允许定时器2 向上或向下计数,如图6 所示。这种方式下,T2EX 引脚控制计数器方向。T2EX 引脚为逻辑“1”时,定时器向上计数,当计数0FFFFH 向上溢出时,置位TF2,同时把16 位计数寄存器RCAP2H 和RCAP2L 重装载到TH2 和TL2 中。T2EX 引脚为逻辑“0”时,定时器2 向下计数,当TH2 和TL2 中的数值等于RCAP2H 和RCAP2L中的值时,计数溢出,置位TF2,同时将0FFFFH 数值重新装入定时寄存器中。

当定时/计数器2 向上溢出或向下溢出时,置位EXF2 位。波特率发生器:

当T2CON(表3)中的TCLK 和RCLK 置位时,定时/计数器2 作为波特率发生器使用。如果定时/计数器2 作为发送器或接收器,其发送和接收的波特率可以是不同的,定时器1 用于其它功能,如图7 所示。若RCLK 和TCLK 置位,则定时器2工作于波特率发生器方式。

波特率发生器的方式与自动重装载方式相仿,在此方式下,TH2 翻转使定时器2 的寄存器用RCAP2H 和RCAP2L 中的16位数值重新装载,该数值由软件设置。在方式1 和方式3 中,波特率由定时器2 的溢出速率根据下式确定:

方式1和3的波特率=定时器的溢出率/16定时器既能工作于定时方式也能工作于计数方式,在大多数的应用中,是工作在定时方式(C/T2=0)。定时器2 作为波特率发生器时,与作为定时器的操作是不同的,通常作为定时器时,在每个机器周期(1/12 振荡频率)寄存器的值加1,而作为波特率发生器使用时,在每个状态时间(1/2 振荡频率)寄存器的值加1。波特率的计算公式如下: 方式1和3的波特率=振荡频率/{32*[65536-(RCP2H,RCP2L)]} 式中(RCAP2H,RCAP2L)是RCAP2H 和RCAP2L中的16 位无符号数。

定时器2 作为波特率发生器使用的电路如图7 所示。T2CON 中的RCLK 或TCLK=1 时,波特率工作方式才有效。在波特率发生器工作方式中,TH2 翻转不能使TF2 置位,故而不产生中断。但若EXEN2 置位,且T2EX 端产生由1 至0 的 负跳变,则会使EXF2 置位,此时并不能将(RCAP2H,RCAP2L)的内容重新装入TH2 和TL2 中。所以,当定时器2 作为波特率发生器使用时,T2EX 可作为附加的外部中断源来使用。需要注意的是,当定时器2 工作于波特率器时,作为定 时器运行(TR2=1)时,并不能访问TH2 和TL2。因为此时每个状态时间定时器都会加1,对其读写将得到一个不确定的数值。

然而,对RCAP2 则可读而不可写,因为写入操作将是重新装载,写入操作可能令写和/或重装载出错。在访问定时器2或RCAP2 寄存器之前,应将定时器关闭(清除TR2)。可编程时钟输出:

定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号,如图8 所示。P1.0 引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输 出时钟频率范围为61Hz—4MHz。

当设置定时/计数器2 为时钟发生器时,C/T2(T2CON.1)=0,T2OE(T2MOD.1)=1,必须由TR2(T2CON.2)启动或停止定时器。时钟输出频率取决于振荡频率和定时器2 捕获寄存器(RCAP2H,RCAP2L)的重新装载值,公式如下: 输出时钟频率=振荡器频率/{4*[65536-(RCP2H,RCP2L)]} 在时钟输出方式下,定时器2 的翻转不会产生中断,这个特性与作为波特率发生器使用时相仿。定时器2 作为波特率发生器使用时,还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不能分开确定,这是因为它们同使用RCAP2L和RCAP2L。UART串口

AT89C52的UART 工作方式与AT89C51 工作方式相同。时钟振荡器

AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。

这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图10。

外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳 定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10pF。

用户也可以采用外部时钟。采用外部时钟的电路如图10 右图所示。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。中断

AT89C52 共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。所有这些中断源如图9 所示。

这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。注意表5 中的IE.6 为保留位,在AT89C51 中IE.5 也是保留位。程序员不应将“1”写入这些位,它们是将来AT89 系列产品作为扩展用的。

定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。

定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志。低功耗模式

空闲节电模式

在空闲工作模式状态,CPU 自身处于睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,同时将片内RAM 和所有特殊功能寄存器的内容冻结。空闲模式可由任何允许的中断请求或硬件复位终止。由硬件复位终止空闲状态只需两个机器周期有效复位信号,在此状态下,片内硬件禁止访问内部RAM,但可以访问端口引脚,当用复位终止空闲方式时,为避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对 端口或外部存储器的写入指令。掉电模式

在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM 和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器,但不改变RAM中的内容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。编程和加密

Flash存储器的编程

AT89C52单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。AT89C52 单片机中,有些属于低电压编程方式,而有些则是高电压编程方式,用户可从芯片上的型号和读取芯片内的签名字节获得该信息。

AT89C52 的程序存储器阵列是采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的PEROM 程序存储器写入一个非空字节,必须使用片擦除的方式将整个存储器的内容清除。编程方法

编程前,须按表9 和图11 所示设置好地址、数据及控制信号,AT89C52 编程方法如下:

1. 在地址线上加上要编程单元的地址信号。2. 在数据线上加上要写入的数据字节。3. 激活相应的控制信号。

4. 在高电压编程方式时,将EA/Vpp 端加上+12V 编程电压。

5. 每对Flash 存储阵列写入一个字节或每写入一个程序加密位,加上一个ALE/PROG 编程脉冲。每个字节写入周期是自身定时的,通常约为1.5ms。重复1—5 步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。程序存储器的加密

AT89C52 有3 个程序加密位,可对芯片上的3 个加密位LB1、LB2、LB3 进行编程(P)或不编程(U)来得到。

当加密位LB1 被编程时,在复位期间,EA 端的逻辑电平被采样并锁存,如果单片机上电后一直没有复位,则锁存起的初始值是一个随机数,且这个随机数会一直保存到真正复位为止。为使单片机能正常工作,被锁存的EA 电平值必须与该引脚当前的逻辑电平一致。此外,加密位只能通过整片擦除的方法清除。数据查询

AT89C52 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。Ready/Busy:字节编程的进度可通过“RDY/BSY 输出信号监测,编程期间,ALE 变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4 变为高电平表示准备就绪状态。

程序校验:如果加密位LB1、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。

芯片擦除:利用控制信号的正确组合(表6)并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。读片内签名字节:AT89C52 单片机内有3 个签名字节,地址为030H、031H 和032H。用于声明该器件的厂商、型号和编程电压。读AT89C52 签名字节需将P3.6 和P3.7 置逻辑低电平,读签名字节的过程和单元030H、031H 及032H 的正常校验相仿,只返回值意义如下:

(030H)=1EH 声明产品由ATMEL公司制造。(031H)=52H 声明为AT89C52 单片机。(032H)=FFH 声明为12V 编程电压。(032H)=05H 声明为5V 编程电压。

at89c52的主要应用 第2篇

关键词:单片机,超声波,DS18B20,实时温度,温度补偿

0 引言

在人们日常生活中,测量距离有多种方法,例如用米尺直接度量,也可以利用红外线进行测距,这也是利用测回波时间进行测距,但是成本比较高,最常见的就属超声波测距了。

超声波是指频率大于20kHz在弹性介质中产生的机械震荡波。由于超声波频率较高,穿透力强,指向性强,传输过程中衰减少,能量消耗缓慢,在介质中传播的距离较远,遇到杂质或分界面时会产生反射波,因此常被用于非接触式测距。由于声波在空气中传播,实时的温度对于声速的影响还是很大的,所以如能采集出当时环境的温度,那便能提高测距的精度了[1]。对于测温,在工业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻,而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。其缺点如下:硬件电路复杂,软件调试复杂,制作成本高。文中系统采用的DS18B20便能很好地解决这一系列问题。

1 测距原理与测温原理

如图1所示,该图形象地反映了超声波测距的原理。

超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就会被超声波接收器R收到。这样,只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与障碍物之间的距离。该距离的计算公式如下:

d=s/2=v×t/2

其中,d为被测物与测距器的距离;s为声波的来回路程;v为声速;t为声波来回所用的时间[2]。

超声波也是一种声波,其声速v与温度有关。表1列出了几种不同温度下的超声波声速。

在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。

至于怎么求得当时环境的实时温度,该系统采用了温度传感器DS18B20,该传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器。与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下[3]:

独特的单线接口仅需要一个端口引脚进行通信。

多个DS18B20可以并联在唯一的三线上,实现多点组网功能。

不需要外部器件。

可通过数据线供电,电压范围3.0~5.5V。

零待机功耗。

温度以9~12位数字量读出。

用户可定义的非易失性温度报警设置。

报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。

负电压特性,电源极性接反时,温度计不会因发热而烧毁,只是不能正常工作。

在DS18B20内部,还含有一些数字器件与振荡器,如图2 所示。

图2中低温系数振荡器的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

图2中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数,分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,并重新开始对低温系数振荡器产生的脉冲信号进行计数。如此循环,直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值就是所测温度值。图2中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。

另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读/写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20、发ROM功能命令、发存储器操作命令、处理数据。

2 系统结构

根据设计要求,综合各方面因素,文中系统采用AT89C52单片机作为主控制器,用动态扫描的方法实现LED数字显示,超声波的驱动信号用单片机的定时器完成,同时由DS18B20采集来的温度信号交给单片机进行处理,最后在LED数码管上交替显示当时的环境温度和障碍物的距离。其系统的设计框图如图3所示[4]。

3 系统硬件电路设计

3.1 单片机系统及显示电路

单片机采用89C52或其兼容系列。文中系统采用12MHz高精度的晶振,以获得稳定的时钟频率,单片机用P1.0端口输出超声波换能器所需的40kHz方波信号,利用外中断0口,监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码可以用74LS244驱动,在本文系统中,直接将数码管的段码位与单片机的P0口相连,在其间必须加上保护电阻,否则数码管可能会被烧坏。至于位码用PNP型的三极管9012进行驱动。单片机系统及显示电路如图4所示。

3.2 测温电路

本文系统采用的是DALLAS公司生产的DS18B20数字温度计,具有线路简单,体积小的特点,用它组成的温度测量系统线路非常简单,只要求一个端口即可实现通信。DS18B20的每个器件上都有唯一的序列号,其温度测量范围在-55℃~+125℃之间,数字温度计的分辨率可以从9~12位选择,内部还有温度上、下限报警设置。DS18B20内部结构主要由64位ROM,温度传感器,非易失性报警触发器TH和TL,配置寄存器组成。对于DSB18B20这个芯片,将其输出的引脚与单片机的INT1口相连,对于DS18B20的ROM操作指令如表2所示。

DS18B20的数据输入与输出都是采用的串行方式,DS18B20的最小位数所对应的权值是2-4,温度数值由2个字节存储,对于声速的计量已经能够提供较为精确的温度了。其测温电路如图5所示。

3.3 超声波发射电路

超声波发射电路原理图如图6所示。

发射电路主要由反向器74LS04和超声波换能器构成,单片机P1.0端口输出的40kHz方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力;另一方面可以增加超声换能器的阻尼效果,以缩短其自由振荡的时间。

压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两个压电晶片和一个共振板。当两个电极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两个电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器在结构上稍有不同。其核心部件都是压电晶片。

3.4 超声波检测接收电路

集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,可以利用它制作超声波检测接收电路,如图7所示。

实验证明,用CX20106A接收超声波(无信号时输出高电平)具有很高的灵敏度和较强的抗干扰能力。适当地更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。

4 系统软件设计

主程序首先要对系统的环境进行初始化,然后由DS18B20传感器测量温度并传给单片机。计算过温度之后,就可以开始测距了,系统调用超声波发生子程序送出一个超声波脉冲。为避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后打开外中断0接收返回的超声波信号。由于采用的是12MHz的晶振,计数器每计一个数就是1μs,所以当主程序检测到接收成功的标志位后,将计数器T0中的数转化为时间,由当时室温可以获取声速,这样障碍物的距离就可以计算出来了。系统的流程图如图8所示。

超声波的发射和接收分别通过两个中断控制的,分别是T1中断和外部中断0,T1中断起到了发射超声波的作用,其汇编主要程序如下[5]:

超声波的接收主要由外部中断0控制,负责收入回波,其主要的汇编程序如下:

关于测量温度的程序很长,其中涉及到DS18B20的读写以及初始化问题,本文只给出主要的读出温度函数,其主要程序如下[5]。

5 结束语

经过实验,测得室温为32.4℃,通过有关技术手册获得该温度下的声速,通过实验知道测距的最大测量范围是5m,测量误差是4cm。实验表明,该系统确实能够精确地反应环境的温度和障碍物的距离,实时性强,且系统结构并不复杂,测量障碍物的距离较远,可以达到5m,其中测量精度可以精确到0.1cm。但是该系统仍然有待于改进,虽然测量温度能够提供温度补偿的效果,但是超声波发射和接收装置存在一定的距离是不可以忽略的,本文系统由于条件限制,则采用了近似,把发送和接收视为同一点,若能采用角度补偿,那么将会提高测量精度,达到更好的效果。

参考文献

[1]楼然苗.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007:38-50.

[2]张荣.基于单片机的超声波测距器设计[J].科技信息,2010(31):87-88.

[3]彭伟.单片机C语言程序设计实训100例[M].北京:电子工业出版社,2009:193-198.

[4]易丽华,彭劲松.基于单片机的超声波测距系统设计[J].山西电子技术,2010(4):26-28.

基于AT89C52的光立方设计 第3篇

关键字:光立方 74HC573 AT89C52 ULN2803

中图分类号:TP368 文献标识码:A 文章编号:1672-3791(2014)12(b)-0023-01

在显示技术迅速发展的今天,“光立方”是一种新兴的电子产品,广泛应用于金融、展览、演出和体育活动等方面。该文研究了采用蓝灯雾状散光LED作为显示载体,AT89C52作为控制平台,74HC573作为LED面驱动器件,ULN2803作为层驱动器件,为实现3D视觉效果提供了硬件支持。

1 总体设计方案

单元电路采用以二维8×8的LED驱动电路,每一面的LED灯分8次来控制,对每一面的数据分时段进行刷新,以产生立体显示效果。

该系统使用一片AT89C52单片机作为控制核心,用8片74HC573作为面驱动芯片,用一片ULN2803作为层驱动芯片,驱动8×8×8三维LED点阵(即512个LED)实现图形稳定显示,动态快速变化。系统结构图如图1所示。

2 硬件设计

2.1 MCU主控模块

该系统的主控芯片使用的是AT89C52,它带有512字节RAM数据储存器和8K Flash程序储存器,8位的I/O口有4组,对运行速度的要求,配置12MHZ晶振即可满足。

由于这种设计对MCU要求不高,使用普通的单机片就可以完成设计,而且设计与制作也方便,成本不高。该设计只用了24只脚,还剩下8个端口方便以后的扩展。

2.2 光立方工作原理

512个蓝色散光LED组成了光立方,分8层,每层64个(8×8)LED,LED之间相互都间隔了一定距离,通透性比较好,其三维显示效果是通过LED矩阵自身的空间立体性来实现的。具体的连接方式为:每一层的64个LED阳极连起来,再连接74HC573,将纵向同列的8个LED的阴极连起来,接到锁存器组成的列控制模块的输出端。一共有64个列单元在光立方中。

面驱动电路和层驱动电路是光立方扫描驱动电路的两大类。层扫描信号通过层驱动电路产生后,由74HC573驱动选通或关闭与每一层LED阳极,连接竖直方向同列的LED的阴极,再分别连接到8个锁存器(74HC573)的输出端,当选通LED层,且锁存器处于低输出时,就会点亮相应的LED。将光立方的空间图像信息按8层分,每层的数据信号由面驱动电路依次送到选通的LED列上面,由8个8bit的锁存器来分时控制每层的64个LED,分时选通8个锁存器时采用I/O端口,锁存器中输入进每层的控制数据后,利用层选信号对相应层进行选通,8层在一个周期内一次扫完,因为人眼的视觉停留时间要比这一个周期的时间长,因而一幅完整的立体图案就呈现在人们的眼中了。这样一来要分时控制512个LED可通过使用15个I/O扩展口来实现。利用这种工作原理,使光立方平台上静态画面和动画的效果得以实现。

3 软件设计

该系统在主程序首先完成系统初始化,则根据各参变量已有的数值,对功能模式进行相应的选择,进入对应的图形数据处理子函数或者其他功能子函数。再把经过处理的图形数据写进74HC573,这样最终显示效果的变化就完成了。

4 实现结果

基于二维显示,通过人眼的视觉停留效应以及真实的3D空间排列的LED点阵,使光立方3D显示效果能够达到。音乐立方动态显示以及图像立体静态显示可由该系统来实现,且真正意义上的三维显示在动态显示的基础上实现了,具有很高的实用价值。不过,该设计仍存在很多的不足且需要改进,例如受限于硬件资源,光立方没有很高的分辨率,仅对一些简单的动画和图像进行显示。另外,目前只能显示单色,因此可以从全彩LED显示方面进行改进。若要在比较大型的场所使用,则要按所给的设计方案扩展相应的外围电路,这样就可以达到目的。

参考文献

[1]江世明,黄同成.单片机原理及应用[M].北京:中国铁道出版社,2010.

[2]康志强,汪佳,汤勇明.基于FPGA的3D光立方设计[J].电子器件,2012,35(6):683-686.

at89c52的主要应用 第4篇

本文是基于ATS89C52单片机芯片开发的6 k V变电所微机继电保护及监控系统对于小电流接地选线装置的设计应用。通过对小电流接地系统单相故障时电容性零序电流分量的测量和计算为小电流接地选线装置的设计提供选线依据[1]。在对该装置的基本硬件配置及微机保护监控系统的硬件电路进行设计后,结合选线装置的选线原理及方法,对该装置的参数计算程序及故障处理程序做了C语言的设计编程,以实现该系统的接地线路识别功能,具有较大的实用价值。

1 设计背景

煤矿企业井上、下供电系统的上级主变压器中性点为非有效接地,从接地系统划分,中性点不接地、中性点经高电阻接地和中性点经消弧线圈接地的供电系统属小电流接地系统[2]。

2 设计原理

根据小电流接地系统发生单相接地故障时故障线路的特点,选线装置常见的设计原理有能量注入法、高次谐波分量法、零序电流幅值和相位测量法等,根据小电流接地系统发生单相接地后,故障线路会产生零序电压和零序电流的原理及发生故障的线路中的零序电流最大的特点,以6 k V供电系统为例,自行设计了一套能准确选择接地故障线路的装置,该装置由信号检测模块、信号处理模块和动作模块三部分构成,信号检测模块为该6 k V变电所的二次接线设计,信号处理模块及动作模块构成了该微机监控系统的硬件电路。

2.1 信号检测模块的设计原理

该系统的信号检测接线见图1(图1中,I1为感应零序电流,m A;U0为感应零序电压,36 V),由变电所6k V母线及测量电压互感器组成了信号检测元件。其中,母线三相五柱式电压互感器的开口三角形为零序电压测量出口,外接中间继电器构成动作元件;线路上的零序电流互感器为零序电流I1的测量出口,外接信号放大、整流、滤波电路(见图2),为信号处理作准备。图2中,I1~I6为六路零序电流模拟量输入(≤100 m A,I2~I6的模拟量输入电路同I1);R0为输入电阻,0.001 5Ω;R1为分压电阻,10Ω。

该系统的动作模块由微机监控系统硬件电路中的LED信号指示灯(见图2)和二次接线中的蜂鸣器组成。当供电系统中有线路发生单相接地时,母线侧三项五柱式电压互感器的开口三角形端产生36 V电压,中间继电器KM得电、常开触头K1闭合,蜂鸣器鸣响,提示变电所值班人员发生线路单相接地故障。

2.2 信号处理系统的硬件电路及设计原理

微机监控系统的硬件电路见图2,由六路模拟量输入、ADC0809模/数转换、ATS89C52单片机主系统板、开关量输出模块及其它相关的单片机工作电路组成。

在接口电路的设计中,模拟量输入模块由信号放大电路、整流电路和滤波电路构成。信号放大电路采用LTC2053仪表放大器,整个放大电路的电流放大增益为10倍;零序电流信号最大值实测为100 m A,经放大、整流和滤波后,模/数转换器输入端的直流电压最大值为5 V,符合ADC0809芯片的工作条件。

主系统板为ATS89C52单片机芯片,其硬件接口设计如图2所示。结合ADC0809模/数转换器的工作原理,对单片机系统进行C语言编程,然后根据故障线路中零序电流分量的特点,对硬件电路收集的零序分量进行程序化的信号处理,并在零序电流分量最大的地址端所对应的单片机P1口输出低电平,点亮发光二极管、显示出发生单相接地故障所对应的供电线路。

2.3 单片机C语言控制程序的设计

单片机系统属微型计算机系统,需输入相应程序才能进行数据的程序化处理,并根据程序的运行来模拟开关量输出。在众多的程序语言中,C语言的可读性好、模块化功能强,故而在该系统中,采用C语言进行模块化编程,并通过了Protues软件和Keil C51软件的系统仿真,实现了计算机功能模拟化的成功。该套接地选线装置动作于选线信号:当某趟线路发生单相接地故障后,系统先由蜂鸣器报警,然后点亮LED显示相应的故障线路;不动作于跳闸,有效避免了错误信号时误动作的发生。

3 设计应用情况

该装置安装后经过测试,能准确判断并识别出存在接地故障的线路,投入使用后运行正常,为大斗沟煤业公司一风井地面变电所单相接地故障线路的判断和识别提供了准确依据。这套装置的使用改变了大斗沟煤业公司地面供电线路出现单相故障接地后传统的“拉负荷”的繁琐操作方式,减少了出现误操作的几率,同时节省了判断和处理故障线路的时间,避免了事故范围的扩大和升级。

4 总体性能指标与其它同类技术的比较

由于供电线路在出现单相接地故障后,线路中的零序电流及零序电压幅值较小,加上线路中的杂波电流较多,使得市面上的各种零序保护装置灵敏性和准确性很差,无法实现功能性保护。即使是小电流接地选线成套设备,其性能差异也很大,小电流接地选线装置的设计已成为继电保护研究领域的一个专业课题。

同时,该装置在安装调试及C语言编程中,对零序电流分量的算法采用先减去基值,再比较幅值的方法,有效排除了线路中杂波电流的干扰,保证了选线信号的准确性和有效性。该装置的设计安装及应用在同煤集团公司尚属首次。

5 存在的问题及应用前景

该套装置的核心部件为ADC0809模/数转换芯片和ATS89C52单片机芯片及其工作电路,外围的功能电子电路模块如信号放大电路、整流电路、滤波电路、电源电路、晶振电路、复位电路、六路显示电路等多为电子元件焊接,电路集成度较差,且构成系列电路的各电子元器件,其装置的运行稳定性与各电子元件的性能关联较大。由于该单片机系统中使用的C语言程序编程,可移植性较强,若能解决该套装置电路系统的集成问题,则具有较大推广前景。

6 结语

小电流接地系统中,供电线路的单相接地为多发故障,为避免事故范围扩大化,快速、准确地切除接地故障线路尤为重要。设计从实际应用出发,根据故障线路零序电流分量幅值最大的特点,应用微型计算机原理及软件处理程序,对零序电流信号进行模/数转换后,通过单片机系统进行零序电流的数字化信号处理程序来识别供电系统中的单相接地故障线路,有效保障了小电流接地系统的可靠运行,为小电流系统单相接地选线的微型计算机保护提供了一种可行性方案。

摘要:叙述了基于ATS89C52单片机芯片的接地选线装置的设计背景,论述了其设计原理及设计应用情况,分析了总体性能指标与其它同类技术的比较,指出了其存在的问题及应用前景。

关键词:小电流接地,选线,零序电流,微机保护监控系统,ATS89C52

参考文献

[1]张立华,徐立文.小电流接地系统单相接地故障选线的一种算法[J].清华大学学报(自然科学版),1998(9):74-76.

at89c52的主要应用 第5篇

关键词:矿用绞车,闸瓦监测,综合保护,轮辐式传感器,温度传感器,数据采集,通信

0 引言

矿用绞车作为矿山生产过程中的必备设备,能否安全运行直接影响到煤矿的安全生产和人员的生命安全。绞车闸瓦保护的准确与否直接关系到绞车的运行安全[1,2,3]。如何通过对闸瓦的实时数据监测,在故障苗头出现时就能及时发现解决,避免事故的发生及扩大化,保证绞车的安全有效运行是目前亟需解决的问题。

目前,对绞车闸瓦保护的设备主要由继电器、接触器电路组成,且配有电磁放大器、自整角机等,由于接线繁琐、逻辑复杂、控制器件维护量大、系统故障率高、使用和维护难度大、安全可靠性差等原因,会直接影响矿山的安全生产和绞车的提升效率。为了解决以上问题,提出了一种基于AT89C52的矿用绞车闸瓦综合保护系统的设计方案,该系统主要用于矿井提升机闸瓦的制动性能检测。考虑到实时测量和闸瓦间隙及弹簧较小、安装方便、寿命长的需要,系统采用自主研制的轮辐式电阻应变传感器和接触式霍尔位移传感器,分别用于检测闸瓦蝶形弹簧正压力、闸间隙。通过对闸瓦间隙、闸瓦贴闸压力、闸瓦油压和温度信号的检测,可实现对闸瓦的综合保护。

1 系统框架

根据矿用绞车系统的结构,设计的基于AT89C52的矿用绞车闸瓦综合保护系统总体结构如图1所示。

系统采用了分布式结构:下位机包括以单片机为核心的数据采集单元和数据处理单元,可以完成各个性能参数的采集、分析、处理和通信功能;上位机的主要功能:完成与下位机的数据通信,显示、存储下位机采集的数据,绘制实时及历史参数曲线等。

系统主要针对矿用绞车的16个闸瓦和3个电动机进行了保护,为了实现对矿用绞车闸瓦的合理保护,在每个闸瓦上需要安装3个传感器:压力传感器、油压传感器和位移传感器,传感器将采集到的模拟信号传送至单片机系统,单片机对采集到的信号进行处理,由于绞车和控制室的距离较近,处理后的数字信号经MAX232转换后即可实现单片机与上位机之间的通信。

本文主要介绍系统的下位机设计。

2 系统下位机硬件设计

下位机主要是用传感器完成对闸瓦间隙、闸瓦贴闸压力、闸瓦油压和温度信号的检测,把采集的数据经AT89C52芯片处理与设置的温度、闸瓦间隙参数等进行比较,正常就会显示检测到的数据,传送到上位机,否则系统自动报警。下位机硬件组成如图2所示。

2.1 数据采集

压力传感器是用来检测制动器蝶形弹簧的正压力,考虑该系统检测实时数据及尽可能减少对制动器的改造,采用以应变片为基础轮辐式传感器检测蝶形弹簧正压力。该传感器具有实时检测、测量精度高、可靠性高、现场安装方便等优点,能保证检测装置的可靠运行。

图3为轮辐式电阻应变传感器结构示意图,工作时碟形弹簧变形力作用在盘形挡圈上,挡圈上使用4片应变片,连接成全桥电路,4组应变片互为温度补偿,当碟形弹簧所受的压力发生变化时,应变片发生变形,桥路输出电压变化。

1-传感器引出线;2-引线孔;3-应变片;4-盘形挡圈

综合考虑设计成本及系统性能,系统采用了分辨率为12位的TLC2543 AD转换器 ,采用串行数据输出的形式。同时,该系统所需微处理器的外围电路简单,功耗不大,且驱动能力也不是很强,对单片机的功能要求也不是很高,所以选用AT89C52单片机。

本系统中共需检测16路模拟信号量,传感器采集的数据输出为0~5 V的电压信号。传感器采集的模拟信号,首先通过放大电路滤除干扰信号及放大微弱有用信号,经过TLC2543进行AD转换,转换完成的数据送到单片机。放大电路及AD转换部分与单片机的连接如图4所示。其中CS是TLC2543的片选端,SDI,SDO分别是TLC2543的数据输入、输出端口,根据CLK时钟信号进行收发数据。

2.2 RS232通信接口

下位机采集的数据传送到上位机进行分析与显示时,就需要通过串口把数字信号转换为适合上位机的高低电平。本系统中由于绞车和控制室的距离较近,所以,采用适合短距离数据传输的RS232串口,采用 MAX232芯片实现电平转换,实现下位机与上位机之间的通信。MAX232与单片机的通信电路如图5所示。

2.3 报警电路

根据实际要求,设计了报警电路,如图6所示,当系统发生异常时,能够发出报警信号。例如,当闸瓦间隙、闸瓦贴闸压力,闸瓦油压和绞车电动机温度超过设定的限值时,系统会发出声光报警。光报警是通过点亮红色指示灯来实现的;声报警由安装的蜂鸣器来完成。

3 系统软件设计

3.1 主程序设计

主程序主要是按照数据的采集、传输、处理过程顺序设计,经过微处理器处理后的数据,首先判断是否正常,如正常就送到显示器显示,不正常立即报警,提醒工作人员排除问题,保证矿用绞车的安全运行。

下位机周期性地向上位机发送数据,因此,工作开始需要对单片机串口初始化,在TMOD寄存器中确定定时器的工作方式,通过装载初值,设定串口的波特率,设置SCON确定串行口的控制方式,中断EI、EA的设置等,启动定时器。主程序流程如图7所示。

3.2 数据采集程序设计

AD转换是数据采集的重要部分,本文主要介绍传感器采集数据后进行AD转换的流程,如图8所示。

刚开始片选端CS为高,TLC2543不工作,CS由高变低,启动TLC2543,CLK,SDI使能,SDO脱离高阻态。首先进行通道的选择,根据时钟的变化,CLK为低时,SDI读入传感器采集的数据并进行AD转换,完成AD转换后,数据由SDO通过指令输送到单片机,CLK置高并适当延时,避免其他通道数据的影响,每次判定是否所有通道的数据读取完毕,读取结束后,CS置高电平,TLC2543停止工作。

4 结语

矿用绞车闸瓦综合保护系统能很好检测闸瓦的工作状态,当温度传感器检测到电动机温度超过正常工作范围、闸瓦开关磨损严重时,会自动报警,避免事故的发生,进而保护绞车安全运行,提高了提升绞车的效率和可靠性,对改善矿井生产安全有着重要的意义。

参考文献

[1]姚文静.YJ-A型闸工作间隙报警仪的设计[D].泰安:山东科技大学,2010.

[2]黄贤斌.传感器原理与应用[M].成都:电子科技大学出版社,2006.

[3]武超.盘行闸工作间隙实时监测系统[D].泰安:山东科技大学,2003.

at89c52的主要应用 第6篇

关键词:AT89C52单片机,RS485,通信网络,监控系统

0 引 言

以电子设备故障检修技能考核与训练智能化系统为例,介绍由一台PC机与多台单片机组成的主从式网络通信系统,单片机控制作为下位机,负责对电子设备故障点进行数据采集和控制,通过接口将结果传给PC机;PC机作为上位机,对数据进行分析和处理,根据分析和处理的结果来控制单片机的操作。目前,应用Visual C++开发串行通信实现智能化考核和训练系统的通信方法通常有4种[1]:

(1) 调用API(Application Program Interface)函数实现;

(2) 利用Visual C++的标准通信函数-inp、-inpw等直接对串口进行操作;

(3) 使用Visual C++的通信控件(MSComm);

(4) 利用第三方编写的通信类(Cserial)。

以上几种方法中第一种方法使用面较广,但由于需要许多低层设置,比较复杂,专业化程度要求较高,使用困难;第二种需要了解硬件电路结构原理,较难掌握;第三种方法看来较简单,只需要对串口进行简单配置,但使用了令人费解WARIANT类,且不能满足使用多个串口进行复杂处理的需要;第四种方法是利用一个专门针对串行通信的CSerial类,该方法功能较强,只要理解这种类的几个成员函数,就能方便使用。RS 485总线以其灵活性好、成本低、抗干扰能力强、支持节点多、传输距离远、连接简单的优势,被广泛应用于网络单片机系统。在该系统中,上位机采用Visual C++的Cserial类通信方式;下位机采用ATMEL公司的AT89C52单片机,总线采用RS 485标准组网。

1 系统结构

整个系统是一个基于RS 485现场总线,自定义通信协议,在总线上连接各下位机和上位机,由上位机统一管理的主从式总线型的监控系统。该系统包括监控层、通信层、以及现场设备层[1]。其中,监控层由上位机(PC机)承担,负责接收底层现场设备上传的数据,进行数据的分析和存储,下位机参数的设定和修改,以及实时和历史数据的查询,实现对现场设备的监控管理;通信层通过自制定的通信协议与现场下位机设备进行实时通信,完成数据通信包的打包、拆包、检验等处理;现场设备层由多台电子设备、单片机、继电器、键盘、LCD显示器等组成的监控系统。

系统结构方框图如图1所示。

上位机为教师操作的教学控制管理系统,在微机上用Visual C++编程实现功能。教学控制管理系统的主要功能为:

(1) 考试的技术准备工作;

(2) 考试的监考工作;

(3) 辅助完成其他考务信息管理工作。

根据功能要求,教学控制管理系统由通讯模块、代码编译模块、代码执行模块、系统管理模块、历史资料查询模块组成,这几个模块和用户界面用户接口一起构成整个系统软件。

下位机作为这个分布式控制系统的学生客户端,是一个基于AT89C52单片机的应用系统。本系统使用计算机、AT89C52单片机、光电耦合器、驱动电路、继电器、彩色电视机等组成的监控系统,通过局域网,构成一个智能化训练及鉴定系统。AT89C52单片机控制系统如图2所示。

AT89C52单片机控制系统采用计算机与AT89C52单片机所构成的多种微处理芯片混合的主从系统,教师机是系统的上位机,实现人机交互和数据交换、检索、存储、处理、更新图形的显示,对下位机(即学生机)的控制和通信等控制。学生机完成数据的采集和信号的处理。教师机作为主机,学生机作为从机。主从机间的通信方式采用串行口方式。每一个训练或鉴定工位均有独立的学生机和彩色电视机,每台学生机之间通过网线互联。学生机通过继电器控制彩色电视机故障点的状态。

AT89C52单片机控制系统需要进行软、硬件开发。与单个独立单片机系统不同,网络中单片机不仅要按预先设计的程序工作,更多时候需要根据来自上位机的控制指令适时调整工作程序。实操训练或考试时下位机主要功能如下:

(1) 作为上位机的终端;

(2) 作为电子设备控制器;

(3) 提供考生交互界面;

(4) 其他监考服务。

2 通信接口设计

通信接口是单片机控制系统的重要组成部分。单片机与计算机之间不断地进行信息交换和传输,而这种信息的交换和传输都必须通过通信接口和数据总线来实现,通信接口器件和总线的合理选择是单片机控制系统中数据交换和传输顺利进行的前提和保障。

该系统采用RS 485总线组网,上位机通过串行接口经标准RS 232总线和RS 232/RS 485转换器将RS 232标准电平转换为RS 485标准电平与考生的下位机端通信;在下位机端SN75176将RS 485标准电平转换为TTL电平接入处理器的异步串行通信口(UART),实现RS 485网络的半双工通信。

RS 232/RS 485转换器采用市场上即插即用型的产品,本身已经实现智能控制收发使能,无须更改任何上位机硬件。上位机最多可连接32台下位机,如果在下位机端采用SN75184则上位机最多可连接64台下位机。

RS 485接口电路的设计要充分考虑线路上的各种干扰及线路特征阻抗的匹配。信号在传输过程中会产生电磁干扰和终端反射,使有用信号与干扰信号在传输线上相叠加,当干扰太大时,可导致通信无法进行。该系统选用SN75176 RS 485接口芯片,RS 485总线网络的通信介质采用带有屏蔽层的双绞线,并在传输线末端各安装120 Ω匹配电阻,以消除传输线上信号的反射,通信距离可达到1 200 m。

3 通信协议

RS 485接口的软件设计对系统联网的可靠性有很大的影响。由于RS 485总线是异步半双工的通信总线,在某一时刻总线只可能呈现一种状态,所以这种方式使用于上位机与下位机的查询方式通信,为了协调总线的分时复用,必须制定一套合理的通信协议,以保证数据通信的正常进行。本系统通信协议是:波特率约定为9 600 b/s,T1工作于方式2,初值为FDH,SMOD=0。串行口初始化为方式3。通信格式要求如下:

通信数据格式总共24 b(二进制),8 b识别码,8 b控制指令代码,8 b故障点代码,格式如下:

规定如下:

识别码为下位机地址码,地址范围为70H~88H。

控制指令代码为:字符“1”表示故障点短接,ASCII码为“31H”;字符“0”表示故障点断开,ASCII码为“30H”。

(1) 上位机状态字:

b0:发卷指令标志1,无发卷指令标志0;

b1:开考指令标志1,无开考指令标志0;

b2:答题查询指令标志1,无答题查询指令标志0;

b3:强行中止答题指令标志1,无强行中止答题指令标志0;

b4:恢复答题指令标志1,无恢复答题指令标志0。

(2) 下位机状态字:

b0:登陆请求1,无登陆请求0;

b1:已登陆状态标志1,未登陆状态标志0;

b2:已收卷状态标志1,未收卷状态标志0;

b3:开始答题状态标志1,未开始答题状态标志0;

b4:交卷请求标志1,无交卷请求标志0;

b5:已交卷标志1,未交卷标志0;

b6:答题中止标志1,答题恢复标志0。

4 通信过程

上位机开机启动程序,上位机进入轮询过程。此时,下位机开机登陆,在轮询到自己时,发出登陆信息,上位机收到后,进行必要的登陆处理。在所有下位机登陆完毕后或监考老师认为收到所有考生的登陆信息后,按下发卷按钮,对每一个登陆下位机依次发卷。发卷完毕后,由监考老师按下开考按钮,以广播方式发出考试开始指令,下位机显示考试题目,系统开始计时。在考试进行过程中,监考老师可查询任一个下位机的状态(包括考生考试情况);甚至可以启动自动巡考指令,自动巡视每个考生的答题情况。考试过程中考生答题完毕可交卷,在考生按下交卷按钮后交卷,发出交卷信息,上位机接收,并发出正确接收的回复信息。考试过程中,监考老师发现有学生作弊,可随时按下中止考试按钮,中止此下位机的运行,考试记零分。考试时间到,系统自动判断是否仍有考生没有交卷,中止考生答卷,并取回相应下位机的答题信息。上下位机基本轮询及通信动作示意图如图3所示。

上下位机通信动作过程如下:

① 上位机作为网络主控端,以一定时间间隔dt1进行轮询。轮询过程是这样的:首先上位机查询上位机状态字,判断是否存在通讯请求,如果没有,就对轮询到的下位机发出通讯授权标志,若在延迟短暂时间后下位机无应答,置此地址下位机不在线标志,并中止此次轮询;若有应答则置与此下位机通讯的通道标志。

② 下位机发出指令:表明下位机回复查询指令,根据状态字判断下位机状态。

③ 上位机发出指令:表明上位机根据下位机的状态字及上位机状态字,按上位机有优先原则,发出上位机准备接收信息。

④ 下位机发出指令:上位机根据功能指令解析数据,完成相应的显示及确认回复。

⑤ 上位机发出指令:在从下位机向上位机传输信息过程中出现错误时,上位机将向下位机发出重发功能指令,重发次数确定根据调试过程确定。

在设计RS 485通信软件时,要注意对RS 485控制端的软件编程。为了保证数据收发可靠,在RS 485总线状态切换时需要加适当的延时,延时一般控制在1 ms左右,再进行数据的收发。经过这样处理后,使总线在状态切换时有一个稳定的工作过程。

5 上位机通信软件的设计

上位机通信是采用一个专门针对串行通信的CSerial类进行程序设计的,该方法功能较强,只要理解这种类的几个成员函数,就能方便使用。以下是几个常用的成员函数[2]:

6 结 语

提出了一种基于AT89C52单片机网络通信系统的软硬件设计,该方案已成功应用在电子产品故障检修技能智能化考核系统中,并将其产品化,经一年多来的使用,运行可靠。此外,由于系统采用模块化设计,灵活性强,可根据用户的实际需要,实现对不同型号、不同品牌、不同功能的终端设备进行控制。因此具有较高的应用价值和推广价值。

参考文献

[1]黄志辉,张利,龙赛琼.基于RS 485现场总线的机床监测系统设计[J].控制与检测,2005(10):39-43.

[2]立现勇.Visual C++串口通信技术与工程实践[M].北京:人民邮电出版社,2003.

[3]穆斌.RS 485总线网络应用中的安全与可靠性[J].光学精密工程,2003,11(2):193-197.

[4]吴秋明,和卫星,陈晓平,等.基于RS 485总线的PC与多台单片机间的串行通信[J].微计算机信息,2006,22(23):2-8.

[5]钟立,王深茂.一种基于单片机控制的智能型应变仪设计[J].自动化技术与应用,2006,25(3):36-38.

[6]梁建立,李志斌.单片机应用系统的抗干扰设计[J].山西电子技术,2006(1):37-38.

[7]吴允平,蔡声镇,苏伟达,等.51单片机系统扩展多串口设计及应用[J].福建师范大学学报,2006,22(2):29-33.

[8]冯立杰,傅民全,李文波.多CPU嵌入式系统的设计方法[J].现代电子技术,2006,29(6):54-55.

[9]余凤翎,詹彤,陈忠,等.网络控制线路检修训练与考核系统的开发[J].现代电子技术,2006,29(4):138-140.

[10]胡蓉.基于单片机定时器PWM的DTMF远程通信[J].浙江师范大学学报,2006,29(1):66-69.

相关文章
创新公共服务范文

创新公共服务范文

创新公共服务范文(精选12篇)创新公共服务 第1篇科学技术是第一生产力,科技公共服务平台对国家或区域的技术创新具有巨大的推动作用。科技...

3
2025-10-24
匆匆中学生读后有感

匆匆中学生读后有感

匆匆中学生读后有感(精选9篇)匆匆中学生读后有感 第1篇匆匆读后感500字_读《匆匆》有感当细细地品读完一本名著后,大家心中一定有不少感...

1
2025-10-24
草莓教学范文

草莓教学范文

草莓教学范文(精选17篇)草莓教学 第1篇“风儿轻轻吹,彩蝶翩翩飞,有位小姑娘上山摘草莓,一串串哟红草莓,好像……”优美的歌词,动听...

3
2025-10-24
仓储类课程范文

仓储类课程范文

仓储类课程范文(精选7篇)仓储类课程 第1篇物流产业是复合型产业,发达的物流能加速传统运输、仓储和零售等行业向现代物流服务领域延伸。...

1
2025-10-24
创造性批评:解说与解读

创造性批评:解说与解读

创造性批评:解说与解读(精选8篇)创造性批评:解说与解读 第1篇创造性批评:解说与解读作为诗性文化重要组成部分的审美批评,同文学艺术实践...

2
2025-10-24
初二地理试卷分析

初二地理试卷分析

初二地理试卷分析(精选6篇)初二地理试卷分析 第1篇莲山 课件 w ww.5 YK J.COM 4 初二地理试卷分析二、试题所体现的新课程理念和...

3
2025-10-24
常州市河海中学文明班小结

常州市河海中学文明班小结

常州市河海中学文明班小结(精选2篇)常州市河海中学文明班小结 第1篇常州市河海中学2008~2009学年第一学期 八(1)班创 文 明 班 ...

4
2025-10-24
财务负责人身份证明

财务负责人身份证明

财务负责人身份证明(精选14篇)财务负责人身份证明 第1篇财务负责人身份证明及签字样本兹证明为我公司财务负责人。特此证明。身份证复印...

2
2025-10-24
付费阅读
确认删除?
回到顶部