电子专业课设报告八路数据采集循环显示

上传人:仙*** 文档编号:81300167 上传时间:2022-04-26 格式:DOC 页数:36 大小:814.01KB
收藏 版权申诉 举报 下载
电子专业课设报告八路数据采集循环显示_第1页
第1页 / 共36页
电子专业课设报告八路数据采集循环显示_第2页
第2页 / 共36页
电子专业课设报告八路数据采集循环显示_第3页
第3页 / 共36页
资源描述:

《电子专业课设报告八路数据采集循环显示》由会员分享,可在线阅读,更多相关《电子专业课设报告八路数据采集循环显示(36页珍藏版)》请在装配图网上搜索。

1、 课程设计说明书课程设计名称: 专业课程设计 课程设计题目: 八路数据循环采集显示 学 院 名 称: 信息工程学院 专业: 电子信息工程 班级: 100414班 学号: 10041402 姓名: 高飞红 评分: 教师: 徐琦 王忠 20 13 年 7 月 3 日 摘 要 数据采集是指将位移、流量、温度、压力等模拟量采集、转换成数字量后,再由计算机进行存储、处理、显示或打印。数据采集技术是信息科学的一个重要组成部分,信号处理技术、计算机技术,传感器技术是现代检测技术的基础。数据采集技术则正是这些技术的先导,也是信息进行可靠传输,正确处理的基础。在工业生产中,对生产现场的工艺参数进行采集、监视和记

2、录,这样能提高产品的质量、降低成本。在科学实验中,对应用数据进行实时采集,这样获得大量的动态信息,是研究物理过程动态变化的有效手段,也是获取科学奥秘的重要手段之一。数据采集系统性能的好坏,取决于它的精度和速度,在精度保证的条件下提高采样速度,满足实时采集、实时处理和实时控制的要求。 本设计待测的输入电压为8路,电压范围为05V,使用目前广泛使用的AT89C51来做控制系统,用ADC0809来进行模拟电压的采集及模数转换,实现采集8路数据,并将结果在四位一体数码管上进行显示。该系统主要包括几大模块:数据采集模块、AD转换模块、控制模块、显示模块。显示部分由数码管显示构成。该数字电压表具有电路简单

3、,成本低等优点,可以方便地进8路AD转换量的测量。关键词:电压采集、ADC0809、A/D转换、单片机89C51、数码管显示 目 录 第一章 设计内容及要求 11.1 设计要求 11.2 提高要求1第二章 系统框图与工作原理22.1 硬件组成框图22.2 软件系统框图32.3 工作原理分析 4第三章 器件说明5 3.1 ADC0809模数转换芯片 5 3.2 AT89C51单片机 6 3.3 4个共阴7段数码管显示器7第四章 硬件各模块设计说明9 4.1 模拟数据输入电路9 4.2 AD转换电路 9 4.3 数码管显示电路10 4.4 方式控制电路11 第五章 软件子程序设计说明 13 5.1

4、 ADC模数转换程序 13 5.2 数据处理子程序14 5.3 数码管显示程序16第六章 系统调试及结果分析 196.1 硬件调试及分析 196.2 软件调试及分析206.3 调试结果20结论22参考文献 23附录1 八路数据采集的原理总图 24附录2 程序清单及注释25第一章 设计内容及要求1.1 设计要求(1) 对8路模拟电压信号进行采集并循环显示(2) 模拟电压变换范围为:0 5V(3) 测量精度小于2%(4) 测量温度用3位LED显示器显示,1位显示循环通道8路模拟量变换器单片机显示器1.2提高要求(1)通过按键模块的操作可以选择8路循环显示,也可以选择某条单路显示。(2)做出的八路采

5、集器,应该在精度和采集信号的稳定程度方面加以强化。(3)做出的产品在实际中能够经久耐用。 第二章 系统框图与工作原理 数据采集系统包括模拟信号的输入、转换及处理。模拟信号变成数字形式后顺序存储、传输、处理和显示。数据收集的基本手段是模数转换,它是将来自各式各样传感器的模拟量实时地、准确地测量或汇集起来,送入计算机实时处理,并输出相应的控制信号以实现对物理系统的控制或记录。 2.1硬件组成框图MCS-51单片机0809中进行AD转换 滑动变阻器0模拟电压采集 数码管显示 滑动变阻器7 图2.1硬件系统框图 如图2.1所示,该系统主要包括几大模块:数据采集模块、AD转换模块、控制模块、显示模块。采

