单片机课程设计数字电压表protus仿真.doc

上传人:仙人指路1688 文档编号:4147456 上传时间:2023-04-07 格式:DOC 页数:26 大小:614.50KB
返回 下载 相关 举报
单片机课程设计数字电压表protus仿真.doc_第1页
第1页 / 共26页
单片机课程设计数字电压表protus仿真.doc_第2页
第2页 / 共26页
单片机课程设计数字电压表protus仿真.doc_第3页
第3页 / 共26页
单片机课程设计数字电压表protus仿真.doc_第4页
第4页 / 共26页
单片机课程设计数字电压表protus仿真.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机课程设计数字电压表protus仿真.doc》由会员分享,可在线阅读,更多相关《单片机课程设计数字电压表protus仿真.doc(26页珍藏版)》请在三一办公上搜索。

1、目录1引言12 PROTEUS软件仿真22.1 PROTEUS软件简介22.1.1 PROTUES ISIS的启动22.1.2 PROTUES ISIS的工作界面32.2 Keil简介32.3 利用PROTUES ISIS仿真与调试43 主要芯片简介53.1 AT89C51芯片53.2 ADC080873.3 74LS16183.4 七段数码管简介94 系统总体设计104.1 工作原理104.2 系统结构框图104.3 系统硬件设计104.3.1 单片机的选择104.3.2 时钟电路的设计114.3.3复位电路114.3.4 A/D转化电路及测量电路的设计124.3.5 显示模块设计124.4

2、系统程序设计134.4.1 初始化程序134.4.2主程序134.4.3 A/D转换子程序的设计144.4.4 循环显示的程序154.4.5 显示程序164.4.6 中断子程序、延时子程序和查表175.1 总体设计仿真电路185.2 仿真结果196 总结21参考文献22附录231引言数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精度高、转换速度快、性能稳定

3、的电压表才能符合测量的要求。为此,我们设计了数字电压表,此作品主要由A/D0808转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:双积分型和逐次逼近型。双积分型A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)

4、式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89C51单片机为核心,以双积分型A/D转换器ADC0808、七段数码管为主体,构造了一款简易的数字电压表,能够实现自动和手动测量8路0.005.00V的直流电压,最小分辨率为0.02V。2 PROTEUS软件仿真2.1 PROTEUS软件简介PROTEUS ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于

5、Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:1.实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。2.支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。3.提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同

6、时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。4.具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。2.1.1 PROTUES ISIS的启动双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图2-1所示屏幕,表明进入PROTEUS ISIS集成环境。图2-1 PROTEUS ISIS启动时

7、的屏幕2.1.2 PROTUES ISIS的工作界面PROTEUS ISIS的工作界面是一种标准的Windows界面,如图2-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图2-2 PROTEUS ISIS的工作界面2.2 Keil简介1.系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51

8、软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编

