基于51单片机的智能控制仪表简单设计

更新时间:2024-04-08 06:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

智能控制仪表课程设计

----基于51单片机的智能控制仪表简单设计

学校:红河学院

专业:电气工程及其自动化 姓名:和红昌

学号:201005050354 班级:10级电气叁班 指导老师:牛林

红河学院工学院自动化系 智能仪表课程设计

第1章 引言

仪器仪表是人类认识世界的工具,人们借助于各种仪器仪表对各种物理量进行度量,反映其大小与变化规律. 随着人类认识能力的提高与科学技术不断进步,仪器仪表技术得到了飞速发展.50 年代以前,仪器仪表多为指针式,其理论基础是机电学. 从50 年代起,电子技术特别是数字技术的发展,给仪表行业带来了生机,各种数字式仪表相继问世,许多传统的指针式仪表相继被淘汰,数字仪表使仪表外观耳目一新,数据表达能力与总体性能都大幅提高. 70 年代中期,随着微处理器的出现以及单片机的兴起与应用,设计者将计算机特有的许多优点引入仪表设计,随之产生了一代崭新的智能仪表,使仪表逐渐由数字型向智能化发展,其功能也由单一显示功能转变为具有信息处理、传输、存贮、显示、控制等功能,使仪表性能产生了质的飞跃.,品种繁多. 目前,我国仪器仪表有13 大类,1 300 多个产品. 其中自动化仪表及控制系统是和国民经济各产业部门关系最为密切的一类产品,其传感变送单元与主控装置及I/O接口均正朝智能化方向发展.在本设计中采用以单片机作为仪表核心控制器件,可以利用A/D转换芯片对标准信号进行采集、转换,将输入的模拟量转换成单片机能够检测的数字量进行分析和监测控制,同时可以利用键盘显示电路将相关数据进行显示。与此同时通过所查阅的资料我还了解到随着测量技术的发展和微处理器的广泛应用,单片机系统的电路越来越复杂,而系统的可靠性问题也越来越突出,一般的单片机系统在工业现场等恶劣的环境下容易死机,因此系统在这些场合要保证能够稳定的工作就必须外加监视电路,在设计中采用了美国集把关定时器、电压监控和串行EEPROM三项功能于一体的专用集成芯片X5045。该芯片的应用将有利于简化单片机系统的结构,增强功能、降低系统的成本,尤其是大大的增加了系统的可靠性。X5045中的看门狗对系统提供了保护功能。当系统发生故障而超过设置时间时,电路中的看门狗将通过RESET信号向CPU作出反应。X5045提供了三个时间值供用户选择使用。它所具有的电压临控功能还可以保护系统免受低电压的影响,当电源电压降到允许范围以下时,系统将复位,直到电源电压返回到稳定值为止。本次毕业设计旨在掌握智能控制仪表的设计方法,同时掌握在开发系统下实现部分软件的仿真方法。

第2章 控制系统的硬件设计

硬件组成 智能仪表的硬件方框图如图2.1

被测量 D/A转换器 记录模拟机构 变送器组 转换电路 A/D转换器 单片机 键盘显示输出 串行通信接口芯片 PC机

图2.1 智能控制仪表的原理框图

门槛 跨过去就是门;没跨不过去就是槛。 1

红河学院工学院自动化系 智能仪表课程设计

2.1 CPU的选择

AT89C52 芯片有40 个引脚,32 个外部双向输入/输出(I/O)端口。同时内含2 个外中断口,3 个16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线。AT89C52 可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。基于上述特点,可使电路极大地简化,而且程序的编写及固化也相当方便、灵活。 AT89C52的引脚如图2.2所示。

123456781312151431191891716P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWR[6]

40P00P01P02P03P04P05P06P07AT89C52P20P21P22P23P24P25P26P2739383736353433322122232425262728VCC设计要求实现0~5V,1~5V,0~10ma,4~20ma标准信号变换电路的设计,输入信号范围确定,输出电压范围则取决于所选取的A/D转换芯片

图2.2 AT89C52引脚图 的输入电压范围,A/D转换器选用的串行A/D转换器TLC2543,它的最大

输入电压范围为0~5V,因此需完成四种不同信号与0~5V电压信号的转换。

1. 0~5V/0~5V转换及1~5V/0~5V转换

(1)0~5V/0~5V转换:此转换电路只需在输入与输出电压之间加一电压跟随器即可。电压跟随器,顾名思义,就是输出电压与输入电压是相同的,就是说,电压跟随器作为同相放大器的特例,在低频情况下其放大倍数接近1,故称为电压跟随器,电压跟随器的显著特点就是,输入阻抗高,而输出阻抗低,一般来说,输入阻抗要达到几兆欧姆是很容易做到的。输出阻抗低,通常可以到几欧姆,甚至更低。因此常在信号处理中作用阻抗变换器。在电路中,电压跟随器一般做缓冲级及隔离级。因为,电压放大器的输出阻抗一般比较高,通常在几千欧到几十千欧,如果后级的输入阻抗比较小,那么信号就会有相当的部分损耗在前级的输出电阻中。在这个时候,就需要电压跟随器来从中进行缓冲。起到承上启下的作用。应用电压跟随器的另外一个好处就是,提高了输入阻抗,这样,输入电容的容量可以大幅度减小,为应用高品质的电容提供了前提保证。电压跟随器的另外一个作用就是隔离。具体电路如图2.3所示。

