数据采集及传输处理解读_第1页
数据采集及传输处理解读_第2页
数据采集及传输处理解读_第3页
数据采集及传输处理解读_第4页
数据采集及传输处理解读_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第I 页本科生毕业设计(论文)数据采集及传输处理摘要本文主要阐述了基于数字采集与传输处理系统的设计基本思想,包括硬件实现,应 用软件实现以及驱动程序设计,同时也介绍了基于 MAX485数据传输系统。硬件的主要组成部分为 AT89C51 ,ADC0809 ,MAX485 ,8155 ,LED 显示。 用软件编程控制硬件实现的过程:发送方的设备把模拟信息转换为数字信息后,发 送到接收方的设备上。接收设备利用 LED来显示数据。使用的核心芯片是 AT89C51 ,这个芯片可以很好地满足我们的要求。数据采集系 统用来采集模拟数据,并将模拟数据存放于存储器中作以后发送用。 A/D 转换器将模拟 形式转换

2、为数字量表示。使用 ADC0809 作为 A/D 转换器,它可以把连续的模拟信号转 变成数字形式。选用 MAX485连接两台机器进行传递信息 . 软件编程的语言使用的是 C 语言,它的运行的环境是 keil 软件。关键词 : 单片机 AT89C51,ADC0809,MAX485,LE显D示 .第 II 页本科生毕业设计(论文)AbstractThis article introduces the base method according to data collection and transmitting process system, including the hardware des

3、ign, the application software design and the design of the program design, also introduces the data transmitting system according to the MAX485.The necessary hardware consists of AT89C5,1ADC0809,MAX485 ,8155,LED display.The process of the programme of software controlling hardware operation as follo

4、w: The device on the transmitting computer converts the analog signals to digital format and this digital format is transmitted to the receiving computer. The device on the receiving computer uses the information to driver LED display.The key chip we use is AT89C51. This chip can meet our need perfe

5、ctly. Data acquisition system is used to acquire analog data and store it on storage devices for later transmitting. A/D converter converts an analog format into an equivalent digital representation. We use the ADC0809 as A/D converter, which is used to convert continuous analog signals into digital

6、 format. We choose the MAX485 as the device, which is used to connect two computers for transmitting information. The programme of software language is C language, which of operation is keil software.Key words: MCS-AT89C51, A/D converter, MAX485, LED display.第I 页本科生毕业设计(论文)目录 TOC o 1-5 h z 摘要 . I HY

7、PERLINK l bookmark4 o Current Document Abstract . II绪论 . 1 HYPERLINK l bookmark10 o Current Document 数据发送端硬件 . 4ADC0809与AT89C51的硬件连接 . 4ADC0809 简介 4启动端口的连接与工作原理 . 5输出端口的连接与工作原理 . 7晶振电路和复位电路 . 9AT89C51的数据传输 . 9AT89C51 的串行接口 9MAX485 芯片 11 HYPERLINK l bookmark12 o Current Document 数据接收端硬件 . 148155 芯片结构

8、和与 AT89C51的硬件连接 . 14AT89C51 对 8155I/O 口的控制命令 . 16七段 LED数码管硬件连接与工作原理 17键盘的硬件连接与工作原理 . 19闪烁部分的连接与工作原理 . 20 HYPERLINK l bookmark14 o Current Document 软件执行过程 21发端软件执行过程 . 21AT89C51 和 ADC0809子程序工作过程 2174 汉明码的编码 22收发数据的子程序工作过程 23收端软件执行过程 24收端主程序 24按键子程序 26显示子程序 27结论 . 28致谢 . 错误!未定义书签。参考文献 . 29 HYPERLINK l

9、 bookmark20 o Current Document 附录 A 30 HYPERLINK l bookmark22 o Current Document 附录 B 37第1 页本科生毕业设计(论文)绪论目前 大中型企业智能化管理迅速发展。 如果能在现场采集到的数据和控制器之间建 立起通信,就可实现在控制室中利用计算机来监督现场设备的运行情况,这样不仅可以 大大降低劳动强度,有效地提高工作效率,而且可以快速地发现错误信息,并及时地赶 到现场进行处理。根据以上考虑,本人设计了一种基于 AT89C51单片机的数字采集与传输处理系统。 该装置主要应用在控制电压和电流的设备上,它可以显示该设备是