9、辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,注意事项 (1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 (2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 (3)仿真芯片的31脚(/EA)已接

10、至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。2.3 利用PROTUES ISIS仿真与调试1.将所设计的硬件电路用PROTEUS画出来,联好各个引脚,图如图1-7。2.在Keil里面将编写的程序编译并调试好,没有错误后生成一个*.hex的文件。3.在PROTEUS中将Keil中生成的*.hex的文件软件下载到AT89C51芯片中,保存并运行,看结果是否正确,有问题的话继续调试软硬件,直到结果与预期的基本一致。仿真结果举例如图3-3、3-4

11、所示。转换的自动和手动模式转换可以通过按钮SB1和SB0来切换。当启动仿真时,电压表开始工作,并默认进入自动切换通道状态,想要在当前显示的某一路手动停止通道切换,以使电压表之后一直保持在该通道测量,只需按一下SB0。想要结束单一某一路的测量,只需按一下SB1就可以使电压表恢复自动变换通道的测量和显示方式。3 主要芯片简介3.1 AT89C51芯片主要功能:1.8位CPU;2.片内振荡器频率范围1.2-12MHZ;3.128字节片内数据存储器;4.4KB片内程序存储器5.程序存储器寻址范围64KB;6.片外数据存储器寻址范围64KB;7.21字节专用寄存器;8.4个8位并行I/O口:P0 P1

12、P2 P3;9.1个全双工串行I/O口;10.2个16位定时器/计数器;11.中断系统有5个中断源,可编程为2个优先级;12.111条指令;13.有很强的位寻址、位处理能力;14.片内单总线结构;15.单一5V电源。MCS-51系列单片机是双列直插式封装的40引脚芯片。图3-1 AT89C51芯片引脚图P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出

13、指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。 P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉

14、低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3

15、口亦作为AT89C51特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次

16、访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当AT89C51从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接V

17、CC。在flash编程期间,也接收12伏VPP 电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2 ADC0808ADC0809的内部逻辑结构图如图2-2所示。ADC0809由8路模拟开关,地址锁存与译码器、比较器、256树形开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。IN7 IN0 ALEDB08路模拟开关8位A/D转换器地址锁存与译码三态输出锁存缓冲器STARTCLKGNDVccOEEOCLSBDB7MSBADDAADDBADDC图3-2 ADC0809的内部逻辑结构图CLK:时钟信号,典型值为500640KHZVR

18、EF+、VREF- :基准电压输入,通常 VREF+接5V、VREF- 接地ALE:地址锁存允许,其上升沿锁存ADDCADDA的地址信号 START:A/D转换启动信号,上升沿启动A/D转换。EOC:转换完成信号,启动转换后,EOC输出低电平,转换完成后输出高电平。该信号可用作向单片机提出中断申请,或者作为查询信号。OE:数字量输出允许信号,该引脚输入高电平时,转换后的数字量从D0D7脚输出。IN0IN7:模拟电压输入,八个引脚可分别接八路模拟信号。ADDA、ADDB、ADDC:通道选择信号,其输入电平的组合选择模拟通道IN0IN7之一 。 3.3 74LS16174LS161是常用的四位二进

19、制可预置的同步加法计数器,他可以灵活的运用在各种数字电路,以及单片机系统种实现分频器等很多重要的功能,:图3-3 74ls161引脚图管脚图介绍:时钟CP和四个数据输入端P0P3清零/MR使能CEP,CET置数PE数据输出端Q0Q3以及进位输出TC. (TC=Q0Q1Q2Q3CET)表3-1 74LS161功能表输 入 输 出 CR CPLD EPETD3 D2 D1 D0 Q3 Q2 Q1 Q0 0 0 0 0 0 1 0 d c b a d c b a 1 1 0 Q3 Q2 Q1 Q0 1 1 0 Q3 Q2 Q1 Q0 1 1 1 1 状态码加1从74LS161功能表功能表中可以知道,

20、当清零端CR=“0”,计数器输出Q3、Q2、Q1、Q0立即为全“0”,这个时候为异步复位功能。当CR=“1”且LD=“0”时,在CP信号上升沿作用后,74LS161输出端Q3、Q2、Q1、Q0的状态分别与并行数据输入端D3,D2,D1,D0的状态一样,为同步置数功能。而只有当CR=LD=EP=ET=“1”、CP脉冲上升沿作用后,计数器加1。74LS161还有一个进位输出端CO,其逻辑关系是CO= Q0Q1Q2Q3CET。合理应用计数器的清零功能和置数功能,一片74LS161可以组成16进制以下的任意进制分频器3.4 七段数码管简介7段LED数码管,是在一定形状的绝缘材料上,利用单只LED组合排

21、列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。 LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如将“b”和“c”段接上正电源,其它端接地或悬空,那么“b”

22、和“c”段发光,此时,数码管显示将显示数字“1”。而将“a”、“b”、“d”、“e”和“g”段都接上正电源,其它引脚悬空,此时数码管将显示“2”。依此类推。4 系统总体设计4.1 工作原理系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。通过键盘选择八路通道中的一路,将该路电压送入ADC0808相应通道,单片机软件设置ADC0808开始A/D转换,转换结束ADC0808的EOC端口产生高电平,同时将ADC0808的EO端口置为高电平,单片机将转换后结果存到片内RAM。系

23、统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。4.2 系统结构框图根据项目要求,确定该系统的设计方案,图4-1为该系统设计方案的结构框图。硬件电路由6部分组成:单片机、时钟电路、复位电路、LED显示电路、A/D转换器和测量电压输入电路。 图4-1 系统结构框图4.3 系统硬件设计4.3.1 单片机的选择设计这样的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。此电路选择Atmel公司生产的AT89C51。AT

24、89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。它以较小的体积、良好的性价比倍受青睐4.3.2 时钟电路的设计单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器C1和C2对振荡频率有微调作用,通常取(3010)pF石英晶体选择6MHz或12MHz都可以。时钟电路如图4-2所示。图4-2系统时钟电路 4.3.3复位电路单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的

25、持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。电阻、电容器的参考值R1=10K、C1=10uF、Ch=0.01uF。复位电路如图4-3所示。图4-3系统复位电路4.3.4 A/D转化电路及测量电路的设计A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0+5V。引脚功能如下:(1) IN0IN7:8路模拟量输入。(2) ADDA、ADDB、ADDC:模拟量输入通道地址选择,其8位编码分别对应IN0

26、IN7.(3) ALE:地址锁存允许,上升沿将通道选择信号存入地址锁存器。(4) START:ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns以上,其上升沿将内部逐次逼近寄存器清零。(5) EOC:转换解释信号,可做为中断请求信号或供CPU查询。(6) CLK:时钟输入端,要求频率范围在10kHz1.2MHz.(7) OE:允许输出信号。(8) Vcc:芯片工作电压。(9) VREF(+)、VREF(-):基准参考电压的正、负值。(10) OUT1OUT8:8路数字量输出端。基于上述,单片机的P2口高四位分别对应ADC0808的CLK、ALE、EOC和OE端,用软件设定给定的值。I

27、N0IN7分别接上滑动变阻器,另一端全部接电位器,根据选择的通道,电位器选择测量相应通道的电位。4.3.5 显示模块设计单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。显示器、键盘电路就是用来完成人机对话活动的人机通道。在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。4.4系统程序设计4.4.1 初始化程序ORG 0000HSJMPSTARTORG 0003HLJMP INT

28、01START:MOVDPTR,#TAB4.4.2主程序图4-4 主程序流程图它包含通道的选择及模拟量转化为数字量的算法,把通道选择的值和数字量整数部分,十分位,小数位分别放入寄存器,为下面的显示子程序作准备。WAIT: MOV A,#0FFHMOV P3,AMOV A,P3ANL A,#07H ;使P3口的低三位为1,从而选择通道JNB P3.3,LOOP1 ;判断P3.3是否为0,若为0跳转,即有中断MOV R0,A ;把控制通道的值送给累加器R0SWAP A MOV P3,A ;通道7有效CLR P2.5 ;允许锁存输出SETB P2.5 ;一位位输出CLR P2.5 JNB P2.6,

29、$;为1时AD转换结束SETB P2.7 ;数据输出允许信号MOV A,#0FFH MOV P1,AMOV A,P1CLR P2.7MOV B,#51;算出对应的电压的整数倍DIV AB ;算出电压的值的小数部分并存储MOV R1,AMOV A,B MOV B,#2MUL ABMOV B,#10DIV ABMOV R2,AMOV R3,BLCALLDISPSJMP WAIT4.4.3 A/D转换子程序的设计 A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低

30、电平,则继续扫描。图4-5 A/D转换子程序流程图MOV A,#0FFH MOV P3,AMOV A,P3ANL A,#07HJNB P3.3,LOOP1MOV R0,ASWAP AMOV P3,A ;通道7有效 CLR P2.5 ;允许锁存输出 SETB P2.5 CLR P2.5 ;一位位的输出 JNB P2.6,$;为1时ad转换结束SETB P2.7 ;数据输出允许信号 4.4.4 循环显示的程序即有中断(P3.3=0)时,数码管从0到7八个通道依次循环显示。它是由低电平触发引起的的中断。此段程序也包含了八路模拟直流电压转化为数字电压的算法,并把通道选择的值和数字量整数部分,十分位,小

31、数位分别放入寄存器,为下面的显示子程序作准备。LOOP1:INC R0MOV A,R0CJNE A,#08H,NEXT ;判断是否是八个通道显示完,如果是则进行下MOVA,#00H ;一轮的循环NEXT:MOV R0,ASWAP AMOV P3,ACLR P2.5 SETB P2.5CLR P2.5 JNB P2.6,$SETB P2.7 MOV A,#0FFHMOV P1,AMOV A,P1CLR P2.7MOV B,#51DIV ABMOV R1,A待添加的隐藏文字内容1MOV A,BMOV B,#2MUL ABMOV B,#10DIV ABMOV R2,AMOV R3,BLCALL DI

32、SPJNB P3.3, LOOP1SJMP WAIT4.4.5 显示程序它包含了位码和段码的设置,位码控制哪个数码管显示;段码控制显示的数值DISP: MOV R4,#0FHLOOP:MOVA,R3MOVCA,A+DPTRMOVP0,ALCALLDELAYSETBP2.3MOVA,R2MOVCA,A+DPTRCLRP2.2MOVP0,ALCALLDELAYSETBP2.2MOVA, R1MOVCA,A+DPTRADD A,#80HCLR P2.1MOV P0, ALCALLDELAYSETBP2.1MOVA,R0MOVCA,A+DPTRCLRP2.0MOVP0,ALCALLDELAYSETBP

33、2.0 DJNZ R4,LOOPRET4.4.6 中断子程序、延时子程序和查表INT01: INC R0 RETIDELAY: MOVR6,#20D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH5 数字电压表硬件电路及仿真5.1 总体设计仿真电路图5-1 总体电路设计仿真图说明:图下部分为八通道直流电压输入电路,它由滑动变阻器控制输入电压的大小,从而控制ADC0808各输入端的电压示数,从而变化地显示在数码管上。74LS161为四位二进制加法计数器,用来控制P3口的低三位,进而

34、控制ADC0809的A、B、C三个地址选择端,从而控制不同的输入通道。用软件设计使ADC0808工作输出的数字量通过p1口输入单片机,从单片机的p0口输出到数码管中显示出来。单片机P2口的低四位作为LED位码的输出控制信号。当P1口输出段码信号的BCD码后,输出具有一定驱动能力的七段字形码,由于4-LED的段码输入管脚是并联在一起的,所以每一位LED的段码输入管脚都能获得这个段码信号。若要控制在每一时刻只有一位LED被点亮,必须靠位码信号控制。P2口低四位输出位码信号后接到LED的位码控制端,因此P2口的低四位的位码信号在每一时刻只有一位是“1”,其他位全为“0”,然后按时间顺序改变输出“1”

35、的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。5.2 仿真结果图5-2 通道1仿真结果图5-3 通道7仿真结果补充:当调整滑动变阻器时,相应的电阻值在数码管上也同时显示。当按下switch键时,会显示从0-7通道的电压值显示,按下button键单路选择显示。6 总结做了一周的课程设计,我基本上圆满的完成了课设的相关任务,达到了课程设计的技术要求,相信这对以后也是有帮助的。通过课程设计这一实践环节,我对这个学期以来所学到知识有了更深层的理解,而且自己分析问题和解决实际问题的能力也有一定的提高。同时在这个过程中我也发现了自己许多的不足,包括对所学的基础知识理解不是很透彻,以至于电

36、路设计了很长时间,最后还得连夜赶着写论文。还有对理论知识的运用不很灵活,常常在一个问题想半天,结果还是换一个角度好一点。本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由七段数码管显示测量结果。仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.005.00V,最小分辨率为0.02V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值

37、较小的信号经适当放大后再测量,可显著提高精度。认真的做完这次单片机课程设计后,我感觉自己有了很大的提高。但是由于时间的原因,这次课程设计没能达到自己预想的那么好,所幸的是功夫不负有心人,所有功能指标都已基本实现了。在接下来的时间里,我会继续把它做好。最后我还总结出了一个结论,当认真的投入到一项工作中时,不但会收获许多,而且还会感觉到很大的乐趣。参考文献1 张刚毅,彭喜元.单片机原理与应用设计.北京:电子工业出版社,20082 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用.北京:清华大学出版社,20023 黄智伟.全国大学生电子设计竞赛训练教程.北京:电子工业出版社,20044 汪德彪.MC

38、S-51单片机原理及接口技术(第一版).北京:电子工业出版社,20035 徐爱钧.智能化测量控制仪表原理与设计(第二版).北京:北京航空航天大学出版社,2004附录ORG 0000HSJMPSTARTORG 0003HLJMP INT01 ;中断入口地址START:MOVDPTR,#TAB ;表首地址送给DPTRWAIT: MOV A,#0FFH MOV P3,AMOV A,P3ANL A,#07H ;选择ADC0808通道JNB P3.3,LOOP1 ;判断是否有中断MOV R0,A ;把控制通道的值送给寄存器SWAP A MOV P3,ACLR P2.5 ;启动AD转换SETB P2.5C

39、LR P2.5 JNB P2.6,$SETB P2.7 ;允许AD转换输出MOV A,#0FFH ;P1口为准双向口,先输入1MOV P1,A MOV A,P1CLR P2.7MOV B,#51;计算,以使其在数码管显示DIV ABMOV R1,A ;转换出的整数部分MOV A,B MOV B,#2MUL ABMOV B,#10 DIV ABMOV R2,A ;转换出的十分位MOV R3,B ;转换出的百分位LCALLDISPSJMP WAITLOOP1:INC R0 MOV A,R0CJNE A,#08H,NEXT ;控制循环次数MOVA,#00HNEXT:MOV R0,A SWAP AMO

40、V P3,ACLR P2.5 SETB P2.5CLR P2.5 JNB P2.6,$SETB P2.7 MOV A,#0FFHMOV P1,AMOV A,P1CLR P2.7MOV B,#51DIV ABMOV R1,AMOV A,BMOV B,#2MUL ABMOV B,#10DIV ABMOV R2,AMOV R3,BLCALL DISPJNB P3.3, LOOP1SJMP WAITDISP: MOV R4,#0FH ;显示程序LOOP:MOVA,R3MOVCA,A+DPTRCLR P2.3MOVP0,ALCALLDELAYSETBP2.3 ;控制哪个数码管显示MOVA,R2MOVCA

41、,A+DPTRCLRP2.2MOVP0,ALCALLDELAYSETBP2.2MOVA, R1MOVCA,A+DPTRADD A,#80HCLR P2.1MOV P0, ALCALLDELAYSETBP2.1MOVA,R0MOVCA,A+DPTRCLRP2.0MOVP0,ALCALLDELAYSETBP2.0 DJNZ R4,LOOPRETINT01: INC R0 ;中断子程序 RETIDELAY: MOVR6,#20;延时子程序D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETTAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FHEND

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号