+5V_1 LM324A 3+Ui1R1100K 14 2

-U1C1110.01mF-5V

图2.3 0~5V/O~5V转换电路

门槛 跨过去就是门;没跨不过去就是槛。 2

20GND2.2 标准信号转换电路

[5]

RXDTXDALE/PPSEN10113029红河学院工学院自动化系 智能仪表课程设计

(2)1~5V/0~5V转换:采用同相放大器电路,如图2.4所示。 Ui2

+5V_14R283.7k+143LM324AR7100K3++5V_1LM324AR8C2100KR318K2-11U22-5V111-U30.01mF-5VRw1R443KR65.1KRw24.7K4.7KR510K+12V图2.4 1~5V/O~5V转换电路

2. 0~10mA/0~5V的转换及4~20mA/0~5V的转换 (1)0~10mA/0~5V的转换电路

下图2.5为所设计的I/v转换电路。其实质是一同相放大器电路,利用0~10mA电流在电阻R上产生输入电压。在输出端接负载时,需考虑转换器的输出驱动能力,一般在输出端可再接一个电压跟随器作为缓冲器,4~20mA/0~5V的转换也同此,由于采用同相端输入,因此放大器A应选用共模抑制比较高的运算放大器,从电路结构可知,其输入阻抗较低。

+5V_1 +5V_1R1060K3LM324AUi3 +R13100KLM324A13 +R14100K21 R9U4- C32C4200-U5 -5V0.01mFRw30.01mFR11100KR12100K 50K-5V 图2.5 0~10mA/O~5V转换电路

411114门槛 跨过去就是门;没跨不过去就是槛。 3

红河学院工学院自动化系 智能仪表课程设计

(2)4~20mA/0~5V的转换电路如图2.6。

+5V_14R16Ui4C5R15250R1718K83.7K+5V_1+43LM324A1R21100K3+LM324AR22C60.01mF-5V100K0.01mF2-U612-U711-5VD1Rw44.7KR1910KR1843KR205.1KRw54.7K+12V图2.6 4~20mA/O~5V转换电路

2.3 A/D转换器的选型设计

[3] [8]

在单片机开发中,很多都要涉及到将模拟量转换为数字量,因此使用ADC的场合很多. 选择一款合适的ADC芯片就显得尤为重要. 由于单片机往往要控制比较多的I/O口,因此使用并行ADC会限制系统I/O口功能的扩展,采用串行ADC比较适合那些低速采样而控制管脚又比较多的系统.TLC2543是有11个输入端的12 bit模数转换器,具有转换快、稳定性好、与微处理器接口简单、价格低等优点. 由于它带有串行外设接口(SPI) ,而51系列单片机没有SPI, 为了与TLC2543接口,可利用软件合成SPI操作,完成A/D数据的采集。

2.3.1 TLC2543的特点及引脚

TLC2543是12 bit串行A/D转换器,使用开关电容逐次逼近技术完成A /D转换过程. 由于是串行输入结构,能够节省单片机的I/O资源. TLC2543的引脚排列如图2.7所示

图1中A IN0~A IN10为模拟输入端; /CS为片选端; DIN为串行数据输入端;DOUT为A/D转换结果的三态串行输出端; EOC为转换结束端; CLK为I/O时钟; REF +为正基准电压端; REF - 为负基准电压端;VCC为电源; GND为地.

2.3.2 TLC2543使用方法

控制字的格式:

控制字为从DATE INPUT端串行输入的8 bit数据, 它规定了TLC2543要转换的模拟量通道、转换后的输出数据长度以及输出数据的格式. 其功能为:数据寄存器的前4位(D7-D4 )数据,用来选择要求转换的通道,D7D6D5D4=0000时选择0通道,D7D6D5D4=0001时选择1通道,依此类推。1011到1110代表分别选中测试电压。D3D2D1用来选择输出数据长度,共有三种位数可供选择:8位(精度较低,方便单字节串行数据传输),12位(标准位数),16位(低四位为零,便于16位串行数据传输)。选择输出数据长度为12位时,即D3D2=00或D3D2=10;D1,D0选择输入数据的导前位,D1:为“0”表示输出数据的最大位导前(MSB),为“1”时表示

11123456789AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7VCCEOCI/O CLOCKDATAINPUTDATAOUTCS201918171615REF+AIN8REF-1413121110AIN10GNDAIN9门槛 跨过去就是门;没跨不过去就是槛。 4

图2.7 TLC2543引脚图

红河学院工学院自动化系 智能仪表课程设计

最小位导前,D0为“0”时表示输出数据是单极性(无符号二进制),为“1”时表示双极性(有符号二进制)。本设计采用的是输出数据长度为8位。TLC2543在每次I/O 周期读取的数据都是上次转换的结果,当前的转换结果在下一个I/O周期中被串行读出,第一次读数由于内部调整,读取的转换结果可能不准确。应丢失。

转换过程:

TLC2543每次转换和数据传送使用16个时钟周期,并且在每次传送周期之间插入 /CS时序。片选/CS为高, I/O CLOCK、DATA INPUT被禁止,DATA OUT呈高阻状态, EOC为高. 使/CS变低, I/O CLOCK、DATA INPUT使能, DATA OUT脱离高阻状态. 12个时钟信号从I/O CLOCK端依次加入,随着时钟信号的加入,控制字从DATA INPUT一位一位地在时钟信号的上升沿时被送入TLC2543 (高位先送入) ,同时上一周期转换的A /D数据,即输出数据寄存器中的数据从DATA OUT一位一位地移出. TLC2543收到第4个时钟信号后,通道号也已收到,此时TLC2543开始对选定通道的模拟量进行采样,并保持到第12个时钟的下降沿. 在第12个时钟下降沿, EOC变低,开始对本次采样的模拟量进行A /D转换,转换时间约需10μs,转换完成后EOC变高,转换的数据在输出数据寄存器中,待下一个工作周期输出. 此后,可以进行新的工作周期.

2.3.3 TLC2543与AT89C52单片机的接口:

89C52单片机没有SP I接口,为了与TLC2543接口可以用软件功能来实现SP I接口,其硬件接口如图2.8所示.

图2.8

2.4 键盘、显示电路的设计

在设计中我采用了HD7279A键盘显示芯片做为键盘显示驱动电路芯片。HD7279A 是标准28 引脚双列直插式芯片。其接口电路和外围电路简单,且占用口线少,加之它具有较高的性能价格比。

HD7279A可同时驱动8位共阴式数码管(或64只独立LED)的显示驱动芯片,该芯片同时可连接多达64键的键盘矩阵,一片即可完成LED显示及键盘接口的全部功能。HD7279A内部含有译码器,可以直接接收BCD 码或16进制码,并同时具有2种译码方式。此外,还具有多种控制指令,例如:消隐、闪烁、左移、右移、段寻址等。HD7279A是一种管理键盘和 LED显示器的专用智能控制芯片。它能对多达8?8的键盘矩阵情况进行监视,具有自动消除键抖动并识别按键代码的功能。下面表2-1是HD7279引脚说明。

[7]

2.4.1 HD7279A的特点

门槛 跨过去就是门;没跨不过去就是槛。 5

红河学院工学院自动化系 智能仪表课程设计

1.各位可独立控制译码/不译码、消隐和闪烁等属性; 2.具有(循环)左移/(循环)右移指令;

3.具有段寻址指令,可方便地用来控制独立的LED显示管; 4.64键键盘控制器内含消抖电路。

表2-1 HD7279引脚说明

引脚 1,2 3,5 4 6 名称 VDD NC VSS CS 正电源 无连接,必须悬空。 接地 片选输入端,此引脚为低电平时,可向芯片发送指令及读取键盘数据 为数据串行传送的同步时钟输入端,向芯片发送数据及读取键盘数据时,次引脚垫平上升沿表示数据有效。 串行数据输入/输出端,当芯片接收指令时,此引脚为输入端,当读取键盘数据时,此引脚在“读”指令最后一个时钟的下降沿变为输出端。 按键有效输出端,平时为高电平,而检测到有效按键时此引脚边为低电平, 段g - 段a 驱动输出端. 小数点的驱动输出端 功能 7 CLK 8 DATA 9 KEY 10-16 17 18-25 SG-SA DP DIG0-DIG7 数字0-数字7驱动输出,即8个 LED 管的位驱动输出端。 26 27 28

CLKO RC RESET 振荡输出端。 RC 振荡连接端。其典型值为R=1.5KΩ,C=15Pf 复位端.该端由低电平变成高电平并保持25ms即复位结束。通常,该端接+5V即可 解释:RESET 为复位端。该端由低电平变成高电平并保持25ms 即复位结束。通常, 该端接+5V 电源。在需要较高可靠性的情况下, 可以连接一外部的复位电路,或直接由单片机控制。DIG0~DIG7 分别为8 个LED 管的位驱动输出端。SA~SG 分别是LED 数码管的A 段~G 段的输出端DP为小数点的驱动输出端。DIG0~DIG7 和SA~SG 同时还分别是64 键盘的列线和行线端口, 完成对键盘的监视、译码和键码的识别。HD7279A 片内具有驱动电路, 可以直接驱动1 英寸及其以下的LED 数码管, 使外围电路变的简单可靠。

HD7279A 与微处理器间仅需4 条接口线, 其中CS 为片选信号( 低电平有效) 。当微处理器访问HD7279A 时, 应将片选端置为低电平。DATA 为串行数据端, 当向HD7279A 发送数据时, DATA 为输入端;当通过HD7279A 输出键盘代码时, DATA 为输出端。CLK 为数据串行传送的同步时钟输入端, 时钟的上升沿表示数据有效。KEY 为按键信号输出端, 在无键按下时为高电平; 而在有键按下时变为低电平, 并一直保持到按键释放为止。

HD7279A的控制指令格式分为纯指令和带有数据的指令两大类,以下分别给予介绍。 1. 纯指令:

门槛 跨过去就是门;没跨不过去就是槛。 6

红河学院工学院自动化系 智能仪表课程设计

2. 带有数据的指令:带有数据的指令包括以下5种: (1)下载数据且按方式0译码。

这种指令的格式为: D7 1 D7 dp D6 0 D6 x D5 0 D5 x D4 0 D4 x D3 0 D3 d3 D2 a2 D2 d2 D1 a1 D1 d1 D0 a0 D0 d0 该命令由二字节组成,前半部分为指令,后半部分为显示内容,其中a2~a0为位地址,d0~d3为数据。

