单片机设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-8-
单片机原理及系统课程设计报告
MOV A,LED_2 MOVC A,@A+DPTR CLR P2.1 ADD A,#0X80 MOV P0,A LCALL DELAY SETBP2.1 RET DELAY:MOV R6,#1 ;延时 5 毫秒 D1: MOV R7,#100 DJNZR7,$ DJNZR6,D1 RET TABLE: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END
3.2 Protues 仿真电路
3.2.1 电路工作原理 图 4-2 所示。A/D 转换由集成电路 0808 完成,0808 具有 8 路模拟输入端口, 地址线 (23~25 脚) 可决定对哪一路模拟输入作 A/D 转换。 22 脚为地址锁存控制, 当输入为高电平时,对地址信号进行锁存。6 脚为测试控制,当输入一个 2μs 宽高 电平脉冲时,就开始 A/D 转换。7 脚为 A/D 转换结束标志,当 A/D 转换结束时,7 脚输出高电平。9 脚为 A/D 转换数据输出允许控制,当 OE 脚为高电平时,A/D 转 换数据从端口输出 10 脚为 0808 的时钟输入端,利用单片机 30 脚的六分频晶振频 率再通过 14024 二分频得到 1MHz 时钟。单片机的 P1、P3.0~P3.3 端口作为四位 LED 数码管显示控制。P3.5 端口用作单路显示/循环显示转换按钮,P3.6 端口用作 单路显示时选择通道。P0 端口作 A/D 转换数据读入用,P2 端口用作 0808 的 A/D 转换控制。 3.2.2 电路仿真图
-9-
数字电压表(Digital Voltmeter)简称 DVM,它是采用数字化测量技术,把连 续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。 目前, 由各种单片 A/D 转换器构成的数字电压表, 已被广泛用于电子及电工测量、 工业自动化仪表、 自动测试系统等领域, 显示出强大的生命力。 与此同时, 由 DVM 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭 新水平。
-1-
单片机原理及系统课程设计报告
完成这种转换的电路叫模数转换器(A/D) 。数字电压表的核心部件就是 A/D 转换 器,由于各种不同的 A/D 转换原理构成了各种不同类型的 DVM。一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。 本设计以 AT89C51 单片机为核心,以逐次比较型 A/D 转换器 ADC0808、液 晶显示器 LCD 为主体,构造了一款简易的数字电压表,能够测量 2 路 0~5V 直流 电压,最小分辨率 0.02V。
-7-
单片机原理及系统课程设计报告
MOV A,B MOV B,#10 MOV TEMP,A SUBB A,# 25 JC JUD3 MUL AB SUBB A,#5 MOV B,#51 DIV AB ADD A,#05H SJMP V1 JUD3: MOV A,TEMP MUL AB MOV B,#51 DIV AB V1: MOV LED_1,A ;小数点后第一位 MOV A,B MOV TEMP,A SUBB A,# 25 JC V1_2 MUL AB SUBB A,#5 MOV B,#51 DIV AB ADD A,#05H SJMP V2 V1_2: MOV A,TEMP MUL AB MOV B,#51 DIV AB V2: MOV LED_0,A ;小数点后第二位 WERT: LCALL DISP LJMP WAIT INT_T0: CPL CLOCK ;提供 ADC0809 信号 RETI DISP:MOV A,LED_0 ;显示子程序 MOVC A,@A+DPTR CLR P2.3 MOV P0,A LCALL DELAY SETBP2.3 MOV A,LED_1 MOVC A,@A+DPTR CLR P2.2 MOV P0,A LCALL DELAY SETBP2.2
-2-
单片机原理及系统课程设计报告
图 3-1 Protues 仿真电路原理图
3.3.1ADC0808 简介
逐次逼近型 A/D 转换器 ADC0808 由八路模拟开关、 地址锁存与译码器、比较 器、D/A 转换器、寄存器、控制电路和三态输出锁存器等组成。 ADC0808 引脚功能如下: IN0~IN 7:8 路模拟量输入。A、B、C:3 位地址输入,2 个地址输入端的不 同组合选择八路模拟量输入。 ALE:地址锁存启动信号,在 ALE 的上升沿,将 A、B、C 上的通道地址锁 存到内部的地址锁存器。 D0~D7:八位数据输出线,A/D 转换结果由这 8 根线传送给单片机。 OE:允许输出信号。当 OE=1 时,即为高电平,允许输出锁存器输出数据。 START:启动信号输入端,START 为正脉冲,其上升沿清除 ADC0808 的内部 的各寄存器,其下降沿启动 A/D 开始转换。 EOC:转换完成信号,当 EOC 上升为高电平时,表明内部 A/D 转换已完成。
-3-
单片机原理及系统课程设计报告
26 27 28 1 2 3 4 5 6 7 9 10 11 12 16
IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 START EOC OUTPUT ENABLE CLOCK VCC VREF(+) VREF(-)
ADD A ADD B ADD C ALE 2 -1MSB 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 2 -8LSB GND
25 24 23 22 21 20 19 18 8 15 14 17 13
四、 软件设计
4.1 初始化程序
图 3-2 ADC0808 引脚图
系统上电时,初始化程序将 70H~77H 内存单元清 0,P2 口置 0。
4.2 显示子程序
显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的 A/D 转 换数据放在 70H~77H 内存单元中,测量数据在显示时需转换成为十进制 BCD 码 放在 78H~7BH 内存单元中,其中 7BH 存放通道标志数。寄存器 R3 用作 8 路循 环控制,R0 用作显示数据地址指针。
2.3 数字电压表原理
数字电压表的基本工作原理是利用 A/D 转换电路将待测的模拟信号转换成数 字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于 一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等 优点。 电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,
模/数转换测量子程序用来控制对 0808 八路模拟输入电压的 A/D 转换,并将 对应的数值移入 70H~77H 内存单元。
五、 总结
万事开头难,在刚拿到题目时还真有些不知所措的感觉,在经过仔细琢磨, 和参考资料的帮助下,才渐渐有了思路。经过一周时间的制作之后,终于,完成 了这次课程设计。 当然,在设计中必不可少的会出现一些问题,如在软件设计时,程序很难编 写,无法入手。先是自己构造程序思路,之后通过在网上查阅资料,请教同学等 方式,解决了问题,完成了这重要的一步,使得编程能力有了一定的提高。还有 在仿真连接时,开始时,系统总是无法工作,或是工作不正常,但最后在仔细排 查之下,终于发现了错误,完成了仿真实现。 从最开始的原理,到中间的软硬件设计,到最后的仿真实现,这次课程设计 都使的我对于单片机的原理与功能有了更加深刻的理解,也对于单片机的应用范 围有了更广阔的认识,提高了我们在计算机方面的知识水平与应用能力。 最后,感谢在设计过程中指导我们的老师,和帮助我的同学。
二、 设计方案及原理
2.1 设计要求
以单片机为核心,设计一个数字电压表。采用中断方式,对 2 路 0~5V 的模 拟电压进行循环采集,采集的数据送 LED 显示,并存入内存。超过界限时指示灯 闪烁。
2.2 设计思路
本题目本质上是以单片机为控制器,ADC0809 为 ADC 器件的 AD 转换电路, 设计要求的电压显示,是对 ADC 采集所得信号的进一步处理。 为得到可读的电压值, 需根据 ADC 的原理, 对采集所得的信号进行计算, 并显示在 LED 上。本项目中 ADC0809 的参考电压为+5V,根据定义,采集所得的 二进制信号 data 所指代的电压值为: data 5V 256 而若将其显示到小数点后两位,不考虑小数点的存在(将其乘以 100) ,其计 算的数值为: data 100 5 V data 1.96 V 256 将小数点显示在第二位数码管上,即为实际的电压
4.3 主程序
在刚上电时,系统默认为循环显示 8 个通道的电压值状态。当进行一次测量 后,将显示每一通道的 A/D 转换值,每个通道的数据显示时间为 1s 左右。主程序 在调用显示子程序和测试子程序之间循环,主程序流程图见图 4-1
-4-
单片机原理及系统课程设计报告
图 4-1 主程序流程图
4.4 模/数转换测量子程序
单片机原理及系统课程设计
专 班 姓 学 业: 级: 名: 号: 自动控制 动 1001 武明强 201008430
指导教师:
评语:
平时(40)
修改(30)
报告(30)
总成绩
兰州交通大学自动化与电气工程学院
2012 年 7 月 1 日
单片机原理及系统课程设计报告
基于单片机的数字电压表设计 一、 引言
三、 硬件设计
Leabharlann Baidu3.1 模块设计电路
单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处 理,主要由单片机、时钟电路、复位电路组成。 3.1.1 时钟电路 单片机工作的时间基准是由时钟电路提供的,在单片机的 XTAL1 和 XYAL2 两个管脚接一只晶振及两只电容就构成了单片机的时钟电路, 电路中电容器 C1 和 C2 对振荡频率有微调作用, 通常取(30±10)pF 石英晶体选择 6MHz 或 12MHz 都可 以。 3.1.2 系统复位电路 单片机的 RST 管脚为主机提供了一个外部复位信号输入口。复位信号是高电 平有效,高电平有效的持续时间为 2 个机器周期以上。单片机的复位方式可由手 动复位方式完成。
六、 参考文献
[1] 王为青,程国刚.单片机应用开发技术[M],北京,电子工业出版社
-5-
单片机原理及系统课程设计报告
[2] 阎石.数字电子技术基础,北京,高等教育出版社 [3] 邓元庆.数字电路与逻辑设计,北京,电子工业出版社
-6-
单片机原理及系统课程设计报告
附录源程序:
LED_0 EQU 30H LED_1 EQU 31H LED_2 EQU 32H ;存放段码 TEMP EQU 43H ADC EQU 35H CLOCK BIT P2.4 ;定义 ADC0809 钟位 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 ORG 0000H SJMP START ORG 0050H LJMPINT_T0 START:MOV LED_0,#00H MOV LED_1,#00H MOV LED_2,#00H MOV DPTR,#TABLE ;段码表首地址 MOV TMOD,#02H MOV TH0,#245 MOV TL0,#00H MOV IE,#82H SETBTR0 WAIT: CLR ST SETB ST CLR ST CLR P3.7 CLR P3.6 ;启动 AD 转换 JNB EOC,$ ;等待转换结束 SETB OE MOV ADC,P1 ;读取 AD 转换结果 CLR OE MOV A,ADC MOV TEMP,A SUBB A,#128 ;减小一半量程 JC JUD1 ;小于一半量程则跳转 SETB P3.6 ;大于一半量程则蜂鸣器响 JUD1: MOV A,TEMP ;判断是否小于四分之一量程 SUBB A, #64 JC JUD2 SETB P3.7 ;大于四分之一量程则使二极管闪烁 JUD2: MOV A,TEMP MOV B,#51 ;AD 转换结果转换成 BCD 码 DIV AB MOV LED_2,A ; 整数位