![数据采集及传输处理解读_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-5/1/3d59914f-0b46-4022-aea8-d7caa312ba90/3d59914f-0b46-4022-aea8-d7caa312ba901.gif)
![数据采集及传输处理解读_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-5/1/3d59914f-0b46-4022-aea8-d7caa312ba90/3d59914f-0b46-4022-aea8-d7caa312ba902.gif)
![数据采集及传输处理解读_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-5/1/3d59914f-0b46-4022-aea8-d7caa312ba90/3d59914f-0b46-4022-aea8-d7caa312ba903.gif)
![数据采集及传输处理解读_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-5/1/3d59914f-0b46-4022-aea8-d7caa312ba90/3d59914f-0b46-4022-aea8-d7caa312ba904.gif)
![数据采集及传输处理解读_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-5/1/3d59914f-0b46-4022-aea8-d7caa312ba90/3d59914f-0b46-4022-aea8-d7caa312ba905.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据采集及传输处理摘要本文主要阐述了基于数字采集与传输处理系统的设计基本思想,包括硬件实现,应 用软件实现以及驱动程序设计,同时也介绍了基于MAX485数据传输系统。硬件的主要组成部分为 AT89C51,ADC0809,MAX485,8155,LED显示。用软件编程控制硬件实现的过程:发送方的设备把模拟信息转换为数字信息后,发 送到接收方的设备上。接收设备利用 LED来显示数据。使用的核心芯片是AT89C51,这个芯片可以很好地满足我们的要求。数据采集系 统用来采集模拟数据,并将模拟数据存放于存储器中作以后发送用。A/D转换器将模拟形式转换为数字量表示。使用 ADC0809作为A/D转换器,它
2、可以把连续的模拟信号转 变成数字形式。选用MAX485连接两台机器进行传递信息.软件编程的语言使用的是C 语言,它的运行的环境是keil软件。关键词:单片机AT89C51,ADC0809,MAX485丄E显示.AbstractThis article in troduces the base method accord ing to data collecti on and tran smitti ng process system, in clud ing the hardware desig n, the applicati on software desig n and the desi
3、g n of the program design, also introduces the data transmitting system according to the MAX485.The necessary hardware consists of AT89C51ADC0809, MAX485 ,8155, LED display.The process of the programme of software controlling hardware operation as follow: The device on the tran smitt ing computer co
4、nverts the an alog sig nals to digital format and this digital format is tran smitted to the recei ving computer. The device on the recei ving computer uses the in formatio n to driver LED display.The key chip we use is AT89C51. This chip can meet our need perfectly. Data acquisition system is used
5、to acquire analog data and store it on storage devices for later tran smitt ing. A/D conv erter converts an an alog format into an equivale nt digital represe ntati on. We use the ADC0809 as A/D conv erter, which is used to convert con ti nu ous analog signals into digital format. We choose the MAX4
6、85 as the device, which is used to conn ect two computers for tran smitti ng in formati on. The programme of software Ian guage is C Ian guage, which of operati on is keil software.Key words: MCS-AT89C51, A/D con verter, MAX485, LED display.目 录摘要 IAbstract II1绪论 12数据发送端硬件 42.1 ADC0809 与 AT89C51 的硬件连
7、接 42.1.1 ADC0809 简介 42.1.2 启动端口的连接与工作原理 51.1.2 输出端口的连接与工作原理 72.2晶振电路和复位电路 92.3 AT89C51的数据传输 92.3.1 AT89C51 的串行接口 92.3.2 MAX485 芯片 113数据接收端硬件 143.1 8155芯片结构和与 AT89C51的硬件连接 143.2 AT89C51 对 8155I/O 口的控制命令 163.3七段LED数码管硬件连接与工作原理 173.4键盘的硬件连接与工作原理 193.5闪烁部分的连接与工作原理 204软件执行过程 214.1发端软件执行过程 214.1.1 AT89C51
8、 和 ADC0809F程序工作过程 214.1.2 74汉明码的编码 224.1.3收发数据的子程序工作过程 234.2收端软件执行过程 244.2.1 收端主程序 244.2.2按键子程序 264.2.3显示子程序 27结论 28致谢 错误!未定义书签。参考文献 29附录A 30附录B 371绪论目前大中型企业智能化管理迅速发展。如果能在现场采集到的数据和控制器之间建立起通信,就可实现在控制室中利用计算机来监督现场设备的运行情况,这样不仅可以 大大降低劳动强度,有效地提高工作效率,而且可以快速地发现错误信息,并及时地赶 到现场进行处理。根据以上考虑,本人设计了一种基于 AT89C51单片机的
9、数字采集与传输处理系统。该装置主要应用在控制电压和电流的设备上,它可以显示该设备是否正常运行,也可以 根据人的需要立即显示一路信号。本人在设计数据采集系统过程中,考虑到输入的模拟电压仅在0V到5V之间,输入量的范围很小,为了精确地采集到数据,本设计中采用了ADC0809E片。它的分辨率为8位,即将一路信号A/D转换为8位二进制数。这样在控制室工作的人员就可以准确地 把握现场设备上电压或电流的变化情况。为了提高工作人员的效率,让他们能及时,快速地观察到错误信息,在设计电路工作流程中,执行程序使发端的 AT89C51不断地启动ADC0809T作,让ADC080不停地转 换新输入的模拟信号,并刷新收
10、端 AT89C51内存里的要显示数据。如果工作人员观察到 的数据工作在允许范围之内,说明现场一切设备运行正常,如果现场哪路设备不工作了, 在控制室里的工作人员就会发现发光二极管不断的闪烁,同时LED数码管会显示哪路出现问题,这时工作人员就可以立刻赶到现场,查明事故原因。在设计数据传输系统过程中,运用了 74汉明码的编码和译码原理,对采集到的数 据进行处理。由于74汉明码具有纠错和检错能力强,编码效率高码长短,编码规律简 单等优点,而且也是在现实系统中经常使用的一种检错码,所以利用74汉明码编码后发送的数据具有很好的纠错能力,这样就极大地提高了数据传输的可靠性。本系统设计的硬件设备由发端(A机)
11、和收端(B机)两部分组成。A机主要功能是 将采集到的数据进行A/D转换,然后把数据存于发端的 AT89C51中,利用MAX485来传 输数据。B机的主要功能是通过MAX485接收数据,将数据存于收端AT89C5仲,然后由 AT89C51来控制8155显示数据。在显示部分电路中由5个七段LED数码管和4*2矩阵键 盘组成,5个七段LED数码管的前两位用于显示是哪路的模拟电压信号还是模拟电流信号,后三位用于显示数字量,精确到小数点后两位。8个键盘代表了 8路模拟信号,其中第一列代表模拟电压信号,第二列代表模拟电流信号。发端(A机)基本框图为:收端(B机)基本框图为:在理论上系统主要由数据采集、数据
12、传输和数据处理三大功能模块组成。下面对三 大功能模块简单进行描述:第一部分:数据采集部分由模拟电压、模拟电流、运算放大器(LM324 )、A/D转换器(ADC0809芯片)、单片机AT89C51组成。由于模拟电源信号在传输过程中容易受到外界噪声的干扰,为了保证数据传输的可 靠性,将模拟信号转化为数字信号进行传送。这种转换的主要使用的芯片是ADC0809。所用电源,可产生0V-5V可调的模拟电压信号和10mA-50mA的可调模拟电流信号。数 据采集系统的软件设计采用了顺序程序设计的方法,包括主程序、启动A/D转换子程序和串行口发送子程序等。第二部分:数据传输部分由发端和收端各自的MAX485和A
13、T89C51组成。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。除具有 4个8 位并行口外,还具有一个全/半双工串行通信接口。 AT89C51通过使用串行接口的引脚 RXD( P3.0串行数据接收端)和引脚 TXD( P3.0串行数据发送端)与外界进行通信, 它可以实现需要的AT89C51单片机系统之间点对点的单机通信。MAX485是一种差分平衡型低功率收发器芯片。芯片中包含有1个驱动器和1个接收器,采用单+5V电源供 电,可用于TTL协议(即通用于各种CPU的通信协议)与485协议间的转换,由于它 是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法,这
14、样 就具有很强和很高的抗共模干扰能力和接收灵敏度,适合在比较恶劣的环境下工作。MAX485的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率;在转送数据速度 达100KB/S时,通信的距离可1200M。在MAX485收发端A和B之间接一个120欧的 匹配电阻,使电流信号转变为相差 200mV的电压信号。所以MAX485作为设计中最合 适的数据传输器件。第三部分:数据处理部分主要由单片机 AT89C51、8155可编程I/O接口、功能键 和七段LED显示器等部分组成。这部分将在第三章详细讲述。设计时注意了几个问题:(1)设计电路和片选时,要考虑芯片和电路的驱动能力,否则会造成工作不正常或
15、失败。如本设计中,由于 LED通常需要几几十毫安的驱动电流才能 发光,为了使其正常显示数据,在LED的段数据线上加入了 7407同相驱动器。模拟 电压和模拟电流电路中电阻不宜过大,且应采用精密电阻,以满足系统精度的要求。C51语言程序的运行环境为keil软件,当程序烧到AT89C51里时,keil可以把C51 语言直接生成汇编语言,以01代码的形式存在AT89C51的内存里。由于C语言的可读 性强,不像汇编语言那样繁琐,所以本人采用 C语言编程。单片机芯片应用广泛,具有很多特点,如片内资源丰富,产品的体积小,可靠性高, 引脚少,功能全,工作电压低,功耗小等。本设计是一个小型的控制系统,可以应用
16、在 不同的场合来监督设备是否正常工作。但由于本设计对器件的灵敏度、精度和实时性没 有很高的标准,在现实中不一定适用,还须根据不同的场合加以改进。2数据发送端硬件本章主要讲述了发端的 AT89C51控制ADC0809和MAX485勺工作原理,和它们之间 的硬件连接。2.1 ADC0809与AT89C51的硬件连接2.1.1 ADC0809 简介本人使用的ADC0809芯片是逐次逼近型的A/D转换器,分辨率为8位,可以实现对 8路模拟信号分时的进行 A/D转换,每一通道的转换大约需时10us。芯片内带有通道地 址译码锁存器,采用脉冲启动方式。应用单一+5 v电源,其模拟量输入电压的范围为0v-5v
17、,对应的数字量输出为 00H-FFH,三态锁存输出,功耗为15MW ADC0809是 A/D转 换的主要器件。本设计采用中断方式传送数据给AT89C51START CLOCK图2.1 ADC0809 逻辑框图U31 仃0OCC107|8ToT41D 2D 3D 4D 5D 6D 7D 8D5516T97Q8Q1Q2Q22232574LS373U1123456INT1INT015VCC 31191817c 0 16旷 0P10P11P12P13P14P15P16P17T1T0EA/VPX1X2RESETRDWRAT89C51/RD/WRP00P0LP02P03P04P05P06P07393837
18、3635343332Jk1714158181920211 CLOCK START ENABLEref(+ref(ALEIN-ADD-CADD-BIN-iADD-AIN-;EOCIN-lsb2-82-7IN-:2-62-5IN-:2-42-3IN-2-2msb2-1IN-2128ADC0809U21253P2P2P2P2EP2FP27281011P 3029RXDTXD-ALE/PSEN-U6A74ALS05U4A2 :1374ALS02U4B5 :4674ALS02图2.1 ADC0809与AT89C51连接原理图2.1.2启动端口的连接与工作原理27(1) START为“启动脉冲”输入线,该
19、线上的正脉冲是由 AT89C51的P2.7和/WR来提供的,其宽度在100us-200us之间。当执行指令使 P2.7=0和WR=O时,输入一个正脉 冲,便立即启动ADC0809T作,10us后E0(变为低电平。(2) ALE地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA,ADD和 ADDC 三条地址线上的地址信号得以锁存,经译码后读入一路模拟信号。由P2.7和W/R控制启 动转换信号ALE端,使之变为高电平,执行的指令和启动 START端的指令一样。(3) 0E输出允许信号,高电平有效。0E由低电平变高电平,打开三态输出锁存器,将转换后的结果输出到数字总线 D0-D7上。由P
20、2.7和RD联合控制使0E线变为高电平, 以提取A/D转换后的数据量。(4)IN0-IN7 :IN0-IN7为8路模拟电压输入线,前4位用于输入模拟电压,范围是0V-5V。 后4位用于输入被转换的模拟电流,范围是 10mA-50mA由于ADC0809勺输入端只能允许模拟电压信号输入,所以必须将模拟电流信号转换为模拟电压信号,因此模拟电流信号先串联1-的电阻,取电阻上的电压。又因为模拟电流信号为毫安级,而 ADC0809芯片要求输入电压为0V-5V之间,所以将取出的电压信 号经过放大倍数为10的运算放大器两级放大后进入 ADC0809的模拟输入通道IN4-IN0 进行A/D转换。具体接法如下所示
21、:图2.2两级运放原理图1.1.2输出端口的连接与工作原理(1) 通道选择ADDA,ADD和ADD(为通道地址输入线,用于选择IN0-IN7上的哪一路模拟电压送给比较器进行 A/D转换。ADDC ADDB ADDA勺8种组合状态000-111对应了 8个通道的选择。给ad_adr (ad_adr为指向通道的指针变量)赋值,锁存模拟通道地址,就选通了一路信号。当读取下一路模拟地址时,执行 ad_ad叶+ ;进入循环,便启动新输入通道 的A/D转换。(2) 采样进入采样程序后8个通道依次被选通一次,即采样次数为 8:转换所得的数字量按序存于片内AT89C51RA中的adi数组里。(3) 数字量的转
22、输1. D7-D0为数字量输出线,D7为最高位,D0为最低位。是三态输出锁存器的输出端。转换后的数据从D7-D0输入到AT89C5啲P0 口。2. EOC为转换结束输出线,指示转换结束和数据有效的信号,它是一个负方波,EOC由高电平到低电平跳变表示 A/D转换开始,转换过程中维持低电平,EOC由低到高跳 变表示A/D转换结束。EOC线作为CPU勺中断请求输入线。经7405反相后接到AT89C51 的帀0 口。当A/D转换结束时,EOC端发出一正脉冲,申请中断,即EOC=1 iNT =0, 向CPU申请中断。(4) ADC080啲其它端口工作原理1. VREF (+ ),VREF(-):参考电压
23、输入线,用于给电阻阶梯网络提供标准电压。VREF(+)和VCC(+5V相连,VREF(-)与地0V相连。输入的模拟量是从0开始,最大值是+5V满量程。当输入最小为0V,输出为00H,当输入最大为5V,输出为FFH2. CLOCK因芯片的时钟频率最高只能工作在 640KHz所以本人在设计中为 ADC0809提 供逐次比较所需时钟脉冲序列为 500KHz ADC080断需时钟信号由AT89C5啲ALE端提 供。AT89C51的ALE信号的频率是晶振频率的 1/6。AT89C51晶振频率是6MHz贝U ALE 信号频率为1MHz ALE的信号经D触发器二分频接到ADC0809勺CLOCKS入端,这样
24、就 可获得500KHz的A/D转换时钟脉冲。D触发器为上升沿动作,输出跟随输入变化.AT89C51 ALEnrLTLrLrLrLrLnnmnrL 由D触发器的特性得出CLOC端口的波形。5CLOCK:丄因为CLOCI是由WR和RD分别反相后,经两个74LS32或门控制的,所以当WR和RD其中一个有效时,CLOC端进入的都为高电平。也就是说,只有在数据转换过程中ADC0809 才有CLOCK寸钟脉冲输入,而在ADC0809启动和结束的过程中,都为高电平。VCC为+5V电源输入线。GND :地线AT89C51 ALE _rLrLrLrLrLrLrLrLrLrLrLTLrLrLrLrLrLrLrLr
25、LEOCD0-D7图2.4START1 1亠3ALE1/WR/RDCLOCK ICBA乂乂SARXXXXXXOE2.2晶振电路和复位电路(1)晶振电路AT89C51芯片内部有高增益反相放大器用于构成振荡器。反相放大器的输入端为 XTAL1,输出端为XTAL2,在其两端跨接6MHz的石英晶体和30pF的两个电容构成稳 定的自激振荡器,这样就提供了振荡所必需的正反馈和相移条件。两个电容对振荡频率 有微调作用。(2)复位电路使用频率为6MHz的晶振,复位电路信号持续的时间应超过 4us才能完成复位操作。 AT89C51的复位电路是用外部电路来执行的,在 CLOCKS作时,只要在RESETH脚上接 上
26、10ms以上的高电平,AT89C51执行状态复位。2.3 AT89C51的数据传输2.3.1 AT89C51 的串行接口(1)串行通讯方式在数据传输过程中,本设计使用异步串行通信的方式。采用串行通信工作方式1传输数据。在异步通讯中,收端和发端的 AT89C51之间必须有两项规定,即字符格式和波特 率。字符格式的规定是双方能够在对同一种 0和1的字符串理解成同一种意义。波特率 即数据传送的速率,其定义是每秒钟传送的二进制数的个数。要求数据传送的速率是60 字符/s,而每个字符如上述规定包含10数位,则传送波特率为600。因为波特率越高, 要求传输通道的频带越宽,一般异步通信的波特率在50b/s-
27、9600b/s之间,为保证传输的 可靠性,采用600b/s。由于异步通信双方各用自己的时钟源,要保证捕捉到的信号正确,选择时钟频率比波特率高很多倍,不然频率稍有偏差便会产生接收错误。为节省资源,接口通过一根传输线将数据发送出去,所以本设计采用串行通信通过 串行接口实现。根据信息的传送方向,采用半双工传送数据,因为要求A机向B机发送完数据后,B机再向A机发送一个确认信息,即信息能双向传送但不能同时双向传送。(2)串行接口结构和控制命令串行接口结构为:串行口主要由发送数据缓冲器,发送控制器,输出控制门,接收 数据缓冲器,接收控制器,输入移位寄存器等组成。AT89C51有两个物理上独立的接收, 串行
28、口缓冲寄存器SBUF它们占用同一地址99H,收发时不会出现冲突,因为它们两个, 一个只能被CPU读出数据,一个只能被CPU写入数据.串行口的两个特殊功能寄存器 SCON PCON. SCO用于定义串行口的工作方式及实 施接收和发送控制。SCON勺格式如下:D7 D6 D5 D4 D3 D2 D1 DOSM0SM1SM2RENTB8RB8TIRI使用工作方式1,SM0=0,SM1=。点对点的通信 SM2=0允许接收控制位 REN=1其它位为0,所以SCON=50HPCON勺格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMOD-GF1GF0PDIDLPCON勺最高位SMO是串行接口波特
29、率系数控制位,不用波特率加倍。PCON=00HMOD=0(3) 定时器设置串行口波特率发生器的定时,选择模式 2,因为它是自动重装载的8位定时器和计 数器,这种工作模式可以省去软件中重装常数的语句,并可产生相当精确的定时时间。 计算定时器计数初值XX=256- fosc/ 波特率 *12* (32/2 )将已知数据 fosc=6* 106Hz,波特率=600b/s 带入,得 X=229.958=230=E6H.赋计数初值TH1=TL1=0E6H(4) 方式1工作原理串行通讯的方式1:它用一个起始位表示字符的开始,用停止位表示字符的结束。 其每帧的格式为: 在一帧格式中,先是一个起始位 0,然后
30、是8个数据位,规定低位在 前,高位在后,最后是停止位1,共十位。用这种格式表示字符,则字符可以一个接一 个地传送。在接收时,停止位进入 SCON的RB8。方式1发送时,数据从引脚TXD端输出。当执行数据写入发送缓冲器 SBUF的命 令时,就启动了发送器开始发送。发送时的定时信号,也就是发送移位时钟(TX时钟), 是由定时器T1送来的溢出信号经过32分频(SMOD=0)而得到的,TX时钟就是发送 波特率。发送开始的同时,SEND变为有效,将起始位向TXD输出,产生一个移位脉 冲,并由TXD输出一个数据位;8位数据位全部发送完后,置位T1,并申请中断置TXD 为1作为停止位,再经过一个时钟周期,
31、SEND失效。方式1接收时,数据从引脚RXD端输入。接收是在SCON寄存器中REN位置1的前 提下,并检测到起始位(RXD上检测1 0)而开始的。接收时由定时器 T1的溢出信3 号经过32分频(SMOD=0)而得到的。当一帧数据接收完毕后,必须同时满足两个条 件:1.RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中数据 已被取走。由软件使RI=0以便提供“接收SBUF已空”的信息。2.SM2=0或收到的停 止位为1 (进入RB8),则将接收到的数据装入串行口的 SBUF和RB8,并置位RI,如 果不满足,接收到的数据不能装入 SBUF,这意味该帧信息将会丢失。tx
32、时钟_n_rL_rLTLLri_rt_rL_rLri_rr写SBUFP14 |/SEND|TXD| *0 *1 XD)D3 *4 XD5 XD6 *7 兴TI|rx 时钟 口 nriririririririri 口 口P14 |RXD| XdO Xd1 Xd2 Xd3)D6 (D7 XRI |图2.4 方式1收发时序图2.3.2 MAX485 芯片(1)MAX485 简介MAX48芯片是MAXIM公司生产的差分平衡型收发器芯片,包含一个驱动器和一个接收器。MAX485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号 A、B两路输出,经传输后在接收端将差
33、分信号还原成TTL电平信号。两条传输线使用的是双绞线,又是差分传输,因此有极强的抗共模干扰 的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果 以10Kbps速率传输数据时传输距离可达 12m,而用100Kbps时传输距离可达1.2km。 如果降低波特率,传输距离还可进一步提高。可用高达2.5Mbit/s的传输速率进行发送和接收。MAX485是半双工收发器,它有12K标准输入阻抗。本设计让AT89C51由P1.4来控制MAX485的收发状态(2)MAX485管脚功能U3VCCROADIBDEGND/REMAX485图2.5 MAX485管脚86751432RO:接收器
34、输出端,当A比B高200mv是发送信号为高电平,反之为低电平。/RE:接收器输出使能端。/RE为低时RO有效,RE为高时RO为高阻状态。DE:驱动器输出使能端。作发送用,若 DE为高,驱动器输出A和B有效。若DE为 低,A和B为高阻状态。当RE为低。器件作为线接收器用,若 DE为低,它们为高阻。 若驱动器输出有效,器件作为线驱动用。DI :驱动器输入端。DI为低,将使输出A为低,输出B为高,若DI为高将使输出A为高,B为低A :同相接收器和同相驱动器输出 B :反相接收器和反相驱动器输出VCC :电源正极,接+5VGND :接地2345表2.1 MAX485的收发功能发送接收输入输出输入输出/
35、REDEDIBA/REDEA-BROX110100+0.2V1X101000v+0.2V000X高阻高阻00输入开始110X高阻高阻10X高阻(3)原理图中MAX48刑AT89C51的硬件连接如图:JP1AT98C51数据传输系统采用了异步串行通信程序设计的方法。本设计中AT89C51的P1.4端接MAX485勺/RE和DE端,由软件编程置位P1.4来控制MAX485是什么时候接收数据或 者什么时候发送数据。由RXD和TXD端向MAX485发送和接收数据。3数据接收端硬件8155芯片作为AT89C5併行扩展I/O 口,控制5位共阴极LED动态显示接口电路和 4*2的矩阵键盘电路。LED用来显示
36、8路模拟信号的数字量,采用动态显示软件译码方 式。当人想立刻观察哪路信号时就按键盘中U1-U4, A1-A4功能键,键盘采用逐列扫描查询工作方式。23AT89C51中的数据和地址通过 P0 口转到8155的AD0-AD7口。当没有键按下时,5 个LED数码显示器不断地依次显示8路模拟电源转换来的数据,其中前两位显示哪路的 电压或电流信号,后 3位显示模拟量转化的数字量。当有键按下时,8155的PC0-PC3口读入键盘中被按键的键值,将按键值送入 AT89C5呐存中,AT89C51根据其值找到按 键要显示的数据,并将要显示的数据和地址送回8155芯片的PA和PB 口驱动显示。这样就完成了人机对话
37、。3.1 8155芯片结构和与AT89C51的硬件连接U4U2图3.18155 与AT89C51连接电路Rd200(1)AD0-AD7 AD0-AD7为地址/数据总线,与 AT89C51的P0 口相接,用于分时传送地 址/数据信息。(2)I/O总线:PA7-PA0为通用I/O线,用于传送A 口上的外设数据。PA0-PA4经过5个7406反相驱动器控制LED数码管的位选信号。PA6-PA7作为键 盘的列线输出端。PA5用于驱动发光二极管。PA口都是数据和地址输出端口,所以8155 命令字中D0的状态为1。PB7-PB0为通用I/O线,用于传送B 口上的外设数据。8个端口经过8个7407同 相驱动
38、器控制LED数码管的段选信号。PB作为数据输出端口,所以8155命令字中D1 的状态为1。PC口为I/O数据/控制线,共有6条,在通用I/O方式下,用作传送I/O数据;在 选通I/O方式下,用作传送命令/状态信息。让PC0-PC3乍为键盘的行线输入端,读入 键盘中数据,工作在通用方式下。所以 8155命令字中D2, D3的状态为0。(3)控制总线:1. RESET: 8155复位输入线,在 RESETS上输入一个大于 600ns宽的正脉冲时,8155 立即处于复位状态。与 AT89C51 的 RESET!接。外设按键复位。2. CE和IO : CE为8155的片选输入线,若 CE=0,贝U C
39、PU选中8155工作;否则8155 不工作。CE经7405反相器与AT89C5啲P2.7相连。IO为I/O端口或RAM勺选通输入 线,若IO=0,贝U CPU选中8155的RAM工作;若IO=1,则CPU选中8155片内某一寄存 器工作。本设计要求IO=1o IO与P2.6相接。RD和WR: RD是8155的读命令输入线, WR为写命令线。AT89C51的 WR,RD 分别 接 8155 的 WR,RD。3. ALE:为允许地址输入线,高电平有效。若ALE=1 8155的AD7-AD(上地址锁存到“地 址锁存器”;否则,8155的地址锁存器处于封锁状态。8155的ALE与 AT89C51的 A
40、LE相 连。(4)电源线:VCC为+5V电源输入线,VSS为接地线(0V)3.2 AT89C51对81551/0 口的控制命令8155的A, B, C三个端口的数据传送是由命令字和状态字控制的。由于 P2.7作片选/CE, P2.6接I0端,这样确定8155的地址为(1)8155端口地址表/CEIOA7A6A5A4A3A2A1A08155的命令/状态寄存器、PA 口、PB口、PC口的地址分别为 7FF0H 7FF1H 7FF2H7FF3H(2)8155芯片的控制字:D7 D6 D5 D4 D3 D2 D1 D0TM2TM1IEBIEAPC2PC1PBPA要求PAD, PB口为基本输出方式,PA
41、=PB=1 PC口为基本输入方式 PC1=PC2=0禁止PA口 PB 口中断,IEA=IEB=0。不影响定时器/计数器工作,TM仁TM2=)所以控制字为03HoU1A 7406U212731578T9-AD。AD1AD2AD3AD4AD5AD6AD7PA。PA1PA2PA3PA4PA5PA6PA72122232425262728v33(R912U1B74(6333(R11dabcdefgdpabcdefgdpab c d ef g dp1U1U15U19DPY dpN bc DPY dpR1333(港dpDPY ab c d ef g dpc DPY dpe:cdpDPY a b c de f
42、 g dpR1(33(CE RD WR IO/M ALEPBCrPB1PB2PB3PB4PB5PB6PB72930313233343536TMROUTTMRINRESET815574(67406gR1233(g由PC(PC-3738391I5 -U1A740712BU2A1U1F13U1U15U1U2B3U1ER5 33(R6 33(R8 33(R4 33(R2 33(R1 33(74(774(774(774%74%74(7R3 33(R7 33(图3.2 LED显示电路3.3七段LED数码管硬件连接与工作原理LED的动态显示应采用软件的扫描显示方式。8155芯片与7段LED数码管构成显示电路
43、。使用阴极连在一起的共阴极数码管。驱动LED显示的电流通常较小,为了保护各段LED不被损坏,在74(6反相驱动器和74(7同相驱动器的回路中,接上 5个33( 欧姆限流电阻。一位显示器由8个发光二极管组成,当在某段发光二极管上施加一定的 正向电压时,该段笔划则亮;不加电压则暗。Title要实现的是动态扫描方式。在某一时刻,只让某一位的位选线处于选通状态,而其Size NumberRevisi on它各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的字型码。依次Date: 19-Ju n-2005Sheet ofFile:毕业计复件)x.ddbDraw n By:每位循环下去就可以使
44、各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的而且同一时刻,只有一位显示其它各位熄灭,但由于人眼有视觉暂留现象,时间为0.1s, 只要每位显示间隔不超过 20ms,而且段选码、位选码每送入一次后应延时1ms,那么就可造成多位同时亮的假象,达到显示的目的。LED不同位显示的时间间隔通过执行延时语句完成,每次驱动完 5位LED显示都要 延时20ms如频率太低,LED将出现闪烁现象。如频率太高,由于每个 LED点亮的时 间太短,LED的亮度太低,肉眼无法看清,所以对5位LED显示器扫描显示频率为50Hz, 程序中调用延时子程序使显示一位保持 2ms时间,显示完所有5位后,只需10ms815
45、5芯片的B 口作为输出段选码,输出相应位的显示数据的段码使某一位显示出欲 显示的字符,PB0-PB7通过8个7407同相器与LED数码管的a-g和dp引脚相连,中 间接上330欧姆的限流电阻R1-R8。段的驱动能力是由显示的亮度决定的通过发光二极 管的电流大,其亮度也越高,电流以一定脉冲方式出现,其峰值电流不能真实地反映二 极管的发光亮度而必须以与脉冲占空比有关的平均值电流考虑。8155芯片的A 口作为输出位选码,要显示 5位数,所以占用了位选码输出口的 5 个线,PA0-PA4通过5个7406反相驱动器与LED数码管的显示器的位驱动端相连。 反相驱动器7406芯片,可以提供足够的驱动电流。当
46、选通某一位LED时,相应的地址线(74LS06输出端)输出的是低电平,其它位由于接高电平而不能被点亮,依次的改变A口输出的高电平位,达到循环选择每位的目的。位驱动的极端的情况是位中各段均点亮, 则位的驱动电流为各段驱动电流之和,此电流为峰值电流。3.4键盘的硬件连接与工作原理PA7PA6PC0U1 1A1 5R1 4VC CPC1U2 2A2 6O 0PC2PC33 30R1 53 30U3 3R1 63 30U4 4A4 8R1 73 30图3.3 键盘电路设置了 8 个功能键“ U1, U2, U3, U4” 和“ I1 ,12,I3,I4 ”。PA6和 PA7是列扫描 控制端,PC0-P
47、C3是行扫描控制端。在键盘扫描程序中,按下功能键后,程序扫描找到 键号后,根据键号找到要显示的数据和地址,并转到显示子程序。按钮可以在人手按下的短时间内送出一个改变了的低电平,待手松开后则恢复为原来的高电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动。实际效果好像是 反复按了多次,这种情况人眼不易看清,计算机却能辨识。于是出错的输入信号将导致 完全错误,针对这种现象本设计采用软件延时的方法来消抖。抖动时间的长短有按键的 机械性决定,一般为5ms-10ms.通过检测输入线PC 口的电平状态,可以很容易地判断哪个按键被按了。本设计用 查询方式的独立式按键工作电路,各按键开关均采用了上拉电
48、阻,为的是保证在按键断 开时,各I/O 口线有确定的高电平。按键设置在行列线交点上,行列线分别连接到按键开关的两端。行线通过4个330欧姆上拉电阻接到+5V电源上,平时无按键动作时行线处于高电平状态,而当有按键按 下时行线电平状态将由与此行线相连的列线决定。如果列线电平为低,则行线电平为低。如果列线电平为高,则行线电平为高。这是判断矩阵键盘按键是否被按下的关键所在。由于矩阵键盘中行列为键共用,各按键均影响该键所在行和列的电平,因此各按键 彼此将相互发生影响。程序中采用的方法是:第一列和第二列,其中一个为低电平另一 个为高电平,如果为低电平的某列上没有键被按下,那么它的行线依然为高电平,如果有键
49、按下,则键所在行的电平转换到键所在列的低电平。3.5闪烁部分的连接与工作原理由于规定输入的模拟电压在0-5V,如果有一路电压为0,即显示数据为0,说明这 路设备要修理,所以在收端8155的PA5上接一个发光二极管,让它不断的闪烁,提醒 工作人员,现在设备有问题出现。DillI200IFLED图3.4显示部分电路当PA5为高电平,发光二极管与电阻构成回路,PA5提供的电压为3.3V大于二极管开启电压,这时发光二极管就亮。当 PA5为低电平,没有提供的电源,发光二极管不 亮。用程序控制PA5一会高电平,一会低电平,这样就达到发光二极管不断闪烁的目的。4.1发端软件执行过程发送数据丄采样进行A/D转
50、换丁串行口初始化发送数据图4.1发端主程序4软件执行过程发端软件主要执行的功能是:不断地启动 ADC08095片工作,并将转换得到的数字量送到串行 接口端。利用MAX485芯片远距离发送出去。这样就 可以不断刷新数据。4.1.1 AT89C51和ADC0809F程序工作过程启动A/D转换延时等待存入数据选下一通道图4.2 A/D转换子程序由于低三位地址线加到 ADC0809的ADDA,ADDB,ADDC端,所以ADC0809的通道IN0-IN7地址为78H-7FH。(1)启动ADC080啲工作过程是:主程序中置P2.7 口 为低电平。在子程序中,首先置 WR有效,让START端口 有效。然后A
51、T89C51送通道号地址,执行ad_adr=&IN0命 令(ad_adr为指向通道的指针变量),由74LS373锁存通 道地址,经ADDC ADDB ADDA端译码后,选择第一路模 拟量进行A/D转换。再执行*ad_adr=0指令,置外部总中 断EA为1,使中断0有效。这样就启动了 A/D转换。(2)数据转换过程:当ADC080啲STAR端为高电平时, A/D开始转换。控制逻辑用来控制逐位逼近寄存器从高位 到低位逐位取“1”,然后将此数字量送A/D转换输出一个 模拟电压Vs, Vs与输入模拟量Vx在比较器中进行比较,当VsVx时,该位Di=0,若Vs Vx时,该位Di=1。因此从D7到DO逐位
52、逼近并比较8次。逐位逼近寄存器中数字量,即为与模拟量Vx所对应的数字量。在数据转换过程中,程序置WR和RD无效,使ALE端经两个74IS32控制,提供500Hz 的时钟脉冲给ADC0809勺CLOCKS。由于逐次逼近需要一定的时间,大约为10us,所以, 执行i=i ;i=i ;指令,程序延时足够的时间等待转换完成,在此期间内,电源产生的模 拟电压信号保持不变,EOC端为低电平,INT0为高电平。(3) A/D转换完毕:数字量送入输出锁存器,同时发出转换结束信号。EOC端发出一正脉冲经7405反相后,向AT89C51的INT0 口申请中断。当ad_busy=0(ad_busy为指向 INT0端
53、口的变量)时,表示转换结束,程序置 WR无效,RD有效和P2.7为高电平,使 OE端有效,同时使CLOC端为高电平,打开输出锁存器三态门,8位数据便输入到AT89C51 的P0 口中。执行xi=*ad_adr 指令,数据存入 AT89C51的片内RAM的数组adi中。 ad_ad叶+ ;指向下一通道地址,重复上述过程。这样就采集完8路模拟信号。以上仅仅是某一时刻采集8路模拟信号的过程。AT89C51还要不断地重新启动ADC0809T作,再采集下一时刻的8路模拟信号,将数字量重新存入到收端 AT89C51的 内存里。这样工作人员看到的数据就是在不断的被刷新。4.1.2 74汉明码的编码信息元码字有4位,监督位码字有3位,而发送数据仅8位,所以编程时在最后一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年物流运输项目融资担保合同汇编
- 2025年度绿色能源项目融资居间合作协议范本
- 幼儿园健康教育教学计划
- 林业行业会计个人工作计划
- 财务信息化建设方案计划
- 学习成果与展示活动计划
- 前台工作中的情绪管理技巧计划
- 幼儿思维训练活动的开展计划
- 开展针对老年人的图书服务计划
- 2025年立方氮化硼晶体合作协议书
- 信访工作课件
- 物资盘点工作步骤与细则
- 安全生产的科技创新与成果转化应用
- 视频监控入门基础教程视频监控系统
- 国家基本药物临床应用指南1
- 过氧乙酸消毒浓度及方法
- 滑膜病变超声诊断课件整理
- 混凝土质量通病及防治方法
- 王洪图黄帝内经80课时讲稿
- 英语课堂游戏PPT-英语游戏4个PPT-(切西瓜-打地鼠-开火车-植物大战僵尸)
- 大学物理光学总结-大学物理光学知识点总结课件
评论
0/150
提交评论