(2)下载数据且按方式1译码

此指令与上一条指令基本相同,所不同的只是译码方式。该指令的译码方式为:d0~d3的值对应于0~9和A~F。格式如下: D7 1 D7 dp D6 1 D6 x D5 0 D5 x D4 0 D4 x D3 1 D3 d3 D2 a2 D2 d2 D1 a1 D1 d1 D0 a0 D0 d0 (3)下载数据但不译码

该指令的格式如下:

D7 1 D7 dp D6 0 D6 A D5 0 D5 B D4 1 D4 C D3 0 D3 D D2 a2 D2 E D1 a1 D1 F D0 a0 D0 G 在该指令格式中,a2,a1,a0为位地址A~G和DP为显示数据,分别对应7段LED数码管的各段。当相应的数据位为1时,该段点亮,否则该段不亮。

(4)闪烁控制88H。此命令用于控制各个数码管的闪烁属性,d1~d8分别对应数码管1~8。在相应的各位中0表示闪烁,1表示不闪烁。开机后的缺省状态为各位均不闪烁。具体指令格式如下:

D7 1 D7 d8 D6 0 D6 d7 D5 0 D5 d6 D4 0 D4 d5 D3 1 D3 d4 D2 0 D2 d3 D1 0 D1 d2 D0 0 D0 d1 (5)读键盘数据指令15H 该指令的格式如下:

D7 0 D7 d7 D6 0 D6 d6 D5 0 D5 d5 D4 1 D4 d4 D3 0 D3 d3 D2 1 D2 d2 D1 0 D1 d1 D0 1 D0 d0 该指令主要用于从HD7279A读出当前的按键代码。 2.4.2 HD7279A与单片机的接口设计

HD7279A驱动的键盘显示的接线如图3.8所示。在键盘方面可以不用到的键,可以不用按钮。 可以根据你的需要,进行按钮的增减。本设计用到一个键——“显示键”。

门槛 跨过去就是门;没跨不过去就是槛。 7

红河学院工学院自动化系 智能仪表课程设计

图2.9 HD7279A驱动的键盘显示电路

2.5 D/A转换器选型设计

在后向通道中采用D/A转换器是计算机实现对模拟量控制的常用方式,而串行D/A转换器由于接口电路简单、易于远程操作以及体积小、功耗低等优点而广泛应用于便携式设备或分布式控制系统中。本设计对于D/A转换器的转换速度要求不高。设计中选用串行12位D/A转换器TLC5617,完全满足系统对分辨率的要求。图2.10 为TLC5617的引脚图,表2-2 是 TLC5617引脚排列及引脚功能说明 。

18

DINVDD 27SCLKOUTB

36 CSREF

45

OUTAGND

图2.10 TLC5617引脚图

表2-2 TLC5617引脚排列及引脚功能说明

引脚名称 编号 I/O 8

说明 门槛 跨过去就是门;没跨不过去就是槛。

红河学院工学院自动化系 智能仪表课程设计

DIN SCLK CS OUTB AGND REFIN OUTA VDD 1 2 3 4 5 6 7 8 I I I O I O 串行数据输入 串行时钟输入 芯片选择,低电平有效 DAC B模拟输出 模拟地 基准电压输入 DAC A 模拟输出 正电源

单片机与TLC5617的接口电路如图3.10所示。P0.6通过光电耦合器接TLC5617的SCLK端,P0.5通过光电耦合器接TLC5617的DIN端,P0.7通过光电耦合器接TLC5617的CS端。当片选CS为低电平时,输入数据由时钟定时以最高有效位在前的方式输入TLC5617的16位移位寄存器。SCLK输入的下降沿把数据移入寄存器。然后CS的上升沿把数据送到TLC5617的内部DAC寄存器。所有CS的跳变应当发生在SCLK输入为低电平时。

+5V_1R36680U18+5V_2Q4P521P0.5R374.7K9013R38U23+5V-210K18R5410KDINVDD+5V-24+5V_1R39680U19+5V_22CLKOUTB73+LM324A1TLC561723CSREF611-U24-5VQ5P521R4110K4OUTAGND5P0.6R404.7K9013R5510K+5V_1R42680U20+5V_2Q6P521P0.7R434.7K9013R4410K图2.11 TLC5617与单片机的接口

2.6 RS-232 串行通讯电路

由于AT89C52单片机具有集成度高、面向控制、系统结构简单、价格便宜等诸多优点,因而在智能化仪器仪表、数据采集、数据测量等方面有着广泛的应用。但是,实际应用中单片机在数据处理能力、人机交互等方面往往不能满足要求,因而通常用PC机来弥补单片机的这些不足。

串行通信端口(Serial Communication Port)在系统控制的范畴中一直扮演着极其重要的角色,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越先进,应用也越来越广泛。现在,串行通信端口(RS—232)是计算机上的标准配置,用途上则以连接调制解调器来传输数据最为常见。

门槛 跨过去就是门;没跨不过去就是槛。

9

红河学院工学院自动化系 智能仪表课程设计

RS—232通信端口是每台计算机上的必要配置,通常有COMl与COM2两个端口。计算机上的RS—232均是公头,在一般个人计算机上的外观如下图。