10、否正常运行,也可以 根据人的需要立即显示一路信号。本人在设计数据采集系统过程中,考虑到输入的模拟电压仅在0V 到 5V之间,输入量的范围很小,为了精确地采集到数据,本设计中采用了 ADC0809芯片。它的分辨率为 8 位,即将一路信号 A/D 转换为 8 位二进制数。这样在控制室工作的人员就可以准确地 把握现场设备上电压或电流的变化情况。为了提高工作人员的效率,让他们能及时,快速地观察到错误信息,在设计电路工 作流程中,执行程序使发端的 AT89C51不断地启动 ADC0809工作,让 ADC0809不停地转 换新输入的模拟信号,并刷新收端 AT89C51内存里的要显示数据。如果工作人员观察到

11、 的数据工作在允许范围之内, 说明现场一切设备运行正常, 如果现场哪路设备不工作了, 在控制室里的工作人员就会发现发光二极管不断的闪烁, 同时 LED数码管会显示哪路出 现问题,这时工作人员就可以立刻赶到现场,查明事故原因。在设计数据传输系统过程中,运用了 74 汉明码的编码和译码原理,对采集到的数 据进行处理。由于 74 汉明码具有纠错和检错能力强,编码效率高码长短,编码规律简 单等优点,而且也是在现实系统中经常使用的一种检错码,所以利用 74 汉明码编码后 发送的数据具有很好的纠错能力,这样就极大地提高了数据传输的可靠性。本系统设计的硬件设备由发端( A机)和收端( B机)两部分组成。 A

12、机主要功能是 将采集到的数据进行 A/D 转换,然后把数据存于发端的 AT89C51中,利用 MAX485来传 输数据。B 机的主要功能是通过 MAX485接收数据, 将数据存于收端 AT89C51中,然后由 AT89C51来控制 8155显示数据。在显示部分电路中由 5个七段 LED数码管和 4*2 矩阵键 盘组成,5 个七段 LED数码管的前两位用于显示是哪路的模拟电压信号还是模拟电流信第2 页本科生毕业设计(论文)号,后三位用于显示数字量,精确到小数点后两位。 8 个键盘代表了 8 路模拟信号,其 中第一列代表模拟电压信号,第二列代表模拟电流信号。发端( A机)基本框图为:收端( B 机

13、)基本框图为:在理论上系统主要由数据采集、数据传输和数据处理三大功能模块组成。下面对三 大功能模块简单进行描述:第一部分:数据采集部分由模拟电压、模拟电流、运算放大器( LM324 )、A/D 转换 器( ADC0809 芯片)、单片机 AT89C51 组成。由于模拟电源信号在传输过程中容易受到外界噪声的干扰,为了保证数据传输的可 靠性,将模拟信号转化为数字信号进行传送。这种转换的主要使用的芯片是ADC0809。所用电源,可产生 0V-5V 可调的模拟电压信号和 10mA-50mA 的可调模拟电流信号。数 据采集系统的软件设计采用了顺序程序设计的方法,包括主程序、启动 A/D 转换子程序 和串

14、行口发送子程序等。第二部分:数据传输部分由发端和收端各自的 MAX485 和 AT89C51 组成。AT89C51 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。除具有 4 个 8 位并行口外,还具有一个全 /半双工串行通信接口。 AT89C51 通过使用串行接口的引脚 RXD (P3.0 串行数据接收端)和引脚 TXD (P3.0串行数据发送端)与外界进行通信, 它可以实现需要的 AT89C51 单片机系统之间点对点的单机通信。 MAX485 是一种差分 平衡型低功率收发器芯片。 芯片中包含有 1 个驱动器和 1 个接收器,采用单+5V 电源供 电,可用于 TTL 协议(即通用于各

15、种 CPU 的通信协议)与 485 协议间的转换,由于它 是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法,这样第3 页本科生毕业设计(论文)就具有很强和很高的抗共模干扰能力和接收灵敏度,适合在比较恶劣的环境下工作。MAX485 的驱动器摆率不受限制,可以实现最高 2.5Mbps的传输速率 ;在转送数据速度 达 100KB/S 时,通信的距离可 1200M。在 MAX485 收发端 A 和 B 之间接一个 120 欧的 匹配电阻,使电流信号转变为相差 200mV 的电压信号。所以 MAX485 作为设计中最合 适的数据传输器件。第三部分:数据处理部分主要由单片机 AT89

16、C51、8155 可编程 I/O 接口、功能键 和七段 LED 显示器等部分组成。这部分将在第三章详细讲述。设计时注意了几个问题: (1)设计电路和片选时,要考虑芯片和电路的驱动能力, 否则会 造成工作不正常或失败。如本设计中,由于 LED 通常需要几 几十毫安的驱动电流才能 发光,为了使其正常显示数据,在 LED 的段数据线上加入了 7407同相驱动器。 (2)模拟 电压和模拟电流电路中电阻不宜过大,且应采用精密电阻,以满足系统精度的要求。C51语言程序的运行环境为 keil软件,当程序烧到 AT89C51里时,keil可以把 C51 语言直接生成汇编语言, 以 01 代码的形式存在 AT8

