2.2 模/数转换原理
该系统中的单片机是使用Atmel公司的AT89C51微控制器,与MCS一51单片机产品兼容,具有4 KB闪烁可编程可擦除只读存储器、1 000次擦写周期、32个可编程I/O口线、2个16位定时器/计数器、5个中断源、UART串行通道等特点。在设计中主要用它来控制传感器信号发生装置输出的模拟信号转换成数字信号,进行数据采集和显示以及串行通信。
经过与标准量比较处理后的模拟量转化成以二进制数值表示的离散信号的转换器,简称A/D转换器.转换器的输入量一般为直流电流或电压,输出量为二进制数码的数字量。该设计中使用ADC0809转换器。过程如下:首先它可以将其看成由一个8位A/D转换器和一个8通道模拟多路开关组合而成,INO~IN7分别对应8路模拟量输人,由引脚ADDA,ADDB和ADDC决定具体是哪一条模拟量来进行转化。在引脚START和ALE上加1个正脉冲后,通道选择码立即锁定并同时ADC转换启动。转换开始后OE引脚加1个正脉冲,将输出缓冲器的三态门打开,使转换后的数字量能够传送至数据总线。
2.3 数据采集和显示
放大处理后的电压信号,虽然在幅值上达到了可以处理的范围,但模/数电压转换的范围是0~5 V,而传感器输出的电压存在负值,为了使电压匹配,信号电压在接人模/数转换器前可以加一级加法电路,将电压信号全部转换为正值。放大电路、滤波电路和加法电路均使用LM324实现,硬件电路如图4所示。
数据显示电路分为数码管显示电路和PC机显示 部分。数码管显示用于单片机上,单片机分别通过段显 码和位显码对数码管上显示的数据进行控制。段显码 控制显示的数据内容,位显码则控制数码管亮或灭。段 显码是单片机通过可编程通用并行接口8155逐位传到 8位移位寄存器74LSl64中去,再由它将串行传输数据 变为并行数据传给数码管显示。而位显码是单片机 通过8155一次性送到数据锁存器74L$244中锁存,再 去驱动数码管并控制其亮或灭。
2.4 串行通信
该设计中采用异步串行通信的方式。而AT89C51 单片机的串行口,当工作于方式1,2和3时,UART(通用异步接收和发送)可以实现单片机系统与PC机之间的串行通信。PC机串行通信主要是通过串行口芯片8251实现的。8251有10个寄存器,端口地址从3F8H~3FEH(c0M1),可以通过对8251编程来指定通信协议即通信的波特率、数据位数、奇偶类型和停止位长度。另外由于Pc机串口的电平是RS 232电平,不与单片机串口的TTL电平兼容,因此需要在它们之间进行电平转换。传统的方法是使用MCl488将TTL电平转换成RS 232电平,用MCl488实现反向转换,由于MCl488需要±12 V电压,使用中非常不便,故该设计采用MAXIM公司的产品片MAX232来实现,由单+5 V的电压供电,既可实现TTL到RS 232的电平转换,也可实现RS 232到TTL电平的转换,使用十分方便,具体的线路如图5所示。
3 软件实现部分
3.1 单片机部分
AT89C51系列单片机的串行口可工作于4种不同的方式。在该程序中,单片机串行口工作设定为方式1,即数据经TxD端发送,RxD端接收,波特率2 400 b/s,10位构成一帧,l位起始位,8位数据位,1位停止位,初值0F3H,SMOD=1。
由于单片机多应用于实时性较强的控制场合,为了尽量少占用CPU的时间,充分发挥CPU的功能。该系统在单片机程序设计中采用中断方式与PC机进行通信。主程序只进行串行通信、数码管实时显示、模/数转换结果的初始化和循环等待串行中断工作,当接收到PC机发来的信号时,就转人中断服务程序,进行A/D转换,并向Pc机发送数据。中断服务子程序流程图如图6所示。