6、用AT89C51作为控制模块,ADC0809作为AD转换模块的核心,ADC0809本身具有8路模拟量输入端口,通过C、B、A,3位地址输入端,能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。数码管的显示采用软件译码动态显示,通过按键模块的操作可以选择8路循环显示,也可以选择某条单路显示。2.2软件程序框图 图2.2程序流程框图编程思想:首先在启动A/D转换,因转换需要一定的时间,所以需延时等待;然后读取数据,利用软件编程,将二进制数转换为十进制数,送到数码管显示;从左到右轮流点亮显示器各位,对于显示器的每一位来说,每隔一段时间点亮一次

7、,利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁,数码管的第四位显示通道数,前三位显示0255的采集数据。2.3 工作原理分析 依据综合课程设计的要求,利用ADC0809设计一个单通道模拟电压采集显示电路,要求对所接通道变化的模拟电压值进行采集,采集来的数字量送至数码管指示出来,通过相关转换在数码管上精确显示出来。 数据采集电路是系统的主要组成部分,ADC0809具有8路模拟量输入通道IN0IN7,通过3位地址输入端C、B、A(引脚2325)进行选择。引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部锁存器中,经内部

8、译码电路译码选中相应的模拟通道。引脚6为启动转换控制端START,当输入一个2 US宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。引脚7为AD转换器,当开始转换时,EOC信号为低电平,经过一段时间,换结束,转换结束信号EOC输出高电平,转换结果存放干ADC0809内部的输出数据寄存器中。引脚9脚为AD转换数据输出允许控制端OE,当0E为高电平时,存放于输出数据锁存器中的数据通过ADC0809的数据线DOD7输出。引脚10为ADC0809的时钟信号输人端CLOCK。显示数码管分别用两个锁存器来控制它的位选和段选,利用软件编程启动AD转换之后,采用延时的方式等待数据送至P2

9、口进行数据的处理,即将十六进制转换为BCD格式,处理之后送至P0口进行数据的显示,P1.5和P1.6分别控制数码管的段选的位选信号。 第三章 器件说明 3.1 ADC0809模数转换芯片 1)ADC0809内部逻辑结构 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 图3.1.1ADC0809内部逻辑结构 由上图可知,ADC0809由一个8路模拟开关、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换

10、完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。2)ADC引脚结构ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换).EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。 图3.1.2ADC08

11、09芯片引脚3.2 AT89C51单片机 AT89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚图,如图3.2所示图3.2 80C52单片机引脚 它一共有40个引脚,引脚又分为四类。其中有四个电源引脚,用来接入单片机的工作电源。工作电源又分主电源、备用电源和编程

12、电源。还有两个时钟引脚XTAL1、XTAL2。还有由P0口、P1口、P2口、P3口的所有引脚构成的单片机的输入/输出(IO)引脚。最后一种是控制引脚,控制引脚有四条,部分引脚具有复位功能。 综上所述,单片机的引脚特点是: 1.单片机多功能,少引脚,使得引脚复用现象较多。 2.单片机具有四种总线形式:P0和P2组成的16位地址地址总线;P0分时复用为8位数据总线;ALE、PSEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX组成控制总线;而P3的RXD、TXD组成串行通信总线。3.3 4个共阴7段数码管显示器实验中我们采用的是四位共阴数码管,其管脚图

13、如下: 图3.3四位共阴数码管静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。第四章 硬件各模块设计说明 4.1 模拟数据输入电路为了使电路更加的直观,增加系统的可读性,将电位器的输出电压作为数据采集模块的输入,模块图如下图所示。图4.1 模拟数据输入图

14、在此模块图中,使用了八个滑动变阻器,通过改变电位器是的电阻值,从而是INi端电压值发生改变,进而达到改变采集模块输入数据的目的。4.2 AD转换电路 多路数据采集系统,通过多路模拟开关控制多路之间的切换,实现单片AD芯片对多路数据信号的逐个采集。模数转换的核心是模数转换器(ADC),即AD芯片。它将输入的模拟信号进行量化,即把连续的模拟信号转换为计算机能处理的离散数字信号。模块图如下图所示。图4.2 ADC0809转换模块图上图所示原理图工作过程为:ALE的上升沿将A、B、C端选择的通道地址锁存到8位A/D转换器的输入端。START的下降验启动8位A/D转换器进行转换。A/D转换开始使EOC端