17、9C51 的内存里。 由于 C 语言的可读 性强,不像汇编语言那样繁琐,所以本人采用 C 语言编程。单片机芯片应用广泛, 具有很多特点,如片内资源丰富, 产品的体积小, 可靠性高, 引脚少,功能全,工作电压低,功耗小等。本设计是一个小型的控制系统,可以应用在 不同的场合来监督设备是否正常工作。但由于本设计对器件的灵敏度、精度和实时性没 有很高的标准,在现实中不一定适用,还须根据不同的场合加以改进。第4 页本科生毕业设计(论文)数据发送端硬件本章主要讲述了发端的 AT89C51控制 ADC0809和 MAX485的工作原理, 和它 们之间 的硬件连接。2.1 ADC0809 与 AT89C51的

18、硬件连接 2.1.1 ADC0809 简介本人使用的 ADC0809芯片是逐次逼近型的 A/D 转换器,分辨率为 8位,可以实现对 8 路模拟信号分时的进行 A/D转换,每一通道的转换大约需时 10us。芯片内带有通道地 址译码锁存器,采用脉冲启动方式。应用单一 +5 v 电源,其模拟量输入电压的范围为 0v-5v, 对应的数字量输出为 00H-FFH, 三态锁存输出,功耗为 15MW。ADC0809是 A/D 转 换的主要器件。本设计采用中断方式传送数据给 AT89C51。START CLOCK图 2.1 ADC0809 逻辑框图本科生毕业设计(论文)第5 页U3111OCC10131417

