嵌入式微控制器课程设计报告

上传人:第*** 文档编号:56910443 上传时间:2018-10-17 格式:DOCX 页数:33 大小:421.24KB
返回 下载 相关 举报
嵌入式微控制器课程设计报告_第1页
第1页 / 共33页
嵌入式微控制器课程设计报告_第2页
第2页 / 共33页
嵌入式微控制器课程设计报告_第3页
第3页 / 共33页
嵌入式微控制器课程设计报告_第4页
第4页 / 共33页
嵌入式微控制器课程设计报告_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《嵌入式微控制器课程设计报告》由会员分享,可在线阅读,更多相关《嵌入式微控制器课程设计报告(33页珍藏版)》请在金锄头文库上搜索。

1、 1 / 34嵌入式系统设计与嵌入式系统设计与综合实验设计报告综合实验设计报告设计题目:简易数字电压计 专 业: 班 级: 设 计 者: 学 号: 指导教师: 时 间: 2 / 34目录目录 一系统设计要求31.1 设计目的 31.2 设计内容.31.3 设计要求 3二、系统总体设计方案42.1 设计思想 42.2 系统组成 42.3 工作原理说明 42.4 方案设计.4 三、系统硬件设计63.1 系统硬件设计方案 .6 3.2 系统硬件连线图 .6四、系统软件设计84.1 ADC0808 转换模块 84.2 LCD 显示模块 94.3 主程序94.4 程序算法分析94.5 关键程序段说明 .

2、10五、系统调试及结论.115.1调试方法.115.2设计、调试过程中重点问题及解决方法.115.3.运行结果及结论125.3.1 运行结果 .125.3.2 结论 .15六、设计体会.16七、参考文献.17八、源程序.178.1 main 主程序 .188.2 LCD 显示程序 258.3 字模程序313 / 34一、系统设计要求一、系统设计要求11、设计目的、设计目的通过数字电压表的设计,使同学们进一步掌握: (1)AT89C51 汇编语言程序的设计和调试; (2)信号电压的数字测量方法; (3)AD0808 转换器的基本工作原理和应用;(4)微机基本应用系统的设计方法;1.2、设计内容、

3、设计内容设计一个基于单片机控制的简易数字电压表,利用 A/D 实现多通道采样模拟电压值,该数字电压表可以测量 05V 的 3 路输入电压值,并在 LCD 显示器上 3 路同时显示四位数的电压值或单路选择显示四位数的电压值(或在四位 LED 数码管上轮流显示或单路选择显示电压值) 。测量最小分辨率为 0.019V,测量误差约为士 0.02V。通过按键任意设置电压上下限值,当电压超过上下限值时,LED 或者蜂鸣器报警。设计相应的 A/D、键盘、显示接口电路,可在线键盘参数设置、定时检测、显示、报警。1.3 设计要求设计要求(1)针对实验装置已有条件,设计电压测量原理线路;(2)编制相应的测试软件,

4、实现电压测量; (3)实际上机调试,完成综合试验; (4)编写设计说明书(含原理图,程序及说明,实验方法,过程及结果) 。4 / 34二、系统总体设计方案二、系统总体设计方案2.1 设计思想设计思想根据设计要求,选择 AT89C51 单片机为核心控制器件。A/D 转换采用 ADC0808 实现,与单片机的接口为 P0 口和 P1 口的引脚。电压显示采用 LCD 显示器。LCD 显示器的输入,由并行端口 P2 产生2.2 系统组成系统组成整个系统由 AT89C51、LCD 显示器、ADC0808、晶振组成2.3 工作原理说明工作原理说明3 路数字电压表主要利用 A/D 转换器,其过程为如下:先用

5、 A/D 转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过 LCD 显示出来。设计时假设待测的输入电压为 3 路,电压值的范围为 05v,要求能在 4 位 LCD 显示器上同时显示或单路显示。测量的最小分辨率为 0.019v。根据系统的功能要求,控制系统采用 AT89C51 单片机,A/D 转换器。当输入电压为 5V 时,输出的数据值为 255(0FFH) ,因此最大分辨率为0.0196V(5/255) 。ADC0809 具有 8 路模拟量输入端口,通过 3 位地址输入端能从 8 路中选择 3 路进行转换。如每隔一段时间依次轮

6、流改变 3 位地址输入端的地址,就能依次对 3 路输入电压进行测量。LCD 显示器显示采用软件译码动态显示。通过按键选择可以修改显示数据的上下限2.4 设计方案设计方案硬件电路设计由 5 个部分组成; A/D 转换电路,AT89C51 单片机系统,LCD显示系统、时钟电路以及测量电压输入电路。硬件电路设计框图如图 2-1 所示5 / 34时钟电路 A/D 转换电路测量电压输入显示系统AT89C51 P0 P1 P2 P3 图 2-1 数字电压表系统硬件设计框图6 / 34三、系统硬件设计三、系统硬件设计3.1 系统硬件设计方案系统硬件设计方案系统硬件连线图如图 3.2 所示,本系统设计比较简单

7、,数据处理量较小,选用 AT89C51 作为系统核心部分,显示部分用 LCD 显示器显示相应的电压数据,用虚拟仪器里的电压表可以观察显示对应 LCD 显示器的显示电压值,通过计算可以观察显示的电压和实际电压是否一致,并可以计算绝对误差的大小单片机中 CPU 每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU 执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51 单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1 为该放大器的输入端,XTAL2 为该放大器输出端,但形成时钟电路还需附加其他电路1。本

