




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 本科生毕业设计(论文) 第 42 页 数据采集及传输处理摘要本文主要阐述了基于数字采集与传输处理系统的设计基本思想,包括硬件实现,应用软件实现以及驱动程序设计,同时也介绍了基于MAX485数据传输系统。硬件的主要组成部分为AT89C51,ADC0809,MAX485,8155,LED显示。用软件编程控制硬件实现的过程:发送方的设备把模拟信息转换为数字信息后,发送到接收方的设备上。接收设备利用LED来显示数据。使用的核心芯片是AT89C51,这个芯片可以很好地满足我们的要求。数据采集系统用来采集模拟数据,并将模拟数据存放于存储器中作以后发送用。A/D转换器将模拟形式转换为数字量表示。使用ADC0809作为A/D转换器,它可以把连续的模拟信号转变成数字形式。选用MAX485连接两台机器进行传递信息. 软件编程的语言使用的是C语言,它的运行的环境是keil软件。关键词: 单片机AT89C51,ADC0809,MAX485,LED显示.Abstract This article introduces the base method according to data collection and transmitting process system, including the hardware design, 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 AT89C51,ADC0809,MAX485,8155,LED display.The process of the programme of software controlling hardware operation as follow: 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 perfectly. 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 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. 目 录 摘要IAbstractII1 绪论12 数据发送端硬件42.1 ADC0809与AT89C51的硬件连接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和ADC0809子程序工作过程214.1.2 74汉明码的编码224.1.3收发数据的子程序工作过程234.2 收端软件执行过程244.2.1收端主程序244.2.2按键子程序264.2.3显示子程序27结论28致谢29参考文献30附录A31附录B381 绪论目前大中型企业智能化管理迅速发展。如果能在现场采集到的数据和控制器之间建立起通信,就可实现在控制室中利用计算机来监督现场设备的运行情况,这样不仅可以大大降低劳动强度,有效地提高工作效率,而且可以快速地发现错误信息,并及时地赶到现场进行处理。根据以上考虑,本人设计了一种基于AT89C51单片机的数字采集与传输处理系统。该装置主要应用在控制电压和电流的设备上,它可以显示该设备是否正常运行,也可以根据人的需要立即显示一路信号。 本人在设计数据采集系统过程中,考虑到输入的模拟电压仅在0V到5V之间,输入量的范围很小,为了精确地采集到数据,本设计中采用了ADC0809芯片。它的分辨率为8位,即将一路信号A/D转换为8位二进制数。这样在控制室工作的人员就可以准确地把握现场设备上电压或电流的变化情况。为了提高工作人员的效率,让他们能及时,快速地观察到错误信息,在设计电路工作流程中,执行程序使发端的AT89C51不断地启动ADC0809工作,让ADC0809不停地转换新输入的模拟信号,并刷新收端AT89C51内存里的要显示数据。如果工作人员观察到的数据工作在允许范围之内,说明现场一切设备运行正常,如果现场哪路设备不工作了,在控制室里的工作人员就会发现发光二极管不断的闪烁,同时LED数码管会显示哪路出现问题,这时工作人员就可以立刻赶到现场,查明事故原因。在设计数据传输系统过程中,运用了74汉明码的编码和译码原理,对采集到的数据进行处理。由于74汉明码具有纠错和检错能力强,编码效率高码长短,编码规律简单等优点,而且也是在现实系统中经常使用的一种检错码,所以利用74汉明码编码后发送的数据具有很好的纠错能力,这样就极大地提高了数据传输的可靠性。本系统设计的硬件设备由发端(A机)和收端(B机)两部分组成。A机主要功能是将采集到的数据进行A/D转换,然后把数据存于发端的AT89C51中,利用MAX485来传输数据。B机的主要功能是通过MAX485接收数据,将数据存于收端AT89C51中,然后由AT89C51来控制8155显示数据。在显示部分电路中由5个七段LED数码管和4*2矩阵键盘组成,5 个七段LED数码管的前两位用于显示是哪路的模拟电压信号还是模拟电流信号,后三位用于显示数字量,精确到小数点后两位。8 个键盘代表了8路模拟信号,其中第一列代表模拟电压信号,第二列代表模拟电流信号。发端(A机)基本框图为:发送数 据MAX485AT89C51A/D转换采集数据收端(B机)基本框图为:接收数 据8155驱动显 示AT89C51MAX4858路数据循环显示显示一路数据按键在理论上系统主要由数据采集、数据传输和数据处理三大功能模块组成。下面对三大功能模块简单进行描述:第一部分:数据采集部分由模拟电压、模拟电流、运算放大器(LM324)、A/D转换器(ADC0809芯片)、单片机AT89C51组成。由于模拟电源信号在传输过程中容易受到外界噪声的干扰,为了保证数据传输的可靠性,将模拟信号转化为数字信号进行传送。这种转换的主要使用的芯片是ADC0809。所用电源,可产生0V-5V可调的模拟电压信号和10mA-50mA的可调模拟电流信号。数据采集系统的软件设计采用了顺序程序设计的方法,包括主程序、启动A/D转换子程序和串行口发送子程序等。第二部分:数据传输部分由发端和收端各自的MAX485和AT89C51组成。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。除具有4个8位并行口外,还具有一个全/半双工串行通信接口。AT89C51通过使用串行接口的引脚RXD(P3.0串行数据接收端)和引脚TXD(P3.0串行数据发送端)与外界进行通信,它可以实现需要的AT89C51单片机系统之间点对点的单机通信。 MAX485是一种差分平衡型低功率收发器芯片。芯片中包含有1个驱动器和1个接收器,采用单+5V电源供电,可用于TTL协议(即通用于各种CPU的通信协议)与485协议间的转换,由于它是半双工的方式,只能有一方发送,一方接收,而且它采用差动电平接收的方法,这样就具有很强和很高的抗共模干扰能力和接收灵敏度,适合在比较恶劣的环境下工作。MAX485的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率;在转送数据速度达100KB/S时,通信的距离可1200M。在MAX485收发端A和B之间接一个120欧的匹配电阻,使电流信号转变为相差200mV的电压信号。所以MAX485作为设计中最合适的数据传输器件。第三部分:数据处理部分主要由单片机AT89C51、8155可编程I/O接口、功能键和七段LED显示器等部分组成。这部分将在第三章详细讲述。设计时注意了几个问题:(1)设计电路和片选时,要考虑芯片和电路的驱动能力,否则会造成工作不正常或失败。如本设计中,由于LED通常需要几几十毫安的驱动电流才能发光,为了使其正常显示数据,在LED的段数据线上加入了7407同相驱动器。(2)模拟电压和模拟电流电路中电阻不宜过大,且应采用精密电阻,以满足系统精度的要求。C51语言程序的运行环境为keil软件,当程序烧到AT89C51里时,keil可以把C51语言直接生成汇编语言,以01代码的形式存在AT89C51的内存里。由于C语言的可读性强,不像汇编语言那样繁琐,所以本人采用C语言编程。单片机芯片应用广泛,具有很多特点,如片内资源丰富,产品的体积小,可靠性高,引脚少,功能全,工作电压低,功耗小等。本设计是一个小型的控制系统,可以应用在不同的场合来监督设备是否正常工作。但由于本设计对器件的灵敏度、精度和实时性没有很高的标准,在现实中不一定适用,还须根据不同的场合加以改进。2 数据发送端硬件 本章主要讲述了发端的AT89C51控制ADC0809和MAX485的工作原理,和它们之间的硬件连接。2.1 ADC0809与AT89C51的硬件连接2.1.1 ADC0809简介本人使用的ADC0809芯片是逐次逼近型的A/D转换器,分辨率为8位,可以实现对8路模拟信号分时的进行A/D转换,每一通道的转换大约需时10us。芯片内带有通道地址译码锁存器,采用脉冲启动方式。应用单一+5 v电源,其模拟量输入电压的范围为0v-5v,对应的数字量输出为00H-FFH, 三态锁存输出,功耗为15MW。ADC0809是A/D转换的主要器件。本设计采用中断方式传送数据给AT89C51。STARTCLOCK610 8路模拟开关逻辑控制与定时电路IN026 IN1277 EOC IN228 逐次逼近寄存器SAR三态输出锁存器IN31Vx21 D0 IN4 2 比较器 20 D1IN53Vs19 D2 IN6418 D3 IN7 58 D4 15 D514 D6 树状模拟开关阵译码器17 D7 通道地址锁存与译码ADDA 25 ADDB 249 OEADDC 23256电阻阶梯ALE 2211 13 12 15 VCC GND Vref(+) Vref(-) 图2.1 ADC0809逻辑框图 图2.1 ADC0809与AT89C51连接原理图2.1.2 启动端口的连接与工作原理 (1)START:为“启动脉冲”输入线,该线上的正脉冲是由AT89C51的P2.7和/WR来提供的,其宽度在100us-200us之间。当执行指令使P2.7=0和=0时,输入一个正脉冲,便立即启动ADC0809工作,10us后EOC变为低电平。(2)ALE:地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA,ADDB和ADDC三条地址线上的地址信号得以锁存,经译码后读入一路模拟信号。由P2.7和控制启动转换信号ALE端,使之变为高电平,执行的指令和启动START端的指令一样。(3)OE:输出允许信号,高电平有效。OE由低电平变高电平,打开三态输出锁存器,将转换后的结果输出到数字总线D0-D7上。由P2.7和联合控制使OE线变为高电平,以提取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转换。具体接法如下所示:一级放大计算过程如下:“虚短”:Un=Up=0,“虚断”:Ui/R6=-Uo/R7=-10图2.2 两级运放原理图 1.1.2 输出端口的连接与工作原理(1)通道选择ADDA,ADDB和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)数字量的转输1. D7-D0:为数字量输出线,D7为最高位,D0为最低位。是三态输出锁存器的输出端。转换后的数据从D7-D0输入到AT89C51的P0口。2.EOC:为转换结束输出线,指示转换结束和数据有效的信号,它是一个负方波,EOC由高电平到低电平跳变表示A/D转换开始,转换过程中维持低电平,EOC由低到高跳变表示A/D转换结束。EOC 线作为CPU的中断请求输入线。经7405反相后接到AT89C51的口。当A/D转换结束时,EOC端发出一正脉冲,申请中断,即EOC=1, =0,向CPU申请中断。 (4)ADC0809的其它端口工作原理1. VREF(+),VREF(-):参考电压输入线,用于给电阻阶梯网络提供标准电压。VREF(+)和VCC(+5V)相连,VREF(-)与地0V相连。输入的模拟量是从0开始,最大值是+5V满量程。当输入最小为0V,输出为00H,当输入最大为5V,输出为FFH。2.CLOCK:因芯片的时钟频率最高只能工作在640KHz,所以本人在设计中为ADC0809提供逐次比较所需时钟脉冲序列为500KHz。ADC0809所需时钟信号由AT89C51的ALE端提供。AT89C51的ALE信号的频率是晶振频率的1/6。AT89C51晶振频率是6MHz,则ALE信号频率为1MHz,ALE的信号经D触发器二分频接到ADC0809的CLOCK输入端,这样就可获得500KHz的A/D转换时钟脉冲。D触发器为上升沿动作,输出跟随输入变化. AT89C51 ALE: 由D触发器的特性得出CLOCK端口的波形。CLOCK: 图2.3 CLOCK连接原理图因为CLOCK是由和分别反相后,经两个74LS32或门控制的,所以当和其中一个有效时,CLOCK端进入的都为高电平。也就是说,只有在数据转换过程中ADC0809才有CLOCK时钟脉冲输入,而在ADC0809启动和结束的过程中,都为高电平。VCC:为+5V电源输入线。 GND:地线 图2.4 采集一路信号的时序原理图2.2晶振电路和复位电路(1)晶振电路AT89C51芯片内部有高增益反相放大器用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,在其两端跨接6MHz的石英晶体和30pF的两个电容构成稳定的自激振荡器,这样就提供了振荡所必需的正反馈和相移条件。两个电容对振荡频率有微调作用。(2)复位电路使用频率为6MHz的晶振,复位电路信号持续的时间应超过4us才能完成复位操作。AT89C51的复位电路是用外部电路来执行的,在CLOCK工作时,只要在RESET引脚上接上10ms以上的高电平,AT89C51执行状态复位。2.3 AT89C51的数据传输2.3.1 AT89C51的串行接口(1)串行通讯方式在数据传输过程中,本设计使用异步串行通信的方式。采用串行通信工作方式1传输数据。在异步通讯中,收端和发端的AT89C51之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的字符串理解成同一种意义。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的个数。要求数据传送的速率是60字符/s,而每个字符如上述规定包含10数位,则传送波特率为600。因为波特率越高,要求传输通道的频带越宽,一般异步通信的波特率在50b/s-9600b/s之间,为保证传输的可靠性,采用600b/s。由于异步通信双方各用自己的时钟源,要保证捕捉到的信号正确,选择时钟频率比波特率高很多倍,不然频率稍有偏差便会产生接收错误。为节省资源,接口通过一根传输线将数据发送出去,所以本设计采用串行通信通过串行接口实现。根据信息的传送方向,采用半双工传送数据,因为要求A机向B机发送完数据后,B机再向A机发送一个确认信息,即信息能双向传送但不能同时双向传送。(2)串行接口结构和控制命令串行接口结构为:串行口主要由发送数据缓冲器,发送控制器,输出控制门,接收数据缓冲器,接收控制器,输入移位寄存器等组成。AT89C51有两个物理上独立的接收,串行口缓冲寄存器SBUF,它们占用同一地址99H,收发时不会出现冲突,因为它们两个,一个只能被CPU读出数据,一个只能被CPU写入数据.串行口的两个特殊功能寄存器SCON,PCON. SCON用于定义串行口的工作方式及实施接收和发送控制。SCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1SM2RENTB8RB8TIRI使用工作方式1,SM0=0,SM1=1。点对点的通信SM2=0。允许接收控制位REN=1。其它位为0,所以SCON=50H。PCON的格式如下:D7 D6 D5 D4 D3 D2 D1 D0SMOD-GF1GF0PDIDLPCON的最高位SMOD是串行接口波特率系数控制位,不用波特率加倍。PCON=00H,SMOD=0。(3)定时器设置串行口波特率发生器的定时,选择模式2,因为它是自动重装载的8位定时器和计数器,这种工作模式可以省去软件中重装常数的语句,并可产生相当精确的定时时间。计算定时器计数初值XX=256- fosc/波特率*12*(32/2) 将已知数据fosc=6*Hz,波特率=600b/s带入,得 X=229.958=230=E6H.赋计数初值TH1=TL1=0E6H 。(4)方式1工作原理串行通讯的方式1:它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式为: 在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,最后是停止位1,共十位。用这种格式表示字符,则字符可以一个接一个地传送。在接收时,停止位进入SCON的RB8。方式1发送时,数据从引脚TXD端输出。当执行数据写入发送缓冲器SBUF的命令时,就启动了发送器开始发送。发送时的定时信号,也就是发送移位时钟(TX时钟),是由定时器T1送来的溢出信号经过32分频(SMOD=0)而得到的,TX时钟就是发送波特率。发送开始的同时,变为有效,将起始位向TXD输出,产生一个移位脉冲,并由TXD输出一个数据位;8位数据位全部发送完后,置位T1,并申请中断置TXD为1作为停止位,再经过一个时钟周期,失效。方式1接收时,数据从引脚RXD端输入。接收是在SCON寄存器中REN位置1的前提下,并检测到起始位(RXD上检测10)而开始的。接收时由定时器T1的溢出信号经过32分频(SMOD=0)而得到的。当一帧数据接收完毕后,必须同时满足两个条件:1.RI=0,即上一帧数据接收完成时,RI=1发出的中断请求已被响应,SBUF中数据已被取走。由软件使RI=0以便提供“接收SBUF已空”的信息。2.SM2=0或收到的停止位为1(进入RB8),则将接收到的数据装入串行口的SBUF和RB8,并置位RI,如果不满足,接收到的数据不能装入SBUF,这意味该帧信息将会丢失。 图2.4 方式1收发时序图2.3.2 MAX485芯片(1)MAX485简介 MAX485芯片是MAXIM公司生产的差分平衡型收发器芯片,包含一个驱动器和一个接收器。MAX485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线使用的是双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。可用高达2.5Mbit/s的传输速率进行发送和接收。MAX485是半双工收发器,它有12K标准输入阻抗。本设计让AT89C51由P1.4来控制MAX485的收发状态。(2)MAX485管脚功能 图2.5 MAX485管脚RO:接收器输出端,当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:接地表2.1 MAX485的收发功能 发送接收输入输出输入输出/REXDE1100DI10XXB01高阻高阻A10高阻高阻/RE0001DE0000A-B+0.2VVx时,该位Di=0,若VsVx时,该位Di=1。因此 图4.2 A/D转换子程序 从D7到D0逐位逼近并比较8次。逐位逼近寄存器中数字量,即为与模拟量Vx所对应的数字量。 在数据转换过程中,程序置和无效,使ALE端经两个74ls32控制,提供500Hz的时钟脉冲给ADC0809的CLOCK端。由于逐次逼近需要一定的时间,大约为10us,所以,执行i=i ;i=i ;指令,程序延时足够的时间等待转换完成,在此期间内,电源产生的模拟电压信号保持不变,EOC端为低电平,INT0为高电平。(3)A/D转换完毕:数字量送入输出锁存器,同时发出转换结束信号。EOC端发出一正脉冲经7405反相后,向AT89C51的INT0口申请中断。当ad_busy=0(ad_busy为指向INT0端口的变量)时,表示转换结束,程序置无效,有效和P2.7为高电平,使OE端有效,同时使CLOCK端为高电平,打开输出锁存器三态门,8位数据便输入到AT89C51的P0口中。执行xi=*ad_adr指令,数据存入AT89C51的片内RAM的数组adi中。ad_adr+ ;指向下一通道地址,重复上述过程。这样就采集完8路模拟信号。以上仅仅是某一时刻采集8路模拟信号的过程。AT89C51还要不断地重新启动ADC0809工作,再采集下一时刻的8路模拟信号,将数字量重新存入到收端AT89C51的内存里。这样工作人员看到的数据就是在不断的被刷新。4.1.2 74汉明码的编码信息元码字有4位,监督位码字有3位,而发送数据仅8位,所以编程时在最后一位加1。采集到的8路数据,每一路用程序分前4位和后4位,然后作为信息元码发送。到接收端,用程序把2个4位数据合在一起,作为一路信号数据。接收端用监督矩阵H来检测接收码组B中的错误,程序执行B和H相乘得出伴随式S。对S编一个查寻表子程序,找出错误的是哪一位。由于7,4汉明码只能纠一位错误,如果错误多于一位,比如2位,只能检错,如果有一个则纠错,否则收端要求重发数据。4.1.3收发数据的子程序工作过程设定波特率启动定时器1设定波特率启动定时器1发送请求联结信号AA接收A机校验和并与B机校验和比较接收一个数据字节并求校验和指针初始化校验和清0发送应答信号BB等待A机联络设串行口工作方式设串行工作方式发送一个数据字节并求校验和指针初始化校验和清0B机允许发送A机请求发送NNYY数据收齐了吗?数据块已发送完NNY发送校验和Y接收正确Y返回B机接收正确发出错标志oxFFNN返回Y图4.3 A机发送程序 图4.4 B机接收程序首先A机向B机发送联络信号oxaa,等待B机的回应。当B机准备好接收数据时,A机把8路数据信号依次发送出去,并计算出8路所有信号的校验和,最后发送出去。B机根据接收到的8路数据计算出自己的校验和,并且与接收到的校验和进行比较,若校验和正确,则B机向A机回发“数据发送正确ox00”信号。若校验和有错,则B机发送出“数据发送不正确oxff”信号。A机接收到“不正确”应答信号后,重新发送原数据,直到发送正确。A机将该数据块发送完毕后停止发送。 4.2 收端软件执行过程4.2.1收端主程序接收数据求出8路各自的地址和数据YN数据为0判断有无键按下Y N YN闪烁子程序继续显示下一路调用显示子程序求出按键的地址和数据判断键号是否为0延时10us调用键盘扫描子程序取键号延时0.1S调用显示子程序 图4.5收端主程序首先通过收端的MAX485接收数据,存入到AT89C51内部寄存器的数组adi中,等待以后调用。然后转入键盘扫描子程序kbscan中,判断是否有按键。将求得的键值赋给key(key=kbscan)判断key值是否为0。如果为0说明没有键按下,执行8路循环显示命令。如果key不为0,则有键按下key的值作为人让CPU显示的路数,即adkey就是存在AT89C51中的地址,其值就是人让CPU显示的数据,然后根据adkey的地址和数据调用显示子程序。While(1)使AT89C51不断的扫描键盘和驱动显示。If(key!=0) break;如果有键按下,跳出8路循环程序,转去执行按键显示程序。在8路循环显示程序(for(i=0;i8;i+))中,首先执行x=adi*5/指令。因为adi数组中存入的8位二进制01代码是在ADC0809比较器里逐位逼近比较得到的结果,而这个结果并不是模拟量对应的二进制数,所以这条指令就是把从ADC0809比较得到的二进制数转化为模拟量对应的十进制数。由于模拟量对应的十进制数作为一个整体存在变量x中,而要求3 个LED分别显示数字量,所以执行bdi0=(uchar)x*100%10 ;命令取出小数点后第二位,执行bdi1=(uchar)x*100%100/10 ;命令取小数点后第一位, bdi2=(uchar)x+ox01 ;命令取整数加小数点,要显示路数存于数组bdi3,由于ADC0809的前四位输入的模拟电压信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品长期供应合同
- 购销合同(长期供货购销合同发供货通知书)2篇
- 甘肃工业照明工程方案(3篇)
- 理疗学课件教学课件
- 佛山酒店装修工程方案(3篇)
- 安全文明生产培训材料课件
- 电梯工程审价方案范文(3篇)
- 安全整改培训计划课件
- 浦北县顺源门窗制造有限公司门窗生产线项目环评报告
- 猫咪课件教学课件
- 起重机械定期检查与维护方案
- 2025年新《公司法》知识竞赛题库(附含答案)
- 动物样品采集培训课件
- 八年级心理健康体验式教学计划
- 二手房资金监管协议书
- 甘肃省会宁县2025年上半年公开招聘辅警试题含答案分析
- 2025年太阳能海水淡化项目经济效益评估报告
- 2025年机关事业单位工人招聘《机动车驾驶员》技师考试题库与答案
- 2025年物资保管岗位招聘面试实战指南及模拟题解析
- 2025江苏南京农业大学新校区建设指挥部、基本建设处人员招聘10人考试模拟试题及答案解析
- 支教面试课件内容
评论
0/150
提交评论