15、输出低电平。A/D转换结束,EOC输出高电平。该信号通常可作为中断申请信号。OE为读出数据允许信号。OE端为高电平时,可以读出转换的数字量。4.3 数码管显示电路 显示部分由4个八段共阴数码管和两片74LS373组成,数码管为动态扫描显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。模块图如下图所示。图4.3.1数码管显示电路此图为显示部分,其中第四个数码管实现所采集的通道号,前面三个数码管显示此通

16、道的电压值,上电后系统正常工作,显示去最先显示通道0以及通道0的电压值,一秒后切换到通道1,这样依次递增,当通道7显示完以后,又回到通道0,实现循环显示。图4.3.2数码管显示电路 此模块为数码管的驱动电路,两片74LS373实现数码管的动态扫描显示,U4作为数码管的段选驱动,U5为位选驱动。4.4 方式控制电路键盘模块实现的功能只显示某一通道的通道号和钙通道电压值。如下如所示。 图4.4方式控制电路 此图中,按键采用的连接方式为矩阵式,这种方式的优点是,能充分利用资源,增加系统的可靠性。此键盘实现的功能是当按下第一个键是,数码管就只显0通道号和0通道的电压值,当释放按键,系统继续循环显示。加

17、入此模块后,能够更加直观地观察和检测每一个通道的电压值。矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电

18、阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。 第五章 软件设计与说明5.1 ADC模数转换程序模数转换测量子程序是用来控制对0809 八路模拟输入电压的AD转换,转换后的数值存于P2口中,其流程图如5.1.2。 图5.1模数转换流程图START: CLR P3.6 ;START置位低 NOP NOP NOP NOP;延时us SETB P3.6;将START引脚点平拉高 NOP NOP NO

19、P NOP ;延时us CLR P3.6 ;又将START拉低RE: JB P3.7,RE ;检测AD转换是否完成 ACALL D10ms1 ;调用延时子程序 ACALL AD ;调用AD转换程序 ACALL DISP ;调用显示子程序 RET5.2数据处理子程序 ADC0809转换之后输出的结果是8位二进制数。由公式(1)可知,当ADC0809输出为(1l1l11111)时,输入电压值V =500V当ADC0809输出为(00000000)时,输入电压值为0.0O0V;当ADC0809输出为(10000000)时,输入电压值V =250V。由于单片机进行数学运算时结果只取整数部分,因此当输出

20、为(10000000)时计算出的电压值V =2OOV,很不准确。为了提高精确度,必须把小数部分保留,具体运算方式如公式(2)。个位:Dout*196/10000 十分位:(Dout*196/1000)%10 百分位:(Dout*196/100)%10 千分位:(Dout*196/10)%10 由此得到较为精确的数值。 图5.2 十六进制转换为三位BCD码AD: MOV R0,P2 ;将才采集好的值存于R0中 MOV A,R0 ;将值存于寄存器A中 MOV B,#51 ;给B赋值 DIV AB ;A/B MOV 30H,A ;将最高位存于H中 MOV A,B ;将余数存于A中 CLR F0 ;清

21、F0 SUBB A,#1AH ;将A与相减 MOV F0,C ;借位存于F0 MOV A,#10 ;给A赋值为 MUL AB MOV B,#51 DIV AB JB F0,LOOP1 ADD A,#5 ;此段为最高位转化LOOP1: MOV 31H,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5;此段为次高位的转化LOOP2: MOV 32H,A ;最低位存于H中 RET 5.3数码管显示程序DISP: MOV R4,#00H SETB P1.5 SETB