图3-11计算机上的串行端口

端口共有9个引脚,每一个引脚都有其特定的名称与用途,它们在计算机和连接线上的位置和定义如图2.12

12345 1:CD-Carrier 6:DSR-Data Set 789 6Detect, Ready, 载波检查 传输端待命 2:RXD-Receive, 7:RTS-Request To (公头) 数据接受 Send, 54321 要求传输 3:TXD-Transmit, 8:CTS-Clear To Send, 9876 数据传输 清除并传输 4:DTR-Data 9:RI-Ring Indicator, (母头)Terminal Ready, 响铃指示 数据端待命 5:GND-Ground, 地线

图2.12

RS-232 电路是单片机采集电路部分与上位机之间的接口电路。单片机就是利用RS-232 串口通讯向PC机发送指令,以完成数据的远距离传输。RS-232 是美国电子工程师协会正式公布的串行总线标准,也是目前最常用的串行接口标准,主要用来实现计算机与计算机之间、计算机与外设之间的数据通讯。RS-232串行通讯是全双工的,可以同时接受和发送,它的逻辑“1”是-5V~-15V,逻辑“0”是+5V~+15V。RS-232 串行接口总线适用于设备之间的通讯距离不大于15m,并且传输速率最大为20Kbps。由于RS-232 和TTL 各自规定了自己的电气标准,互不兼容,因此RS-232 与TTL 电路接口时需进行电平单介绍一种电平转换。

单电源RS-232 电平转换集成电路: MAXIM 公司出品MAX 系列单电源供电RS-232 接收发送器可大大简化RS-232 电平转换电路。它具有功耗低、通信速率高、封装形式多、单一电源供电、外接器件少等特点。它由充电泵电压变换器、驱动器(发送器)和接收器三个部分组成。

2.6.1 +5V 到±10V 双充电泵电压变换器

+5V 到±10V 的变换是由一种专利产品双充电泵电压变换器(见图2.13)完成的。第一个充电泵电压变换器的电容器C1 被充上+5V 电压,输出滤波电容器C3 上也充有+5V电压,输出电压V+为+10V。第二个充电泵电压变换器用电容器C2 将+10V 反相为-10V,保存-10V 在V-输出滤波电容器C4 上。

在停机方式下,V+通过一个1K 的内部下拉电阻连接到VCC,同时V-通过一个1K 的内部上拉电阻连接到地。

门槛 跨过去就是门;没跨不过去就是槛。 10

红河学院工学院自动化系 智能仪表课程设计

图2.13 电压变换器电路

2.6.2 RS-232 发送器

发送器的输入为TTL/CMOS 电平,输出RS-232 电平,当MAX 系列的电压倍增器(CPE)的工作电压为+5V,而RS-232 接受端负载为5K 时,发送器的输出电压为+8V 左右;空载时输出电压从(V+-0.6)V-之间变化,发送器的输入端内置400K的上拉电阻,当输入端悬空时,被上拉到Vcc,经反相器,输出端为低电平,上拉电阻耗电为15uA。所以悬空时的功耗最低

2.6.3 RS-232 接收器

接受器输入为RS-232 电平,输出为TTL/CMOS 电平。不使用的接受器输入、输出端可以悬空。其输入端内置5K 的下拉电阻。当输入端悬空时,被下拉至地,经反相器,输出为高电平。

图 2.14 MAX 232 引脚图

MAX232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电。内部结构基本可分三个部分:

第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。Ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑dp9插头;dp9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。

第三部分是供电。15脚dng、16脚vcc(+5v)。正常工作时对C1-C4 的电容类型要求不是很高,例如MAX202 需要0、1uF 的电容,而MAX232 需要1uF 的电容,在所有的情况下10uF 以内的电容均可使用。本系统选用MAX232 芯片实现TTL 与232 电平之间的转换,与接口电路相连的一侧是AT89C52 单片机,另一侧是GPRS MODEM,由它们来实现数据的无线传输。系统的RS-232串行通讯电路如图2.15。

门槛 跨过去就是门;没跨不过去就是槛。

11

红河学院工学院自动化系 智能仪表课程设计

图2.15 RS-232串口电路原理图

2.7 看门狗电路

测量技术的发展和微处理器的广泛应用, 单片机系统的电路越来越复杂,而系统的可靠性问题也越来越突出,一般的单片机系统在工业现场等恶劣的环境下容易死机,要求系统在这些场合可靠稳定的工作,就必须外加监视电路。X5045 是在单片机系统中广泛应用的一种看门狗芯片,他把上电复位、看门狗定时器、电压监控和E2 PROM四种常用功能组合在单个芯片里, 以降低系统成本、节约电路板空间。其看门狗定时器和电源电压监控功能可对系统起到保护作用;512 ×8 位的E2 PROM 可用来存储单片机系统的重要数据。将其运用在温度控制系统,取得了令人满意的结果。

[2]

2.7.1 X5045 芯片的工作原理

(1)引脚及功能

X5045 的管脚排列如图2.13 所示,他共有8 个引脚,各引脚的功能如下: CS :电路选择端,低电平有效; SO :串行数据输出端; SI :串行数据输人端;

SCK:串行时钟输入端; WP :写保护输人端,低电平有效; RESET :复位输出端;

VCC:电源端; VSS :接地端。

图2.13 X5045 的管脚图

