基于单片机的简易数字电压表设计-精品_第1页
基于单片机的简易数字电压表设计-精品_第2页
基于单片机的简易数字电压表设计-精品_第3页
基于单片机的简易数字电压表设计-精品_第4页
基于单片机的简易数字电压表设计-精品_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章课程设计的目的和意义1.1 课程设计的目的1.运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程以及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。2.能够上网查询器件资料,培养对新知识,新技术的独立的学习能力和应用能力。3.能够独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为今后的毕业设计及科研工作奠定良好的基础。1.2课程设计的意义单片机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、

2、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本课题主要实现利用单片机对电压表进行控制。第2章系统方案设计及确定2.1 系统方案的提出根据简易数字电压表设计的需要,为单片机和A/D转换器提供以下设计方案。2.1.1 单片机方案方案一:AT89S51AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Fla

3、sh存储单元。AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes 的随机存取数据存储器(RAM,32个外部双向输入/输出(I/O口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT电路,片内时钟振荡器。方案二:AT89C51AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k字节Flash可擦写存储器(PEROM。AT89C51器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,AT89C51的片内Flash 允许程序存储器通过传

4、统编程器反复编程。由于芯片内集成了通用8位中央处理器和Flash存储单元,功能强大的微处理器ATMEL AT89C51可为许多嵌入式控制应用系统提供高度灵活、高性价比的解决方案。AT89C51具有如下特点:4k Bytes Flash存储器、128 bytes的RAM以及32个I/O口、2个16位定时/计数器,5个中断优先级2层中断嵌套中断、1个全双工串行通信口、片内时钟振荡器。2.1.2 A/D转换器方案方案一:ADC0808ADC0808是逐次逼近型A/D转换器,它能把输入的模拟电压直接转换为输出地数字代码,而不需要经过中间变量。主要由比较器,环形分配器,控制门,寄存器等组成。方案二:AD

5、C0809ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。2.2 方案比较及确定2.2.1 单片机的选择AT89S51与A T89C51相比,外型管脚完全相同,但AT89S51比AT89C51新增了一些功能,支持在线编程,烧写次数高,工作频率高,电源范围宽,抗干扰性强,加密功能强,性能有了较大提升,价格比89C51低!综上所述:方案一比方案二更佳,因此选择方案一即单片机用AT89S51。2.2.2A/D转换器的选择与ADC0808相比ADC0809 具有转换起停控制

6、端,转换时间为100s,模拟输入电压范围0+5V,不需零点和满刻度校准,工作温度范围为-40+85摄氏度,低功耗,约15mW等特性。综上所述:由于两个方案都可以实现同样的功能,但方案二编程简单,价格便宜,更符合设计要求,因此选择方案二。2.2.3系统设计方案:简易数字电压表设计要求我们可以测量05V范围内的8路输入电压值,并在4位LED数码显示管上可以实现8路循环显示或单路选择显示。其测量最小分辨率为0.02V。注:1. 4位LED显示,一位显示模拟量通道数,3 位显示电压值(0.005.00V;2.使用按键切换8路循环显示和单路显示;3.在单路显示时,使用按键选择待显示的通道。4.按键可采用

7、查询方式,也可采用中断和查询相结合的方式。根据以上设计内容及技术指标,数字电压表按系统功能实现要求,决定控制系统采用AT89S51单片机,A/D转换采用ADC0809。系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量和远程测量结果传送等扩展功能。简易数字电压表系统设计方案框图如下图所示: 图2-1 系统设计方案框图第3章系统硬件设计3.1 AT89S51最小系统设计AT89S51芯片,如图所示,各引脚功能如下:VCC:供电电压。GND:接地。P0口:为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P1口:是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能

8、接收输出4TTL门电流。 图3-1 AT89S51设计P2口:为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高。P3口:管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。P3口也可作为AT89C51的一些特殊功能口,如所示: P3.0 RXD(串行输入口P3.1 TXD(串行输出口P3.2 /INT0(外部中断0P3.3 /INT1(外部中断1P3.4 T0(记时器0外部输入P3.5 T1(记时器1外部输入P3.6 /WR(外部数据存储器写选通P3.7 /RD(外部数据存储器读选通P3口同时为闪烁

9、编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH,不管是否有内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.1 时钟电路AT89S51的时钟电路如图所示,在

10、单片机的XTAL1和XTAL2两个管脚接一个晶振及两个电容构成了时钟电路电路中电容C1和C2对振荡频率有微调作用,在设计时取30uF。晶振为11.0592MHz,故选择12MHz即可。 图3-2 时钟电路图3-3 复位电路3.1.2复位电路AT89S51的复位电路如图所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态,就可以通过按键手动使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。电容C3和电阻R10实现上电自动复位。增加按键开关S1和电阻R9又可实现按键手动复位功能。R9的作用是在S1按下的时候,防止电容C3放电电流过大烧坏

11、开关S1的触点。3.2 A/D转换电路设计3.2.1 ADC0809电路设计ADC0809芯片有28条引脚,各引脚功能如下:IN0IN7:8路模拟量输入端。D0D8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一

12、个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+、REF(-:基准电压。Vcc:电源,单一+5V。GND:地。ADC0809的工作过程如下:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线。表3-1 ADC0809

13、通道选择表 图3-4 ADC0809设计根据设计的需要,我们需要再ADC0809的IN0-IN7通道加八个可调电阻,其电路接法如下图所示: 图3-5 可调电阻电路设计3.2.2 双D触发器电路设计D触发器的状态方程为:Qn+1=D。其状态的更新发生在CP脉冲的边沿, 74LS74为上升沿触发,故又称之为上升沿触发器的边沿触发器,触发器的状态只取决于时针到来前D端的状态。D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等。SN74LS74双D触发器有14个管脚,为2个D触发器串联,4分频每个分500KHz。其设计图如下所示: 图3-6 双D触发器电路设计3.3键盘电路硬件设计键

14、盘分为独立式键盘和矩阵式键盘。本设计采用的是独立式键盘,即各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。使用3位独立式键盘,直接使用AT89S51的P2口连接。其设计图如下所示: 图3-7 按键电路设计3.4 显示电路硬件设计3.4.1 LED显示电路硬件设计最常用的显示器有发光二极管显示器(LED和液晶显示器(LCD。我们设计时主要采用LED数码显示器及其接口电路。LED数码管由8个发光二极管组成,其中7个按“8”型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。共阴极LED电路连接如图3-8所示, 8支发光二极管的阴极共同接到

15、地上,所以叫共阴极LED,在每个发光二极管的阳极接的电阻将起到保护作用。在输入管脚接高电平时,对应的发光二极管将会发光。适当编码后,8支发光二极管组合起来就可以显示数据了。共阳极LED电路连接如图3-9所示,8支发光二极管的阳极共同接到电源上,所以叫共阳极LED,在每个发光二极管的阳极接的电阻将起到保护作用。在输入管脚接低电平时,对应的发光二极管将会发光。和共阴极LED一样,适当编码后,8支发光二极管组合起来就可以显示数据了。 3-8共阴极接法原理图3-9共阳极接法原理图静态显示时,数据是分开送到每一位LED上的;而动态显示时,是数据送到每一个LED上,再根据位选线来确定是哪一位LED显示。静

16、态显示亮度很高,但口线占用较多;动态显示占用口线数目较少,适合用在显示位数较多的场合,但显示位数的增多,将占用大量的CPU时间。综上所述,根据共阴极,共阳极和静态显示,动态显示各自的优缺点,我采用的是共阳极,动态显示来完成该显示电路的硬件设计。 图3-10显示电路设计3.4.2 74LS06 驱动电路设计74LS06为集电极开路输出的六组反相驱动器。其电路设计如下所示: 图3-11 74LS06驱动电路设计3.4.374LS573驱动电路硬件设计74LS573是带三态输出的8位锁存器,共有8个输入端D1D8及8个输出端Q1Q8。当三态端OE为有效低电平,锁存器处于透明工作状态,即锁存器的输出状

17、态随数据端的变化而变化,即脚1=Di(I=1,2,8。输出端Qi不再随输入端的变化而变化,而一直保持锁存前的值不变。可直接与单片机的锁存控制信号端ALE相连,在ALE的下降沿进行地址锁存。其设计图如下: 图3-12 74LS573驱动电路设计另外,74LS573芯片虽然有锁存能力,但在使用时必须加限流电阻。 图3-13 限流电阻第4章系统软件设计根据需要,可将系统软件设计分为以下六个模块,分别为主程序模块,A/D转换子程序模块,8路循环显示控制子程序模块,单路显示控制子程序模块,显示控制程序模块以及按键子程序。4.1 系统软件设计内存分配软件设计内存分配如下所示:1.显示缓冲区:30H-40H

18、2.K0标志位:50H3.K1标志位:51H4.堆栈区:60H-7FH 栈顶为60H4.2 系统主程序设计初始化中主要对AT89S51,ADC0809的管脚和数码管的位选进行初始化设置。准备工作做好后便启动ADC0809对IN0脚输入进的05V电压模拟信号进行数据采集并转换成相对应的0255十进制数字量。主程序就是在A/D转换和显示子程序之间循环执行。主程序流程图如下所示: 图4-1 主程序流程图4.3 A/D转换子程序设计A/D转换子程序的功能是采集数据,在启动ADC0809对模拟量输入信号进行转换时,通过判断EOC(P3.1引脚来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则

19、把OE置位,将转换完成的数据读取即P2.5=1时指向下个通道,存储数据。最后判断8路采集是否完毕,若采集完毕,则结束;若未采集完毕则返回到启动A/D。其流程图如下: 图4-2 A/D转换子程序流程图4.4 八路循环显示控制子程序设计设置初始值以后运用标度变换知识,编写算法将0255十进制数字量转换成0.005.00V的数据,公式如下: 其中 接着输出到显示子程序进行显示,通过调用第一个按键子程序来判断八路、单路之间是否有切换。经过延时后判断八路采集是否显示完全,若显示完全则结束;如果还没有显示完全,则返回到标度变换,继续调用显示子程序。其流程图如下所示: 图4-3 八路循环显示控制子程序流程图

20、4.5 单路显示控制子程序设计首先选择通道采样值,经过标度变换后,调用显示子程序,接着调用第二个按键子程序,K1依次加1,经过延时后返回。其流程图如下所示: 图4-4 单路循环显示控制子程序流程图4.6 显示子程序设计显示子程序采用动态扫描法实现三位数码管的数值显示。测量所得的A/D转换数据放在40H内存单元中,测量数据在显示时需转换成10进制BCD码放在40H-47H单元中。寄存器R0用作显示数据地址指针。程序流程图如图所示: 图4-5显示子程序流程图4.7按键子程序设计判断按键,并切换到不同的功能模式中。实现模式切换后可以实现单路显示和循环显示。因按键的机械触点的弹性作用,按键闭合或断开瞬

21、间均伴随一连串抖动,抖动时间一般为510ms。消除抖动是为了防止产生误动作,保证对键闭合一次只作一次处理。软件消抖一般采用延时方法,延时1020ms,判别闭合键释放后再作输入处理。 图4-6 第一个按键子程序流程图图4-7 第二个按键子程序流程图第5章系统调试5.1 调试环境WA VE6000软件在以前的版本基础上做了增加了许多功能,特别是在窗口管理、项目管理和源文件编辑工具上做了较大改进,在WA VE6000环境下的所有窗口均可以放在窗口的同一块区域,各窗口可以直接切换,节省了窗口的面积,使窗口管理更有效。WA VE6000还增强了项目管理和源文件编辑方面的功能,使得项目、文件切换更方便,有

22、效地后退、前进功能使得修改程序更方便。新增加的书签窗口和断点窗口可以有效地管理断点和书签,使得程序员无需在众多的代码和断点中逐行查询,断点信息和书签信息在各自的窗口中显示一目了然。1.项目窗口是用户和源程序文件、目标文件和用户设置等的桥梁,通过项目窗口可以建立项目、设置项目、添加源程序到项目、编译项目等项目操作。信息串口显示项目操作和文件操作后的详细信息,例如打开项目、保存项目、项目编译过程以及出错信息等等。在一个项目调试之前,必须经过新建项目、设置项目、添加模块和包含文件、保存项目、编译项目,最后进入调试项目,其中的所有成功和错误信息都会在该窗口中显示,因此用户在调试项目前,需要观察此窗口是

23、否有错误信息,待排除错误后方可正确调试项目。2.观察窗口用于显示项目中的所有变量和用户自定义变量,能显示常量、函数入口地址、数组变量、结构变量、共用体变量、指针变量等多种复杂的数据类型。用户可以添加用户变量、设置变量类型,使用结合影子存储器、时效分析等功能分析用户程序、数据。变量一旦被修改,将一很醒目的显示被修改过;支持直接修改变量的值,以方便程序的局部调试。 图5-1 观察窗口3.断点窗口通过断点窗口可以管理项目内的断点。可以在断点窗口中直观地看到断点的行号,内容,可以通过断点迅速定位程序所在的位置。4.书签窗口通过书签窗口可以管理项目内的书签,在项目中迅速定位程序位置。5.跟踪窗口显示跟踪

24、器捕捉到的程序执行的轨迹,其中可以看到帧号,时标,反汇编程序,对应的源程序和程序所在的文件名。5.2 调试步骤按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,检查接线否有误,确信没有接错后,接上电源,打开仿真器的电源开关。设置项目,在“仿真器”和“通信设置”栏的下方有“使用伟福软件模拟器”的选择项。将其前面框内的勾去掉。在通信设置中选择正确的串行口。按“好”确认。如果仿真器和仿真头设置正确,并且硬件连接没有错误,就会出现如图的“硬件仿真”的对话框,并显示仿真器、仿真头的型号 在调试时可以采用以下调试方法:1.选择执行| 跟踪功能或按跟踪快捷图标或按F7键进行单步跟踪调试程序。

25、单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。你可以观察程序每步执行的结果,“=>”所指的就是下次将要执行的程序指令。由于条件编译或高级语言优化的原因,不是所有的源程序都能产生机器指令。源程序窗口最左边的“o”代表此行为有效程序,此行产生了可以指行的机器指令。2.要改变单步执行太慢的状况,可以用“执行到光标处”的功能,将光标移到程序想要暂停的地方。选择菜单执行| 执行到光标处功能或F4 键或弹出菜单的“执行到光标处”功能。程序全速执行到光标所在行。如果想下次不想单步调试“Delay”延时子程序里的内容,可以按F8键单步执行就可以全速执行子程序调用,而不会一步

26、一步地跟踪子程序。3.如果程序太长,那就设置断点。将光标移到源程序窗口的左边灰色区,光标变成“手指圈”,单击左键设断点,也可以用弹出菜单的“设置/取消断点”功能或用Ctrl+F8组合键设置断点。如果断点有效图标为“红圆绿勾”,无效断点的图标为“红圆黄叉”。断点设置好后,就可以用全速执行的功能,全速执行程序,当程序执行到断点时,会暂停下来,这时你可以观察程序中各变量的值,及各端口的状态,判断程序是否正确。1. ADDR 0F 地址栏最上面一行标有"ADDR 0 1 F "是地址名称栏,“ADDR”表示集中在一行中16个存储器(或寄存器单元的第一个单元的地址,“0F”表示它的下

27、面对应着16个存储单元(或寄存器,“0”下面对应的2位16进制数,是第一个地址中的内容,“1”下面对应的是第二个地址单元中的内容,“F”下面是第16个存储单元的内容。2. CODE 程序存贮器 它是为用户观察程序存贮器内部信息而设置的,共有64KB的地址空间,但是,在一般情况下只显示16个单元的信息。“ADDR”栏下的是以16进制表示的4位地址,地址后的16个数是这个地址及其随后的16个存储单元的内容。如果希望同时看到更多的信息,可用""或""键选择下一行的16个地址。若用鼠标,可拖动右边的滚动条查看下面的16个单元,或单击右侧的激增框,将窗口放大到满屏

28、幕,同时查看更多的内容。3. XDATA 数据存储器 它是为用户观察外部数据存贮器的信息而设置的,共有64KB的地址空间。其操作方法与程序窗口”CODE”相同。在仿真87/89系列单片机且P0,P2口作I/O用时,请关闭XDATA窗口。4. DATA 单片机内部数据存储器它包括单片机内部数据存储器共256字节,其中通用寄存器32字节(即4组R0R7,地址为00H1FH;直接可寻址位16个字节,地址为20H2FH,专用寄存器(SFR共128字节,地址为80HFFH。其操作方法与程序窗口“CODE”相同。在内部数据窗口中可以看到CPU 内部的数据值,红色的为上一步执行过程中,改变过的值,窗口状态栏

29、中为选中数据的地址,可以在选中的数据上直接修改数据的十六进制值,也可以用弹出菜单的修改功能,修改选中的数据值。弹出菜单:修改:修改选中数据的值,可以输入十进制,十六进制,二进制的值,与直接修改不同的是,用这种方法可以输入多种格式数据,而直接修改只能输入十六进制数据。46(十进制,2EH(十六进制,00101110B(二进制都是有效的数据格式,5.3 调试过程中遇到的问题及解决方法在调试时经常遇见以问题:1.串口通信经常出错串口通信出错有几种可能:(1电路板有问题, 你可以将仿真头从用户板上取下,将晶振跳接至仿真头上。测试不连电路板时仿真器串口通信是否正常。(2串口电缆连接有问题。通信时仿真器上

30、的指示灯应闪烁,若不闪烁, 说明通信电缆连接有问题或串口号选择不对。(3串口号和波特率选择不对。一般PC 机有两个串口:串口1及串口2在调试程序时应正确选择串口: /S1选择串口1, /S2选择串口2。另外波特率选择不对也会引起通信出错。一般情况下你可以不选择波特率,由软件自动选择一个合适的波特率, 但是对有些机器可能选择得不合适, 这时你可以用几个波特率试试,手工选择一个合适的波特率。如可以输入/S2D 选择串口2降低通信速率。2.仿真调试时是如何“复位”的?如果仿真系统要求“复位”,实际上是仿真系统无法工作,出现这种现象的原因有很多,如晶振跳线位置不正确,用户板上无电源,仿真头接触不良,仿

31、真头的选择和仿真系统内的设置或选项不一致等。如果在使用中出现这种情况,可以先将仿真头从用户板上拔下来,把晶振跳线器放在“1”的位置上,再次进入仿真系统。如果正常,则问题在用户板上,否则问题在仿真器上。3.仿真时工作正常,程序固化后却不能运行?出现这种情况有下列可能性:(1电路板的程序片电路有问题:如PSEN 不通或者接错。使用AT89S51内部的程序,但EA 未接高电平等。(2电路板晶体振荡电路有问题(3用户系统内有需要复位的接口电路,还未完成复位时,如果CPU 就给他们写控制字,可能会造成它们工作的不正常。在这种情况下,CPU 复位后应延时一段时间(如100ms,以确保被完全复位,然后再写控

32、制字。4.调试时为什么不能在源程序上进行?原因是如果源程序文件编译不正确或者链接出错,仿真时就会跳到CPU窗口,出现这种现象,应仔细检查编译和链接是否正确。另外,在PLM语言中,模块文件的头、尾,文件名应相同,比如说,某一模块文件名为ABC.PLM,则该文件的头应有ABC:d0;结尾应该是END ABC;,否则也会出现这种现象。5. 在汇编时出现标号太多怎么办?可以使用调试软件引入过程伪指令来解决这个问题。使用过程伪指令可使用多达1M 的标号, 且允许同名。第6章实习总结经过三周的单片机课程设计,我有了很多的体会和感想。通过本次对简易电压表的设计,我们对单片机这门课程有了更进一步的了解。无论是

33、在其硬件连接方面还是在软件编程方面,都取得了新的收获。本次课程设计采用了AT89S51单片机芯片,与以往我们我们所熟悉的C51芯片有许多不同之处,通过本次实验及查阅相关资料,我们对其之间的区别有了一定的认识,在本课题设计报告的硬件介绍部分也对其作了详细的论述。S51在C51的基础上增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。另外,在对单片机编程方面,我们又掌握了一些新的编程思想,使得程序更为简练、易懂,而且更为严谨,程序执行的稳定性得到了提高。设计中我们还用到了模/数转换芯片ADC0809,以前在学单片机这门课程时只是对其理论知识有了初步的了解。通过本次实验,我们对它的工作原理彻

34、底理解了,对其启动设置、转换结束判断以及输出控制等都基本掌握。电路连接方面,我们对其与单片机的连接也有了更为直观的认识,通过实验的摸索以及必要的理论知识,我们准确的实现了它于单片机的互连。设计过程中,我遇到过许多次失败的考验,比如,自己对单片机编程时遇到了很多阻碍,想要放弃,然而,就在要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。我非常感激实习老师对我的的指导和帮助,没有老师的指导,我只能晕头转向的瞎忙。通过这次设计,这也对我们今后的工作敲响了警钟:要认真的看待每个需要处理的问题,不要认为事情过于简单,不能急于求成,但不要放弃。要保持头脑清

35、醒。单片机是很重要的一门课程,老师和一些工作的朋友都曾说过,如果学好一门单片机,就凭这个技术这门手艺找一个好工作也不成问题。尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习。最后感谢老师对我的精心指导和帮助,感谢同学们对我的帮助。参考文献 1 魏立峰王宝兴.单片机原理及应用技术.北京:北京大学出版社, 2006 . 2 张毅刚. MCS-51实用汇编子程序设计.哈尔滨:哈尔滨工业大学出版社, 2003 . 3 胡汉才. 单片机原理及其接口技术北京:清华大学出版社, 1995 . 4 张毅刚. MCS-51单片机应用与设计.哈尔滨:哈尔滨工业大学出版社, 2003

36、 . 5 马忠梅籍顺心张凯马岩. 单片机的C语言应用程序设计.北京:北京航空航天大学出版社2003 .附录一:程序清单 LED_0 EQU 30HLED_1 EQU 31HLED_2 EQU 32HLED_3 EQU 33HK0 EQU 50HK1 EQU 51HORG 0000HLJMP STARTSTART: MOV LED_0,#00HMOV LED_1,#00HMOV LED_2,#00HMOV LED_3,#00HMOV R0,#40HMOV K0,#00HMOV K1,#00HBEGIN: MOV R0,#40HMOV R2,#08HMOV P2,#00HLCALL adtestM

37、OV R0,#40HMOV R2,#08HLCALL chidubianhuan;通过调用尺度变换来调用八路显示子程序 LCALL KEY00LCALL KEY01AJMP BEGIN;AD采集子程序adtest:SETB P2.3NOPNOPCLR P2.3NOPNOPSETB P2.4NOPNOPCLR P2.4NOPNOPLOOP3: JNB P3.0,LOOP3SETB P2.5MOV A,P0MOV R0,ACLR P2.5INC P2INC R0DJNZ R2,adtest RET;尺度变换chidubianhuan: MOV R4,#30H MOV A,R0 MOV B,#51

38、DIV ABMOV LED_2,A CLR F0MOV A,BSUBB A,#1AH MOV F0,CMOV A,#10 MUL ABMOV B,#51 DIV ABJB F0,BIAO0 ADD A,#5 BIAO0: MOV LED_1,ACLR F0MOV A,BSUBB A,1AHMOV F0,CMUL ABMOV B,#51DIV ABJNB F0,BIAO1ADD A,#5BIAO1: MOV LED_0,AMOV A,R1SUBB A,#40HMOV LED_3,ALCALL KEY00LCALL KEY01LCALL DISPINC R0DJNZ R2,chidubianhuan RET;显示子程序DISP: MOV A,LED_3MOV DPTR,#TABLEMOVC A,A+DPTRCLR P3.7MOV P1,ALCALL DELAY2SETB P3.7MOV A,LED_2MOVC A,A+DPTR CLR P3.6ANL A,#7FHMOV P1,ALCALL DELAY2 SETB P3.6MOV P1,#0FFHMOV A,LED_1MOVC A,A+DPTR CLR P3.5MOV P1,ALCALL DELAY2 SE

温馨提示

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

最新文档

评论

0/150

提交评论