22、P1.6;显示最高位LOOP3: MOV DPTR,#TAB MOV A,30H ;将最高位存入A中 MOVC A,A+DPTR ;查表 ADD A,#80H ;显示小数点 SETB WELA2 ;位选选通 MOV P0,#0FEH NOP ;延时us CLR WELA2 ;清位选 SETB WELA1 ;置位选 MOV P0,A ;将显示值送P0口显示 NOP CLR WELA1 ACALL D10ms1;次高位显示 MOV DPTR,#TAB MOV A,31H ;将最次位存入A中 MOVC A,A+DPTR ;查表 SETB WELA2 MOV P0,#0FDH NOP CLR WELA

23、2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;最低位显示 MOV DPTR,#TAB MOV A,32H MOVC A,A+DPTR SETB WELA2 MOV P0,#0FBH NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;通道号显示 MOV DPTR,#TAB MOV A,33H MOVC A,A+DPTR SETB WELA2 MOV P0,#0F7H NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL

24、D10ms1 DJNZ R4,LOOP3RE第六章 系统调试及结果分析6.1 硬件调试及分析第一步 目测。检查外部的各种元件或者是电路是否有断点。第二步 用万用表测试。先用万用表复核目测中有疑问的连接点,再检测 各种电源线与地线之间是否有短路现象。第三步 加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求值 第四步 联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试

25、电路时,与该元件无关的器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。在调试过程中我们发现在5V量程下,标准电压表的显示值2.50V,而数码管显示2.406;标准电压表显示4.44V,数码管示值为4.420。数码管显示结果有误差是由于ADC0809输出的二进制码数转换为BCD码数的换算方法有一定误差导致

26、。起初我们开始用的ADC时钟电路是单片机内部ALE经过D触发器分频得到的,但在实际电路中却不起作用,测ALE引脚无法检测到信号,导致0809无法采集到模拟信号,得到的全为5V电压,最后我们采用的是直接外接一个0.5M的外部时钟电路给ADC0809芯片。模拟数据采集中原本设想的的是调节其中某一电位器,其相对应的那一路电压发生改变,但在实际运行过程中其相邻几路电压也随之变化,经过分析,可能是模拟地和数字地不能接在一起,调整之后,问题得到解决。6.2 软件调试及分析 由于程序比较多,整体调试不容易发现和改正错误,故采取子程序调试的方法,但要明确子程序的具体功能。例如:调试显示子程序时,只将显示子程序

27、进行汇编,确认无误后单步执行,观察CPU窗口和DATA窗口以及CODE窗口相应单元的变化是否跟预期的一样。如果有问题找出问题所在。采取各个击破的方法调试好各个子程序。 确定各子程序无误后,再调试完整的程序,要注意各子程序之间的衔接以及和主程序之间的调用和返回。运行后,观察有无键盘显示功能。若运行结果不正确,首先应根据程序运行的实际现象分析判断哪些因素可引起相关故障,再通过调试方法逐一认证和排除。通过反复调试,发现并排除软件与硬件存在的各类问题,以满足系统设计的预期目的。 在试验中,耗时最多的是终端服务程序,程序中不但要考虑寄存器的复用问题,还要考虑在运行中断服务程序时将改变一些值。所以在中断程

28、序开始就将一些需要保存的值推入堆栈,在中断程序结束时弹出堆栈。但在调试中,在判断按了某个键后,跳到RETI时忘了将压入堆栈的值弹出堆栈,程序没有报错,但键值读不出来,一直检查,最后才发现了问题所在。改变位置后,程序就能够出来,按下指定键后能够实现试验所要求的功能。6.3 调试结果 上电之后,程序开始从0通道开始循环采样。数码管显示每一路模拟电压采样的值并且能够显示通道号。为了是功能更加完善,我们多加了一个矩阵键盘。在此基础上按相应键号后,从特定的通道开始进行循环采样并显示改变输入信号和通道值。所有功能实现后,将采样值和实测值比较,误差比较大,且实测值的小数位大于5时,第一位的小数的误差在5之内

29、,刚开始怀疑是硬件问题,将八个通道的值都比较后发现都存在一样的问题,开始怀疑是软件问题。在检查软件时发现在判断是否加5的标志的建立存在问题。仔细分析后将问题解决后就能够将误差控制在百分之二内。 表6-1实验测量数据采集通道号012 3 4 5 67实际值(V) 2.41.43.00.42.41.32.12.4显示值(V)2.41.32.90.42.51.42.02.4通过实际显示值与万用表测得的数据可知,我们的八路采集系统是可靠的,可以很好的采集到格各路的数据并且准确的显示出来! 总结经过这此单片机课程设计,同学们学会了很多东西。比如,对汇编语言的理解就已经有了一个更进一步的理解,同时也对那些