8、设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2 个电容即可,如图 3-1 所示。电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器 C1 和 C2 对震荡频率有微调作用,通常的取值范围是 3010pF,在这个系统中选择了 30pF;石英晶振选择范围最高可选24MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHz,因而时钟信号的震荡频率为 12MHz。3.2 硬件连线图硬件连线图 硬件连线图如图 3-2,整个系统由 A/D 转换电路,AT89C51 单片机系统,LCD 显示系统、时钟电路以及

9、测量电压输入电路7 / 34图 3-2 硬件连线图8 / 34四、系统软件设计四、系统软件设计4.1 ADC0808 转换模块转换模块A/D 转换子程序用于对 ADC0808 中的 3 路输入模拟电压进行 A/D 转换,并将转换的数值存入 3 个相应的存储单元中,如图 4-1 所示。A/D 转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次。A/D 转换流程图(图 4-1)启动转换输出转换结果数值转换开始A/D 转换结 束 EOC=1 ? 显示结束否是图 4-1 A/D 转换流程图9 / 344.2 lcd 显示模块显示模块显示子程序采用动态扫描实现四位 LCD 显示器的数值显示,

10、在采用动态扫描显示方式时,要使得 LCD 显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,为了能够产生比较好的显示效果,本系统显示模块 LCD 的采用300kHz 的频率。在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0 溢出中断功能实现定时,通过软件延时程序来实现延时。4.34.3 主程序主程序程序流程图(图程序流程图(图 4-2)初始化调用 A/D 转换子程序调用显示子程序开始结束图 4-2 主程序程序流程图4.4 程序算法分析程序算法分析程序开始开辟相应空间用于存放 lcd 显示器字型码。初始化显示设计者的专业、班级、学号姓名。用 A/D 转换器对各路电压值进行

11、采样,得到相应的数字量,再按数字量与模拟量成比例关系运算得到相应的模拟电压值,然后把模拟值通过 LCD 显示出来10 / 344.5关键程序段说明关键程序段说明显示程序:四位 LCD 显示器,先在左半边屏写入 yy 列地址, lie 显示列数, xx 行地址,然后在右半边屏写入 yy 列地址, lie 显示列数, xx 行地址,通过调用事先写好的要写入子的字模,在 lcd 显示屏上显示要显示的字。11 / 34五、课程设计及调试中遇到的问题及解决五、课程设计及调试中遇到的问题及解决方法方法5.1 调试方法调试方法利用 proteus 仿真,对程序反复进行编译,结合单步调试方法。5.2 设计、调

12、试中遇到的重点问题及解决方法设计、调试中遇到的重点问题及解决方法1) 开始设计时,没有用到上拉电阻,直接用 LCD 显示器的 DB 引脚与AT89C51 的 P2 口相连,后来通过翻网上查资料才知道使用上拉电阻与LCD 显示器连接,是 LCD 显示器得到正确使用2)设计三个通道测电压时,在通道三上设计采集正弦的电压,由于正弦的幅值随周期一直在变化,不能静态显示,于是只能将对正弦电压的采集改成直流采集,若想对正弦电压进行测量,只能将仿真暂停,实现对正弦某个时间点的电压采集测量显示(正弦某个点测量如图 5-1) 3)LCD 显示电压值时,当显示的电压值超过电压表的量程时,通道一的显示总会出现闪烁的

13、问题,最开始以为是频率或者是延时的问题,后来通过检查程序,发现是在显示程序模块调用显示钱,出现清空程序而导致显示闪烁,将清空程序删除后,显示正常。4)测量显示时,显示的量程不能达到 5v,通过修改编译程序 是问题得到解决5)调用显示子程序,还无法实现实时监测。因为若在中断中调用了显示,显示的延时占用过长系统时间,会发生中断时序错乱,从而导致无法及时读取计数值。12 / 345.3运行结果及结论运行结果及结论5.3.1 运行结果运行结果1、通道三正弦某个点测量,实际值 1.29v,测量值 1.31v,绝对误差 0.02v, 如图 5-1图 5-1 正弦某个时间点的测量值2 2、LCD 的初始化(

14、显示设计者的专业班级、学号、姓名),如图 5-2图 5-2 LCD 初始化 3 3、通道一、二、三的电压值,实际值分别 3.25v、2.20v、1.65v,测量值分别为 3.25v、2.19v、1.64v,绝对误差分别为 0v、0.01v,0.01v,如图 5-313 / 34图 5-3 通道一、二、三的电压值4 4、通过按键改变量程上下限,按键改变下限为 1v,按键改变上限为 4v(初始 化量程为 0-5v),如图 5-414 / 34图 5-4 通过按键改变量程上下限5 5、通过按键改变量程上下限,而使显示的电压值超出上下限,通过显示“超上 限”、“超下限”进行报警,量程为 1-4v 时,

15、通道三为 0.06v,超出下限 1v; 量程为 1-3v 时,通道一为 3.45v,超出量程上限 3 V 如图 5-5图 5-5 电压显示值超出量程范围内15 / 345.3.2 结论结论程序调试完全正确后,利用 proteus 进行仿真,LCD 显示相应的电压,基本符合设计要求16 / 34六、设计体会六、设计体会从一开始的源代码编写我已经感觉到这次课程设计的重要与必要,所以我很认真的完成了这次的任务,设计过程中感觉到单片机知识的不足与欠缺,不过通过查资料和思考,最终还是成功完成了本次设计。经过一段时间的努力,基于单片机的简易数字电压表基本完成。但设计中的不足之处仍然存在。这次设计是我第二次

16、设计电路,并用 Proteus 实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了 Proteus 和 Keil 软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号