(2)工作原理

X5045 除了作为看门狗芯片使用外,另外一个基本的功能就是作为E2 PROM 数据存储器使用,内部包含512 ×8 的串行E2 PROM ,以保证系统在掉电后仍可维持重要数据不变。X5045 与MCU 采用流行的SPI 总线接口方式,可以和任意一款单片机的I/ O 口直接连接。数据在SCK的上升沿由时钟同步输入,在整个工作期内,CS必须是低电平且WP 必须是高电平。如果在看门狗定时器预置的溢出时间内没有总线活动通常指CS引脚电平变化,那么X5045 将提供复位信号输出以保证系统的可靠运行。X5045 内部有一个“写使能”锁存器,在执行写操作之前该锁存器必须被置位,在写周期完成之后,该锁存器自动复位。X5045 还有一个状态寄存器,用来提供X5045状态信息以及设置块保护和看门狗的定时周期。对芯片内部寄存器的读写均按一定的指令格式进行, 表1 为X5045 的指令格式。

门槛 跨过去就是门;没跨不过去就是槛。 12

红河学院工学院自动化系 智能仪表课程设计

数据读写时,MSB(最高位) 在前。表1 中的A8 表示内部存储器的高地址位。在实际应用中,往往要对状态寄存器进行读写操作,他是一个8 位的寄存器,用来标识芯片的忙闲状态、内部E2 PROM 数据块保护范围以及看门狗定时器的定时周期,其内部格式如表2 所示。

表2 数据块内部格式 X X WD1 WD0 BL1 BL0 WEL WIP 其中低2 位的WEL ,WIP 表示芯片锁存器和写数据的忙闲状态,块保护BL1 ,BL0 表示内部数据存储器的保护范围,一旦设置了保护位,则被保护的数据段只允许读,写操作是严格禁止的。看门狗定时器周期设置位WD1 ,WD0 可以由用户通过编程自行设定看门狗的溢出时间,当全为0 时定时间为114 s ,如表3 所示。

表3 看门狗超时周期 状态寄存器 WD1 0 0 1 1

WD0 0 1 0 1 看门狗超时周期 1.4秒 600毫秒 200毫秒 禁止 2.7.2 X5045 芯片与52 内核的单片机连接

图2.14 X5045 与AT89C52 的硬件接口电路

2.8 电源部分

由于时间限止,我采用了5V~12V的直流稳压电源。

第3章 系统的软件设计

系统软件主要包括两部分:一部分是单片机的程序,一部分是上位机的程序。

3.1 下位机程序设计

门槛 跨过去就是门;没跨不过去就是槛。 13

红河学院工学院自动化系 智能仪表课程设计

下位机主程序完成系统的初始化工作,启动A/D转换,将采集来的模拟量转换成数字量,然后分别执行相应的子程序。主要子程序包括:显示程序,键盘扫描程序, X5045读/写控制程序DAC转换程序。具体流程图下图。具体程序见附录。

开 始初 始 启动A/D转换及数据采集 读 取 转 换 数 数据处理、启动执行 调用键盘显示程 串口中断、发 送/接收 定时器中 断 、 设置 扫描 控制 显示 结果 3.1.1 ADC转换程序模块

该子程序主要完成对信号的采集,转换。

3.1.2 显示程序模块

该子程序主要完成对采集、转换后的信号进行显示,HD7279A芯片构成的键盘显示电路,按照其程序依次调用发送、收受程序,将单片机处理后的数据通过LED数码管显示。

3.1.3键盘扫描程序模块

该子程序主要完成任务书中要求的对数码管显示的数据进行有关参数的设置

3.1.4 DAC转换程序模块

该子程序主要完成数字变成模拟的功能,实现对模拟量控制的常用方式。

3.1.5 看门狗子程序模块

该程序主要完成对系统的监控功能。

3.2 上位机程序设计

PC机的程序采用C语言设计,主要包括以下功能:与单片机部分进行通讯、显示转换数据、建立数据存储文件等功能。程序流程图如下图所示。 其程序流程图如下图。

门槛 跨过去就是门;没跨不过去就是槛。

14

红河学院工学院自动化系 智能仪表课程设计

开始 通讯成功,保存数据到数据文件夹 串口初始转换次数-1设置文件保存路径 发送启动转换命令调用延时子程序 打开新数据文件 转换次数>设定值? N Y 转换次数清零化 关闭文件接收命令 N Y 结 束 接受正确与? 由于应用程序服务器与单片机之间的通信一般是短距离的,在考虑低成本的情况下采用串行、异步、单工方式即可,即用两条信号线和一条地线完成数据的传送,这就要求在发送和接收之间制定一定的规则,使发送和接收之间协调一致。本系统根据PC机和单片机之间的特点编写了串行发送和接收模块实现了PC机和单片机之间的高速串行通信。上位机接收数据所用C语言程序包括初始化子程序和接收子程序。各子程序分别如下:

void init_com1(void)/*初始化子程序*/ {

outportb(0x3fb,0x80);/*线控制寄存器高位置1,使波特率设置有效*/ outportb(0x3f8,0x18);/*波特率设置,与单片机波特率一致为4800bps*/ outportb(0x3f9,0x00);

outportb(0x3fb,0x03);/*线控制寄存器设置,8位数据位,1位停止位,无奇偶校验*/ outportb(0x3fc,0x03);/*Modem控制寄存器设置,使DTR和RTS输出有效*/ outportb(0x3f9,0x00);/*设置中断允许寄存器,禁止一切中断*/ }