30、同学们已经学过的各种计算机语言进行了一个简单的对比。在经过大一的语言课程设计和大三的电子电路课程设计以及此次单片机课程设计。使同学们养成了模块化工程设计方法的习惯,在设计功能模块时候,得先确定是什么功能模块,并绐模块读取地址或数据和存储地址或传出变量。只要这样,在需要时候进行调用或中断就可以了。经过这次经历,同学们不仅加深了对单片机理论的理解,还熟悉和掌握了单片机的许多基础设计语言和模拟单片机软件程序,将理论很好地应用到实际当中去,而且同学们还学会了如何去培养他们的创新精神,从而不断地战胜自己,超越自己。创新,是要同学们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福为意愿出发

31、,做自己力所能及的,别人却没想到的事。使之不断地战胜自己,超越前人。这个设计过程中,同学们遇到过许多次失败的考验,就比如,自己对实际生活中的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,同学们明白了,原来结果并不那么重要,更应该引起同学们重视的是创作的这一整个过程。这次课程设计让同学们受益匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计

32、不出来的地方,同学们就会在QQ群里讨论或者是同学之间相互帮助。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。 单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管同学们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习,学好了单片机也就多了一项生存的本钱。最后感谢老师对学生的精心指导和帮助,感谢同学们对我的帮助。参考文献1孙涵芳MCS-51系列单片机原理及应用M 北京航空航天大学出版社1996-42夏继强. 单片机实验与实践教程

33、. 北京:北京航空航天大学出版社, 20013尹建华、张惠群微型计算机原理与接口技术 第2版M 北京:高等教育出版社,20084 陈黎娟. 单片机技术实践教程. 南昌:南昌航空大学出版社, 2009-35张先庭. 单片机原理、接口与C51应用程序设计. 第1版M 北京:国防工业出版社,2011-12 附录一 八路数据采集的原理总图附录二程序清单及注释WELA1 BIT P1.6;位选信号接P1.6WELA2 BIT P1.7;位选信号接P1.7ORG 0000HAJMP MAINMAIN:MOV R3,#00H ;R3清LK: MOV P3,#00111000B ;给P3口赋值 JB P3.0

34、,AN ;P3.0为高转AN JB P3.1,AN ;P3.1为高转AN JB P3.2,AN ;P3.2为高转AN MOV P1,R3 ;P1口清 ACALL START ;启动AD转换 MOV 33H,R3 ;将R3值存于H中 ACALL DISP ;调用显示子程序 INC R3 CJNE R3,#08H,LK ;通道号显示,当为时重新回到 AJMP MAIN ;跳到主函数AN: ACALL D10MS ;延时 JB P3.0,ANA ;P3.0为高转ANA JB P3.1,ANB ;P3.1为高转ANB JB P3.2,ANC ;P3.2为高转ANC AJMP LKANA: MOV P3

35、,#00000001B ;P3口赋值x01 JB P3.5,AN0 ;当P3.5为高,则跳到通道显示通道的数据 JB P3.4,AN1 ;当P3.4为高,则跳到通道显示通道的数据 JB P3.3,AN2 ;当P3.3为高,则跳到通道显示通道的数据 AJMP MAINANB: MOV P3,#00000010B ;P3口赋值x02 JB P3.5,AN3 ;当P3.5为高,则跳到通道显示通道的数据 JB P3.4,AN4 ;当P3.4为高,则跳到通道显示通道的数据 JB P3.3,AN5 ;当P3.3为高,则跳到通道显示通道的数据 AJMP MAINANC: MOV P3,#00000100B

36、;P3口赋值x04 JB P3.5,AN6;当P3.5为高,则跳到通道显示通道的数据 JB P3.4,AN7;当P3.5为高,则跳到通道显示通道的数据 AJMP MAINAN0:CLR P1.0;通道信号采集与显示 CLR P1.1 CLR P1.2;000为通道地址 MOV 33H,#00HACALL DISP ;通道号显示为 ACALL START ACALL DISP AJMP LKAN1:SETB P1.0 ;通道信号采集与显示 CLR P1.1 CLR P1.2 ;001为通道地址 MOV 33H,#01HACALL DISP ;显示通道号 ACALL START ACALL DIS