19、181D2D3D4D5D6D7D8D5516197Q8Q1Q2Q2223242574LS373U1 1 2 3 4 5 6INT1INT01514VCC 3119181716P10P11P12P13P14P15P16P17T1T0EA/VPX1X2RESETRDWRAT89C51/RD/WRP00P01P02P03P04P05P06P073938373635343332171415818192021CLOCKSTARTENABLEref(+ref(-ALEIN-7ADD-CADD-BIN-6ADD-AIN-5EOCIN-4lsb2-82-7IN-32-62-5IN-22-42-3IN-12-2

20、msb2-1IN-02128ADC0809U21253P2P2P2P25 27P26 2278P2728RXDTXDALE/PSEN1011P 3029U6A74ALS05U4A21374ALS02546U4B74ALS02图 2.1 ADC0809 与 AT89C51连接原理图2.1.2 启动端口的连接与工作原理271)START:为“启动脉冲”输入线,该线上的正脉冲是由 AT89C51的 P2.7 和/WR来提第6 页本科生毕业设计(论文)供的,其宽度在 100us-200us 之间。当执行指令使 P2.7=0 和WR=0 时,输入一个正脉 冲,便立即启动 ADC0809工作, 10us后

21、 EOC变为低电平。(2)ALE:地址锁存允许输入线, 高电平有效。当 ALE线为高电平时, ADDA,ADD和B ADDC 三2条地址线上的地址信号得以锁存, 经译3 码后读入一路模拟信号。 由 P2.7 和 W4 R控制启 动转换信号 ALE端,使之变为高电平,执行的指令和启动 START端的指令一样。( 3)OE:输出允许信号,高电平有效。 OE由低电平变高电平,打开三态输出锁存器, 将转换后的结果输出到数字总线 D0-D7上。由 P2.7 和 RD 联合控制使 OE线变为高电平, 以提取 A/D 转换后的数据量。(4)IN0-IN7 :IN0-IN7 为 8路模拟电压输入线,前 4位用

22、于输入模拟电压,范围是 0V-5V。 后 4 位用于输入被转换的模拟电流,范围是 10mA-50m。A由于 ADC0809的输入端只能允许模拟电压信号输入, 所以必须将模拟电流信号转换 为模拟电压信号,因此模拟电流信号先串联 1 的电阻,取电阻上的电压。又因为模拟 电流信号为毫安级,而 ADC0809芯片要求输入电压为 0V-5V 之间,所以将取出的电压信 号经过放大倍数为 10 的运算放大器两级放大后进入 ADC0809的模拟输入通道 IN4-IN0 进行 A/D 转换。具体接法如下所示:图 2.2 两级运放原理图第7 页本科生毕业设计(论文)输出端口的连接与工作原理(1)通道选择ADDA,

23、ADD和B ADDC为通道地址输入线, 用于选择 IN0-IN7 上的哪一路模拟电压送给 比较器进行 A/D转换。ADDC,ADDB,ADDA的 8 种组合状态 000-111 对应了 8 个通道的 选择。给 ad_adr (ad_adr 为指向通道的指针变量)赋值,锁存模拟通道地址,就选通 了一路信号。当读取下一路模拟地址时,执行 ad_adr+ ; 进入循环,便启动新输入通道 的 A/D 转换。(2)采样进入采样程序后 8 个通道依次被选通一次,即采样次数为 8:转换所得的数字量按 序存于片内 AT89C51RAM中的 adi 数组里。(3)数字量的转输D7-D0:为数字量输出线, D7

24、为最高位, D0为最低位。是三态输出锁存器的输出端。 转换后的数据从 D7-D0输入到 AT89C51的 P0 口。EOC:为转换结束输出线,指示转换结束和数据有效的信号,它是一个负方波,EOC由高电平到低电平跳变表示 A/D 转换开始,转换过程中维持低电平, EOC 由低到高跳 变表示 A/D 转换结束。EOC 线作为 CPU的中断请求输入线。 经 7405 反相后接到 AT89C51 的INT 0口。当 A/D转换结束时, EOC端发出一正脉冲, 申请中断,即 EOC=,1 INT0 =0, 向 CPU申请中断。(4)ADC0809的其它端口工作原理VREF(+),VREF(- ):参考电

25、压输入线,用于给电阻阶梯网络提供标准电压。 VREF (+)和 VCC(+5V)相连, VREF(- )与地 0V相连。输入的模拟量是从 0 开始,最大值是 +5V满量程。当输入最小为 0V,输出为 00H,当输入最大为 5V,输出为 FFH。CLOCK:因芯片的时钟频率最高只能工作在 640KHz,所以本人在设计中为 ADC0809提 供逐次比较所需时钟脉冲序列为 500KHz。ADC0809所需时钟信号由 AT89C51的 ALE端提 供。 AT89C51的 ALE信号的频率是晶振频率的 1/6 。AT89C51晶振频率是 6MHz,则 ALE 信号频率为 1MHz,ALE的信号经 D触发

26、器二分频接到 ADC0809的 CLOCK输入端,这样就 可获得 500KHz的 A/D 转换时钟脉冲。D触发器为上升沿动作 , 输出跟随输入变化 .第8 页本科生毕业设计(论文)AT89C51 ALE:由 D 触发器的特性得出 CLOCK端口的波形。CLOCK:5因为 CLOCK是由WR和 RD分别反相后,经两个 74LS32或门控制的,所以当 WR和 RD图 2.4其中一个有效时,CLOCK端进入的都为高电平。 也就是说,只有在数据转换过程中 ADC0809 才有 CLOCK时钟脉冲输入,而在 ADC0809启动和结束的过程中,都为高电平。 VCC:为+5V电源输入线。 GND :地线AT

27、89C51 ALESTART123ALE/WR/RDCLOCKCBASAROEEOCD0-D7第9 页本科生毕业设计(论文)晶振电路和复位电路(1)晶振电路AT89C51 芯片内部有高增益反相放大器用于构成振荡器。反相放大器的输入端为 XTAL1 ,输出端为 XTAL2 ,在其两端跨接 6MHz 的石英晶体和 30pF的两个电容构成稳 定的自激振荡器,这样就提供了振荡所必需的正反馈和相移条件。两个电容对振荡频率 有微调作用。(2)复位电路使用频率为 6MHz的晶振,复位电路信号持续的时间应超过 4us 才能完成复位操作。 AT89C51的复位电路是 用外部电路来执行的,在 CLOCK工作时,只

28、要在 RESET引脚上接 上 10ms 以上的高电平, AT89C51执行状态复位。AT89C51 的数据传输2.3.1 AT89C51 的串行接口(1)串行通讯方式在数据传输过程中,本设计使用异步串行通信的方式。采用串行通信工作方式1 传输数据。在异步通讯中,收端和发端的 AT89C51 之间必须有两项规定,即字符格式和波特 率。字符格式的规定是双方能够在对同一种 0和 1的字符串理解成同一种意义。波特率 即数据传送的速率, 其定义是每秒钟传送的二进制数的个数。 要求数据传送的速率是 60 字符/s,而每个字符如上述规定包含 10 数位,则传送波特率为 600。因为波特率越高, 要求传输通道

29、的频带越宽, 一般异步通信的波特率在 50b/s-9600b/s之间,为保证传输的 可靠性,采用 600b/s。由于异步通信双方各用自己的时钟源, 要保证捕捉到的信号正确, 选择时钟频率比波特率高很多倍,不然频率稍有偏差便会产生接收错误。为节省资源,接口通过一根传输线将数据发送出去,所以本设计采用串行通信通过 串行接口实现。根据信息的传送方向,采用半双工传送数据,因为要求A 机向 B 机发送完数据后, B 机再向 A 机发送一个确认信息,即信息能双向传送但不能同时双向传送。(2)串行接口结构和控制命令第 10 页本科生毕业设计(论文)串行接口结构为:串行口主要由发送数据缓冲器,发送控制器,输出

30、控制门,接收 数据缓冲器, 接收控制器, 输入移位寄存器等组成。 AT89C51有两个物理上独立的接收, 串行口缓冲寄存器 SBUF,它们占用同一地址 99H,收发时不会出现冲突, 因为它们两个, 一个只能被 CPU 读出数据,一个只能被 CPU写入数据 .串行口的两个特殊功能寄存器 SCON,PCON. SCON用于定义串行口的工作方式及实 施接收和发送控制。 SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0SM1SM2RENTB8RB8TIRI使用工作方式 1,SM0=0,SM1=。1 点对点的通信 SM2=0。允许接收控制位 REN=。1 其 它位为 0,所以 S

31、CON=50。HPCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMOD-GF1GF0PDIDLPCON的最高位 SMOD是串行接口波特率系数控制位, 不用波特率加倍。PCON=00,HSMOD=。0(3)定时器设置串行口波特率发生器的定时,选择模式 2,因为它是自动重装载的 8 位定时器和计 数器,这种工作模式可以省去软件中重装常数的语句,并可产生相当精确的定时时间。 计算定时器计数初值 XX=256- fosc/ 波特率*12* ( 32/2 )将已知数据 fosc=6* 10 6 Hz,波特率 =600b/s 带入,得 X=229.958=230=E6H.赋计数初值 T

32、H1=TL1=0E6H。(4)方式 1 工作原理串行通讯的方式 1:它用一个起始位表示字符的开始,用停止位表示字符的结束。 其每帧的格式为: 在一帧格式中,先是一个起始位 0,然后是 8 个数据位,规定低位在 前,高位在后,最后是停止位 1,共十位。用这种格式表示字符,则字符可以一个接一 个地传送。在接收时,停止位进入 SCON 的 RB8。方式 1 发送时,数据从引脚 TXD 端输出。当执行数据写入发送缓冲器 SBUF 的命 令时,就启动了发送器开始发送。 发送时的定时信号, 也就是发送移位时钟 ( TX 时钟), 是由定时器 T1 送来的溢出信号经过 32 分频( SMOD=0)而得到的,

33、 TX 时钟就是发送第 11 页本科生毕业设计(论文)波特率。发送开始的同时, SEND 变为有效,将起始位向 TXD 输出,产生一个移位脉 冲,并由 TXD 输出一个数据位; 8 位数据位全部发送完后, 置位 T1,并申请中断置 TXD 为 1 作为停止位,再经过一个时钟周期, SEND 失效。方式 1 接收时,数据从引脚 RXD端输入。接收是在 SCON寄存器中 REN位置 1 的前 提下,并检测到起始位( RXD 上检测2 10)而开始的。接收时由定时器 T1 的溢出信3 号经过 32 分频( SMOD=0)而得到的。当一帧数据接收完毕后,必须同时满足两个条 件: 1.RI=0,即上一帧

34、数据接收完成时, RI=1 发出的中断请求已被响应, SBUF 中数据 已被取走。由软件使 RI=0 以便提供“接收 SBUF 已空”的信息。 2.SM2=0 或收到的停 止位为 1(进入 RB8),则将接收到的数据装入串行口的 SBUF和 RB8,并置位 RI,如 果不满足,接收到的数据不能装入 SBUF,这意味该帧信息将会丢失。TX 时钟写SBUFP14/SENDTXD D0 D1 D2 D3 D4 D5 D6 D7TIRX 时钟P14RXD D0 D1 D2 D3 D4 D5 D6 D7RI图 2.4 方式 1 收发时序图2.3.2 MAX485 芯片( 1)MAX485 简介MAX48

35、5芯片是 MAXIM公司生产的差分平衡型收发器芯片, 包含一个驱动器和一个接 收器。 MAX485 采用平衡发送和差分接收方式来实现通信:在发送端 TXD 将串行口的第 12 页本科生毕业设计(论文)TTL 电平信号转换成差分信号 A 、B 两路输出,经传输后在接收端将差分信号还原成 TTL 电平信号。两条传输线使用的是双绞线,又是差分传输,因此有极强的抗共模干扰 的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果 以 10Kbps 速率传输数据时传输距离可达 12m,而用 100Kbps 时传输距离可达 1.2km。 如果降低波特率,传输距离还可进一步提高。可用高达

36、 2.5Mbit/s 的传输速率进行发送 和接收。 MAX485是半双工收发器,它有 12K 标准输入阻抗。本设计让 AT89C51由 P1.4 来控制 MAX485的收发状态 ( 2)MAX485 管脚功能U3VCCROADIBDEGND/REMAX48586751432图 2.5 MAX485 管脚RO:接收器输出端,当 A比B 高 200mv是发送信号为高电平,反之为低电平。 /RE:接收器输出使能端。 /RE 为低时 RO 有效, RE为高时 RO 为高阻状态。 DE:驱动器输出使能端。作发送用,若 DE 为高,驱动器输出 A 和 B 有效。若 DE 为 低,A 和 B 为高阻状态。

37、当 RE为低。器件作为线接收器用,若 DE 为低,它们为高阻。 若驱动器输出有效,器件作为线驱动用。DI :驱动器输入端。 DI 为低,将使输出 A 为低,输出 B为高,若 DI 为高将使输出 A 为高, B 为低A :同相接收器和同相驱动器输出 B:反相接收器和反相驱动器输出 VCC :电源正极,接 +5V GND:接地第 13 页本科生毕业设计(论文)2 3 4 5 表 2.1 MAX485 的收发功能发送接收输入输出输入输出/REDEDIBA/REDEA-BROX110100+0.2V1X101000Vx时,该位 Di=0,若 VsVx 时,该位 Di=1。因此第 22 页本科生毕业设计

38、(论文)从 D7到 D0逐位逼近并比较 8 次。逐位逼近寄存器中数字量,即为与模拟量 Vx所对应 的数字量。在数据转换过程中,程序置WR和 RD无效,使ALE端经两个 74ls32 控制,提供500Hz 的时钟脉冲给 ADC0809的 CLOCK端。由于逐次逼近需要一定的时间, 大约为 10us,所以, 执行 i=i ;i=i ; 指令,程序延时足够的时间等待转换完成,在此期间内,电源产生的模 拟电压信号保持不变, EOC端为低电平, INT0 为高电平。(3)A/D 转换完毕:数字量送入输出锁存器,同时发出转换结束信号。 EOC端发出一正 脉冲经 7405反相后,向 AT89C51的 INT

39、0口申请中断。当 ad_busy=0(ad_busy 为指向 INT0 端口的变量 )时,表示转换结束,程序置 WR无效, RD有效和 P2.7 为高电平,使 OE端有效,同时使 CLOCK端为高电平,打开输出锁存器三态门, 8位数据便输入到 AT89C51 的 P0 口中。执行 xi=*ad_adr 指令,数据存入 AT89C51的片内 RAM的数组 adi 中。 ad_adr+ ; 指向下一通道地址,重复上述过程。这样就采集完 8 路模拟信号。以上仅仅是某一时刻采集 8 路模拟信号的过程。 AT89C51 还要不断地重新启动 ADC0809工作,再采集下一时刻的 8 路模拟信号,将数字量重

40、新存入到收端 AT89C51的 内存里。这样工作人员看到的数据就是在不断的被刷新。4.1.2 74 汉明码的编码信息元码字有 4 位,监督位码字有 3 位,而发送数据仅 8位,所以编程时在最后一 位加 1。采集到的 8 路数据,每一路用程序分前 4 位和后 4 位,然后作为信息元码发送。 到接收端,用程序把 2个 4位数据合在一起,作为一路信号数据。接收端用监督矩阵 H来检测接收码组 B 中的错误,程序执行 B和 H相乘得出伴随式 S。对 S编一个查寻表子程序, 找出错误的是哪一位。 由于 7,4 汉明码只能纠一位错误, 如果错误多于一位, 比如 2 位,只能检错,如果有一个则纠错, 否则收端

41、要求重发数据。第 23 页本科生毕业设计(论文)4.1.3 收发数据的子程序工作过程图 4.3 A 机发送程序图 4.4 B 机接收程序首先 A机向 B 机发送联络信号 oxaa,等待 B机的回应。当 B机准备好接收数据时,第 24 页本科生毕业设计(论文)A机把 8路数据信号依次发送出去, 并计算出 8 路所有信号的校验和, 最后发送出去。 B 机根据接收到的 8 路数据计算出自己的校验和,并且与接收到的校验和进行比较,若校 验和正确,则 B机向 A 机回发“数据发送正确 ox00”信号。若校验和有错,则 B机发送 出“数据发送不正确 oxff ”信号。 A 机接收到“不正确”应答信号后,重

42、新发送原数据, 直到发送正确。 A 机将该数据块发送完毕后停止发送。4.2 收端软件执行过程4.2.1 收端主程序图 4.5 收端主程序第 25 页本科生毕业设计(论文)首先通过收端的 MAX485接收数据, 存入到 AT89C51内部寄存器的数组 adi 中,等 待以后调用。然后转入键盘扫描子程序 kbscan 中,判断是否有按键。将求得的键值赋 给 key(key=kbscan) 判断 key 值是否为 0。如果为 0 说明没有键按下,执行 8 路循环显 示命令。如果 key 不为 0,则有键按下 key 的值作为人让 CPU显示的路数,即 adkey 就是存在 AT89C51中的地址,其

43、值就是人让 CPU显示的数据,然后根据 adkey 的地址 和数据调用显示子程序。While(1) 使 AT89C51不断的扫描键盘和驱动显示。If(key!=0) break; 如果有键按下,跳出 8 路循环程序,转去执行按键显示程序。在 8 路循环显示程序( for(i=0;i8;i+) )中,首先执行 x=adi*5/ 28 指令。因 为 adi数组中存入的 8位二进制 01代码是在 ADC0809 比较器里逐位逼近比较得到的结 果,而这个结果并不是模拟量对应的二进制数,所以这条指令就是把从ADC0809比较得到的二进制数转化为模拟量对应的十进制数。由于模拟量对应的十进制数作为一个整体存

44、在变量 x 中,而要求 3 个 LED分别显示 数 字 量 , 所 以 执 行 bdi0=(uchar)x*100%10 ; 命 令 取 出 小 数 点 后 第 二 位 , 执 行 bdi1=(uchar)x*100%100/10 ; 命令取小数点后第一位, bdi2=(uchar)x+ox01 ; 命令取 整数加小数点,要显示路数存于数组 bdi3 ,由于 ADC0809 的前四位输入的模拟电压 信号,所以当 i3,表示输入的模拟电流信号,执行 bdi4=10; 10 为共阴极七段 LED 显示字型 A 对应的编码。如果有键按下执行的取数命令和 8 路循环显示取数的命令过程是一样的。 不同的

45、是 键值 key 代替显示的路数 i 。每次调用完显示子程序都要延时 10 6 us(0.1s),这是由于人眼 的惰性决定的。本科生毕业设计(论文)第 26 页4.2.2 按键子程序图 4.6 按键子程序在按键 kbscan 程序中,根据上 述键盘扫描原理编程如下:先判断键盘上有无键按下, PA 口输出列线全 0 扫描字 ox3f ,执行 PA8155=ox3f;读 PC口行线状态, 若 PC3-PC0为全 1,则键盘无键按下; 若不全为 1 则有键按下。即执行 if (PC8155&oxff)!=oxff 。消除按键抖动的影响:若有键 按,程序延时 20us 去抖动,再执行 if (PC81

46、55&oxff)!=oxff 命令,判断 是否有键按(PC 口是否全为 1)。如 果仍有键按下状态,则认为确实有 一个键按下;如果去抖动后,判断 口状态全为 1,那么 kbscan 子程 序返回 0 值,表示无键按下。判别闭合键的键号: PA8155=ox7f;先让 PA7 为 0,PA6 为 1,扫描行状态 if (PC8155&oxff)!=oxff. 如果不全为 1 则有键按下执行(PC8155)+(PA8155)命令,PA,PC 值取反相加赋给 k。根据 k 的值到 kbch子程序中查表得到按键所按的是 1-8 中哪个数字 并返回给 kbscan.程序,赋值给 key。键号 key 通

47、过 8155 送入 AT98C51中找到该键号要4.2.3 显示子程序图 4.7 显示子程序第 27 页本科生毕业设计(论文)显示的数据后,程序转入 display 显示子程序中。如果 PC 口全为 1,则说明 PA7列上 无键按下。指向下一列 PA6,执行 PA8155=(PA81551)|ox80;命令。此列判别方法和 PA7 列一样。先宏定义置 8155 的命令字 PA,PB 输出, PC输入,即 COM8155=ox03, 在显示子程序中,选中最右边的 LED ( sel=ox01 ) , 送 段 码 PB8155=table*p,*p 为存入 AT89C51 bdi 中首地址的数据。

48、 table 数组中 tablei 为 i 数字量对应的字型编码。 送位选码 PA=sel,延时 1us 多亮一会, 然后 p+取下一位 LED要显示的数据。 sel=sel1 显示左移一位。如果 5 位 显示完成,返回主程序。第 28 页本科生毕业设计(论文)结论本次数据采集及传输处理的设计已经完成。本文着重讨论了数据采集及传输处理 系统的设计方法。使用了单片机 AT89C51,ADC0809 芯片, MAX485 芯片和 8155 芯片 来构成数据采集, 数据传输和数据显示部分的电路。 本文主要讨论硬件电路的设计方案, 在应用服务软件的设计上还是不成熟。本次设计由于对系统的实时行要求不高,

49、对显示部分的 LED 数码管只有 5 位,等 等缺点,在具体的应用中还会有一些变化。还有在通信数据量一定的情况下,采用较高 的波特率比较好,但高的波特率必定要降低传输距离,在实际应用中必须重新设定。第 29 页本科生毕业设计(论文)参考文献1 马忠梅,籍顺心,张凯,马岩。单片机的 C语言应用程序设计 M 。北京:北 京航空航天大学出版社, 2003, 220223。2 李朝青. 单片机原理及接口技术 M 。北京:北京航空航天大学出版社, 1999, 129138。胡汉才。单片机原理及其接口技术 M 。北京:清华大学出版社, 2003,257 264。张洪润,蓝清华 . 单片机应用技术教程 M.

50、 北京: 清华大学出版社 .1997 ,60 90。21 世纪网站, HYPERLINK /pub/xp.txt /pub/xp.txt, 2005-4-30/2005-6-3石方文。通信英语 M 。北京:邮电大学出版社, 1998,52-37。第 30 页本科生毕业设计(论文)附录 A(一) ADC08091. General DescriptionADC0809 data acquisition component is a monolithic CMOS device with an 8-bit analog-to-digital converter, 8-channel multipl

51、exer and microprocessor compatible control logic. The 8-bit A/D converter uses successive approximation as the conversion technique. The converter features a high impedance chopper stabilized comparator, a 256R voltage divider with analog switch tree and a successive approximation register. The 8-ch

52、annel multiplexer can directly access any of 8-single-ended analog signals.The device eliminates the need for external zero and full-scale adjustments. Easy interfacing to microprocessors is provided by the latched and decoded multiplexer address inputs and latched TTL TRI-STATE outputs.The ADC0809

53、offers high speed, high accuracy, minimal temperature dependence, excellent long-term accuracy and repeatability, and consumes minimal power. These features make this device ideally suited to applications from process and machine control to consumer and automotive applications.2. Key SpecificationsR

54、esolution 8 Bits,Total Unadjusted Error 1?2 LSB and ,Sin1g LleS SBupply 5 VDC,Low Power 15 mW, Conversion Time 100usCONVERTER CHARACTERISTICSThe ConverterThe heart of this single chip data acquisition system is its 8-bit analog-to-digital converter.The converter is designed to give fast, accurate, a

55、nd repeatable conversions over a wide range of temperatures. The converter is partitioned into 3major sections: the 256R ladder network, the successive approximation register, and the comparator.The 256R ladder network approach was chosen over the conventional R/2R ladder because of its inherent mon

56、otonicity, which guarantees no missing digital codes. Monotonicity is particularly important in closed loop feedback control systems. the 256R network does not第 31 页本科生毕业设计(论文)cause load variations on the reference voltage.The bottom resistor and the top resistor of the ladder network are not the sa

57、me value as the remainder of the network. The difference in these resistors causes the output characteristic to be symmetrical with the zero and full-scale points of the transfer curve.The successive approximation register (SAR) performs 8 iterations to approximate the input voltage. For any SAR typ

58、e converter, n-iterations are required for an n-bit converter. In the ADC0809, the approximation technique is extended to 8 bits using the 256R network.The A/D converter s successive approximation register (SAR) is reset on the positive edge of the start conversion start pulse. The conversion is beg

59、un on the falling edge of the start conversion pulse. A conversion in process will be interrupted by receipt of a new start conversion pulse. Continuous conversion may be accomplished by tying the end-of-conversion (EOC) output to the SC input. If used in this mode, an external start conversion puls

60、e should be applied after power up. End-of-conversion will go low between 0 and 8 clock pulses after the rising edge of start conversion.The most important section of the A/D converter is the comparator. It is this section which is responsible for the ultimate accuracy of the entire converter. It is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论