void receive data(void)/*查询方式接收数据子程序*/ {

while(!kbhit()) {

while(!(inportb(0x3fd)&0x01));/*若接收寄存器为空,则等待*/ printf(\读取结果并显示*/

发送地址命令 门槛 跨过去就是门;没跨不过去就是槛。 15

红河学院工学院自动化系 智能仪表课程设计

}

getch(); }

第4章 系统抗干扰措施

抗干扰设计是单片机应用系统设计的重要组成部分,没有良好的抗干扰措施,系统就无法安全可靠的工作。当然,我们只能通过系统软件、硬件设计尽可能的减少干扰带来的影响,而不可能完全消除干扰。本系统在抗干扰方面考虑了如下的问题:

a:电源去耦,在电源线和地线之间并联47uF 和0.1uF 两个去耦电容,并联大电容为了去除低频干扰,并联小电容为了去除高频干扰。

b:加宽地线和电源线,加宽后的地线和电源线是信号线的7 倍。 c:所有芯片可靠接地,并且接地线构成环路。 d:手工布置元件和布线,连线尽可能短。 e:双面板两面的线条尽可能垂直交叉。

f:避免来自传感器,测量信号功能模块,控制信号功能信号的干扰,模拟电路通路通过隔离放大器隔离,数字电路通过光电耦合器进行隔离。

g:软件抗干扰设计: 通常有数字滤波技术、软件冗余、软件陷阱、看门狗等技术。

结 论

在本设计中,按照指导教师下达的要求认真完成设计,包括仪表的方案设计、标准信号的电路及A/D转换、键盘显示电路的连接、单片机的串行通讯接口电路、看门狗技术和D/A输出控制等硬件电路,并完成相关的程序编写及利用开发系统对部分软件进行仿真。在设计时,我遇到过许多困难,我的指导老师吴春富老师热心的为我答疑,许多老师也对我的毕业设计给予关注和指导,帮助我解决了许多难题,在此我表示感谢。

附 录

ORG 0000H AJMP START ORG 0030H START:

MOV SP,#07H; LCALL TLC2543; LCALL KMG; LCALL HD7279A; LCALL TLC5617; LCALL KMG; AJMP START; ;TLC2543接口子程序

TLC2543: CLR P0.0 ;清I/O时钟

门槛 跨过去就是门;没跨不过去就是槛。

16

红河学院工学院自动化系 智能仪表课程设计

SETB P0.3 ;设置片选为高 CLR P0.3 ;设置片选为低 MOV R4, #08 ;先读8 bit MOV R3,#10H

LOOP: DJNZ R3,LOOP

MOV A, R1 ;把方式/通道控制字放到A

LOOP1: MOV C,P0.2 ;读转换结果

RLC A ;A寄存器左移,移入结果数据位,移出方式/通道控制位 MOV P0.1, C ;输出方式/通道位 SETB P0.0 ;设置I/O时钟为高 CLR P0.0 ;清I/O时钟

DJNZ R4,LOOP1 ; R4不为0,则返回LOOP1 MOV R2,A ;转换结果的8 bit放到R2中 SETB P0.3 ;设置片选为高 RET

;D/A转换程序

;将要输入八位存于R2 寄存器中,R3 寄存器存放循环次数,R4 寄存器存放时间常数。 ;CS BIT P0.7 ;DIN BIT P0.5 ;SCLK BIT P0.6

TLC5617:MOV R4 , # 10H ;置延时时间常数

CLR CS ;片选有效

MOV R3 , # 08H ;置循环常数 MOV A ,R2 ; 8位送A

LCALL DCHA ;DIN 送入8 位数 CLR SCLK;时钟低电平

SETB CS;送入8 位数有效,开始转换 LCALL DELAY ;调延时子程序 RET

DCHA : NOP ;空操作

LOOP : CLR SCLK;产生下降沿

RLC A ;数据送入标志位

门槛 跨过去就是门;没跨不过去就是槛。 17

红河学院工学院自动化系 智能仪表课程设计

MOV DIN ,C;数据送入TLC5617 寄存器 SETB SCLK ;产生上升沿 DJNZ R3 ,LOOP ;循环送数 RET;返回

DELAY: DJNZ R4 ,DELAY ;延时

RET

;X5045的读/写程序 ;CS BIT P1.0 ;SI BIT P1.1 ;SCK BIT P1.2 ;SO BIT P1.3 KMG: CLR P1.2 CLR P1.0

MOV A ,#01H ;写状态寄存器指令字(WRSR) LCALL OUTBYT ;写入X5045

MOV A,#00H ;初始状态字,即设置X5045的超时复位时间为1.4S,存储器阵列的内容不写保护 LCALL OUTBYT ;写入X5045 CLR P1.2 SETB P1.0

LCALL WIPPOLL ;等待写入完成 RET

;写一字节数据到EEPROM中 ;地址在DPTR中 ;数据在R2中 WRITE: CLR P1.2 CLR P1.0

MOV A ,#06H ;写使能指令字(WREN) LCALL OUTBYT ;写入使能令字 SETB P1.2 SETB P1.0

MOV A,DPH ;DPH的最低位为写入地址的高位 RRC A

门槛 跨过去就是门;没跨不过去就是槛。

18

红河学院工学院自动化系 智能仪表课程设计

MOV A,#02H ;写指令字(WRITE) MOV ACC.3,C ;地址高位放入A8 CLR P1.0 CLR P1.2

LCALL OUTBYT ;写入指令字和高位地址A8 MOV A,DPL

LCALL OUTBYT ;写入低8位地址 MOV A,R2

LCALL OUTBYT ;写入一个字节的数据 CLR P1.2 SETB P1.0

LCALL WIPPOLL;等待写入完成 RET

READ:CLR P1.2 CLR P1.0 MOV A,DPH RRC A

MOV A,#O3H ;读指令字(READ) MOV B,DPH MOV ACC.3,C

LCALL OUTBYT ;写入读指令字和高位地址A8 MOV A,DPL

LCALL OUTBYT ;写入低8位地址 LCALL INBYT ;读入一具字节的数据 CLR SCK SETB CS RET

;向X5045写入一个数据字节子程序.要写入的数据(各种指令字,状态字或写入EEPROM的数据)在累加器A中 OUTBYT: MOV R5,#08H OUTBYT1: CLR P1.2 RLC A

门槛 跨过去就是门;没跨不过去就是槛。 19

红河学院工学院自动化系 智能仪表课程设计

MOV P1.1,C SETB P1.2 DJNZ R5,OUTBYT1 CLR P1.1 RET

;从X5045读出一个字节子程序,读出的数据(状态字或E2PROM中的数据在累加器A中 INBYT:MOV R5,#08 INBYT1: SETB P1.2 CLR P1.2 MOV C,P1.3 RLC A

DJNZ R5,INBYT1 RET

;等待写入完成子程序 WIPPOLL: MOV R1,#20H WIPPOLL1:NOP CLR P1.2 CLR P1.0

MOV A,#05H ;读状态寄存器指令字(RDSR) LCALL OUTBYT ;写入X5045 LCALL INBYT ;读X5045的状态字 CLR P1.2 SETB P1.0

JNB ACC.0,WIPPOLL2 ;WIP位为0,说明写入已完成 DJNZ R1,WIPPOLL1 ;否则,延迟一段时间 WIPPOLL2: RET

;HD7279A键盘显示程序 ;DAT7279 BIT P2.2 ;KEY7279 BIT P2.3 ;CLK7279 BIT P2.1 ;CS7279 BIT P2.0

门槛 跨过去就是门;没跨不过去就是槛。 20

红河学院工学院自动化系 智能仪表课程设计

HD7279A :MOV P2,#0F9H ; I/O口初始化

ACALL DEY25 ;等待25MS复位时间 MOV 029H,#0A4H ;发复位指令 ACALL SEND

SETB P2.0 ;置CS高电平

MAIN: JB P2.3,MAIN ;检测按键,无键按下等待

MOV 029H,#15H ;发读键盘指令 ACALL SEND ACALL RECE

SETB P2.0

MOV B,#10 ;十六进制键码转换成BCD码,以备显示 MOV A,028H DIV AB MOV R1,A

MOV 029H,#0C9H ;发送键码的十位值,按方式1译码下载显示 ACALL SEND MOV 029H,R1 ACALL SEND

MOV 029H,#0C8H ; ;发送键码的个位值,按方式1译码下载显示 ACALL SEND MOV 029H,B ACALL SEND SETB P2.0

WAIT:JNB P2.3,WAIT AJMP MAIN

SEND:MOV R2,#08H ;发送8位 CLR P2.0

ACALL DEY1 ;延时50us SLOOP:

MOV A,029H ;输出1位到HD7279A的DATA端 RLC A MOV P2.2,C

SETB P2.1 ;置CLK低电平 MOV A,029H ;待发数据左移

门槛 跨过去就是门;没跨不过去就是槛。 21

红河学院工学院自动化系 智能仪表课程设计

RL A MOV 029H,A

ACALL DEY2 ; 延时8us CLR P2.1 ;置CLK低电平 ACALL DEY2 ;延时8us

DJNZ R2,SLOOP ;检测8位是否发送完毕 CLR P2.2 ;发送完毕,DATA端置低,返回 RET

RECE:MOV R2,#08H ;接收8位 CLR P2.0 CLR P2.1

SETB P2.2 ;DATA端为高电平,输入状态 ACALL DEY1 ;延时50us RLOOP:SETB P2.1;置CLK高电平 LCALL DEY2;延时8 us MOV C,P2.2 ;接收1位数据 RLC A MOV 028H,A CLR P2.1 ACALL DEY2

DJNZ R2,RLOOP ;接收8位是否发送完毕 CLR P2.2 ;接收完毕,DATA端重新置为低电平 RET

DEY1:MOV R4,#25 DEY11:DJNZ R4,DEY11 RET

DEY2:MOV R4,#4 DEY21:DJNZ R4,DEY21 RET

DEY25:MOV R0,#50 KSYS:MOV R1,#255 KSYS1:DJNZ R1,KSYS1 DJNZ R0,KSYS RET

门槛 跨过去就是门;没跨不过去就是槛。 22

本文来源:https://www.bwwdw.com/article/zgrr.html

Top