37、P AJMP LKAN2:CLR P1.0 ;通道信号采集与显示 SETB P1.1 CLR P1.2 MOV 33H,#02HACALL DISP ACALL START ACALL DISP AJMP LKAN3:SETB P1.0 ;通道信号采集与显示 SETB P1.1 CLR P1.2 MOV 33H,#03HACALL DISP ACALL START ACALL DISP AJMP LKAN4:CLR P1.0 ;通道信号采集与显示 CLR P1.1 SETB P1.2 MOV 33H,#04HACALL DISP ACALL START ACALL DISP AJMP LKAN

38、5:SETB P1.0;通道信号采集与显示 CLR P1.1 SETB P1.2 MOV 33H,#05HACALL DISP ACALL START ACALL DISP AJMP LKAN6:CLR P1.0;通道信号采集与显示 SETB P1.1 SETB P1.2 MOV 33H,#06HACALL DISP ACALL START ;调用START子程序,开始AD转换 ACALL DISP ;调用显示子程序,将所得的值在数码管显示 AJMP LKAN7:SETB P1.0 ;通道信号采集与显示 SETB P1.1 SETB P1.2 MOV 33H,#07HACALL DISP AC

39、ALL START;调用START子程序,开始AD转换 ACALL DISP;调用显示子程序,将所得的值在数码管显示 AJMP LK;AD采集开始子程序 START: CLR P3.6 ;START置位低 NOP NOP NOP NOP;延时us SETB P3.6;将START引脚点平拉高 NOP NOP NOP NOP ;延时us CLR P3.6 ;又将START拉低RE: ; JB P3.7,RE ;检测AD转换是否完成 ACALL D10ms1 ;调用延时子程序 ACALL AD ACALL DISP ;调用显示子程序 RET;此子程序是将AD转换的数转换为()V算法AD: MOV

40、R0,P2 ;将才采集好的值存于R0中 MOV A,R0 ;将值存于寄存器A中 MOV B,#51 ;给B赋值 DIV AB ;A/B MOV 30H,A ;将最高位存于H中 MOV A,B ;将余数存于A中 CLR F0 ;清F0 SUBB A,#1AH ;将A与相减 MOV F0,C ;借位存于F0 MOV A,#10 ;给A赋值为 MUL AB MOV B,#51 DIV AB JB F0,LOOP1 ADD A,#5 ;此段为最高位转化LOOP1: MOV 31H,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,

41、#51 DIV AB JB F0,LOOP2 ADD A,#5;此段为次高位的转化LOOP2: MOV 32H,A ;最低位存于H中 RET;显示子程序DISP: MOV R4,#00H SETB P1.5 SETB P1.6;显示最高位LOOP3: MOV DPTR,#TAB MOV A,30H ;将最高位存入A中 MOVC A,A+DPTR ;查表 ADD A,#80H ;显示小数点 SETB WELA2 ;位选选通 MOV P0,#0FEH NOP ;延时us CLR WELA2 ;清位选 SETB WELA1 ;置位选 MOV P0,A ;将显示值送P0口显示 NOP CLR WELA

42、1 ACALL D10ms1;次高位显示 MOV DPTR,#TAB MOV A,31H ;将最次位存入A中 MOVC A,A+DPTR ;查表 SETB WELA2 MOV P0,#0FDH NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;最低位显示 MOV DPTR,#TAB MOV A,32H MOVC A,A+DPTR SETB WELA2 MOV P0,#0FBH NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;通道号显示 MOV DPT

43、R,#TAB MOV A,33H MOVC A,A+DPTR SETB WELA2 MOV P0,#0F7H NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1 DJNZ R4,LOOP3RET;延时D10ms: MOV R5,#14H DL: MOV R6,#0FFH DL0: DJNZ R6,DL0 DJNZ R5,DL RET;延时D10ms1: MOV R5,#01H DL1: MOV R6,#0FFH DL2: DJNZ R6,DL2 DJNZ R5,DL1RETTAB: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H END第 31 页 共 36 页

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!