基于51单片机的数字电压表的设计.docx
- 文档编号:23870596
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:20
- 大小:405.49KB
基于51单片机的数字电压表的设计.docx
《基于51单片机的数字电压表的设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字电压表的设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字电压表的设计
数字电压表的设计目录
绪论1
第1章系统总体方案选择与说明1
1.1项目分析及其设计1
1.1.1通道转换方案设计1
1.1.2显示部分方案设计1
第2章系统总体结构与系统功能2
2.1系统结构框图2
2.2系统功能2
第3章硬件设计说明及计算方法2
3.1单片机的选择及时钟电路2
3.2驱动模块3
3.3LED显示电路设计与器件选择4
3.4A/D转换模块及转化电路设计6
第4章软件设计与说明7
4.1数字电压表系统软件设计方案确定7
4.2数字电压表应用程序设计9
第5章调试结果及其说明9
5.1调试结果及其说明9
参考文献10
附录A系统原理图11
附录B系统源程序12
绪论
本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC080。
9系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。
简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。
关键词:
单片机AT89C52A/D转换ADC0808数据处理课程设计要求:
利用八位A/D转换器实现分辨率位八位二进制数的电压表,测量结果用四位数码管显示。
第一章系统总体方案与选择实现数字电压表的方案很多,目前广泛采用的时基于74系列逻辑器件,本设计将介绍基于单片机实现的方案。
1.1项目分析及其设计
方案设计此设计包含两个模块,通道转换和显示部分方案。
1.1.1通道转换方案设计方案一:
考虑到ADC0808的8路模拟量输入本质上也是模拟开关,因此可以利用其8个模拟通道中的3个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。
方案二:
利用手动开关实现通道转换。
该方案可简化控制程序,消减系统开销。
缩短反应时间,不足之处在于操作麻烦。
综上所述:
方案二所需元件少、成本低且易于实现,则选此方案。
1.1.2显示部分方案设计
方案一:
单片机的P0、P2口分别接74LS248和ULN2003A芯片来驱动四位数码管
方案二:
直接用单片机的P1、P2口驱动数码管,此处把ADC0808的输出端接P1口,因为P1口能够驱动数码管。
综上所述,两个方案都可行,但方案二所需元件少、成本低,则选择此方案
第二章系统总体结构
2.1系统结构框图
根据项目要求,确定该系统的设计方案,图2-1为该系统设计方案的结构框图。
硬件电路由6各部分组成,即单片机、时钟电路、复位电路、LED显示电路、A/D装唤器和测量电压输入电路。
图2-1系统结构框图
2.2系统功能
在一切准备就绪以后,滑动变阻器RV1的阻值,A/D采样数据,经过单片机的处理,在4位一体的LED数码管管上显示当前电压值。
每改变一次RV1的阻值,在数码管上就会获得一个新的数值。
第三章硬件电路设计
3.1单片机的选择及时钟电路根据初步设计方案的分析,设计这样一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
此电路选择ATmel公司生产的AT89C51。
AT89系列与MCS-51系列单片机相比有两大优势:
第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。
它以较小的体积、良好的性价比倍受青睐。
单片机工作的时间基准是由时钟电路提供的。
在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。
电路中,电容C1和C2对震荡电路有微调的作用,通常的取值范围位(30+10)pF。
石英晶体选择6MHz或12MHz都可以,其结果只是机器周期时间不同,影响计数器的计数初值,此设计取12MHz。
图3-1单片机最小系统
3.2驱动模块
该设计的驱动电路是由74LS245来驱动的。
74LS245是我们常用的芯片,用来驱动LED或其他设备,它是8路同相三态双向总线收发器,课双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当51单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
当片选端CE低电平有效时,AB/BA=0;信号由B向A传输;AB/BA=1,信号由A向B传输;当CE位高电平时,A,B均为高阻
图3-2
74LS245
管脚图
3.3LED显示电路设计与器件选择
单片机应用系统中,通常都需要进行人机对话。
这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。
显示器、键盘电路就是用来完成人机对话活动的人机通道。
图3-3LED显示管脚
LED显示器的驱动是一个非常重要的问题,由图3-2-1可知,显示电路由LED显示器、段驱动电路和位驱动电路组成。
此设计不采用段驱动芯片和位驱动芯片,直接由单片机的P0,P2口驱动,实验证明可行。
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此生产厂家就生产了多种位数、尺寸、型号不同的LED显示器。
在我们的设计中,选择4位一体的共阴极时钟型LED显示器,采用动态显示方式。
图3-4LED动态显示
采用P0口作为LED的段码输出信号,P2口的低四位作为LED位码的输出控制信号。
硬件电路的连接如图3-2-2所示。
该电路的工作原理:
当P0口输出段码信号的BCD码后,输出具有一定驱动能力的七段字形码,由于4-LED的段码输入管脚是并联在一起的,所以每一位LED的段码输入管脚都能获得这个段码信号。
若要控制在每一时刻只有一位LED
被点亮,必须靠位码信号控制。
P2口低四位输出位码信号后接到LED的位码控制端,因此P2口的低四位的位码信号在每一时刻只有一位是“0”,其他位全为“1”,然后按时间顺序改变输出“0”的位置,控制在每一时刻只有一位LED被点亮,达到动态显示的目的。
3.4A/D转换模块及转换电路设计
A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。
能实现这种转换的原理和方法很多,此设计采用ADC0808转换器。
ADC0808是一种逐次逼近型的8位A/D转换器件,片内有8路模拟开关,可输入8个模拟量,单极性,量程为0~+5V。
3.4.1ADC0808简介
1.ADC0808引脚功能
图3-5ADC0808引脚图
(1)IN0~IN7:
8路模拟量输入。
(2)ADDA、ADDB、ADDC模:
拟量输入通道地址选择,其8位编码分别对应IN0~IN7.
(3)ALE:
地址锁存允许,上升沿将通道选择信号存入地址锁存器。
(4)START:
ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns
以上,其上升沿将内部逐次逼近寄存器清零。
(5)EOC:
转换解释信号,可做为中断请求信号或供CPU查询。
(6)CLK:
时钟输入端,要求频率范围在10kHz~1.2MHz.
(7)OE:
允许输出信号。
(8)Vcc:
芯片工作电压。
(9)VREF(+)、VREF(-):
基准参考电压的正、负值。
(10)OUT1~OUT8:
8路数字量输出端。
3.4.2A/D转换电路设计
集成摸数转换芯片ADC0808实现的A/D转换电路被测信号由ADC0808模拟输
入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。
第四章软件设计与说明进行应用软件设计时可以采用模块化结构设计,其优点是:
①每个模块的程序结构简单,任务明确,易于编写、调试和修改;②程序可读性好,对程序的修改可局部进行,其他部分可以保持不变,易于功能扩充和版本升级;③易于使用频繁的子程序可以建立子程序,便于多个模块调用;④便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。
4.1数字电压表系统软件设计方案确定
(1)根据设计要求,根据系统所要完成的功能,设计出图4-1所示的功能模块。
(2)程序的设计
1主程序的设计主程序的内容一般包括:
主程序的起始地址、中断服务额程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。
根据设计要求,设计出如图4-2所示的主程序流程图。
图4-2主程序流程图
图4-3A/D转换子程序流程图
2A/D转换子程序的设计A/D转换程序的功能是采集数据,再整个系统设计中占有很高的地位。
当系统置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。
若输入为低电平,则继续扫描。
程序流程图如图4-3所示。
3数码转换及显示子程序的设计由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制数(即BCD码)或ASCII码。
因此,在程序设计中经常要进行数码转换。
4.2数字电压表应程序设计
(1)程序起始地址MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。
所以,编程序时应在0000H处写一条跳转指令。
当CPU接到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。
(2)LED动态显示延时LED显示器每一位的显示时间是5ms,延时5ms
子程序是典型的软件定时程序。
说明:
LED采用7段字形代码,第1位采用把dp置1的方式显示小数点。
第五章调试结果及其说明
5.1调试结果及其说明
采用KeilμVision编译器进行源程序编译,调试好程序后将.Hex文件导入Proteus进行软件调试。
在ProteusISIS编辑窗口中单击开始仿真按钮,4位LED数码管显示相应的电压值。
当通道打到通道0时,滑动变阻器RV1的阻值调至最小位置时,LED显示0.000,正确显示数值;把RV1调至中间位置时,LED显示2.650,同样正确读出数据;当把RV1的阻值调至最大位置时,LED显示5.000,正确读出数据。
同理调试其他通道时,能正确显示通道数和电压值,证明该8路电压表合格。
调试结果如图5-1
图5-1调试结果
参考文献
单片微机原理及应用单片机应用技术(C语言版)新概念51单片机C语言教程单片机典型系统设计实例精讲
[1]
[2]
[3]
[4]
[5]
徐春晖主编电子工业出版社王静霞主编电子工业出版社郭天祥彭为等
单片机原理与应用设计张毅刚等
主编电子工业大学电子工业出版社电子工业出版社
附录A系统原理图
附录A系统原理图
LED_0
EQU
30H
LED_1
EQU
31H
LED_2
EQU
32H
LED_3
EQU33H
//存放四个数码管的段码
ADC
EQU35H
//存放转换后的数据
ST
BIT
P3.2
OE
BIT
P3.0
EOC
BIT
P3.1
ORG0000H
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOV
LED_3,#00H
MOVDPTR,#TABLE
//送段码表首地址
SETB
P3.4
SETB
P3.5
CLR
P3.6
//选择ADC0808的通道3
WAIT:
CLR
ST
SETB
ST
CLR
ST
//
启动转换
JNB
EOC,$
//
等待转换结束
SETB
OE
//
允许输出
MOV
ADC,P1
//
暂存转换结果
CLR
OE
//
关闭输出
LCALLINTOV
LCALL
SJMP
DISP
WAIT
//显示AD转换结果
INTOV:
MOV
DPTR,#TAB
//
因为所用的滑动变阻器为
0.01的精度,所以
MOVA,ADC
//
最小的读数为0.05,其余均为0.05的倍数
MOVC
A,@A+DPTR
//
因此,第三位小数,要么是
5,要么是0
MOV
B,#2
DIV
AB
MOV
R0,B
//A/2的余数付给R0,通过判断R0的值,
MOV
B,#100
DIV
AB
MOVDPTR,#TABLE//整数位MOVA,LED_3MOVCA,@A+DPTRSETBACC.7CLRP2.0MOVP0,ALCALLDELAYSETBP2.0
MOVDPTR,#TABLE//十分位
MOVA,LED_2
MOVCA,@A+DPTR
CLRP2.1
MOVP0,A
LCALLDELAY
SETBP2.1
MOVDPTR,#TABLE//百分位
MOVA,LED_1
MOVCA,@A+DPTR
CLRP2.2
MOVP0,A
LCALLDELAY
SETBP2.2
MOVDPTR,#TABLE//千分位
MOVA,LED_0
MOVCA,@A+DPTR
CLRP2.3
MOVP0,A
LCALLDELAY
RET
DELAY:
MOVR6,#10//延时5毫秒
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE:
DB3FH,06H,5BH,4FH,66H//
TAB:
DB
6DH,7DH,07H,7FH,6FH
DB
0,
0,0
1,
0,
2,
0,0,3,0//存放AD转换后的数
DB
4,
0,0,
5,
0,
6,
0,
0,
7,0
DB
8,
0,0,
9,
0,
0,
10,0,
11,0
DB
0,
12,0,
13,0,
0,
14,0,
15,0
DB
0,
16,0,
17,
0,
0,
18,0,
19,0
DB
0,
20,0,
0,
21,0,
22,0,
0,23
DB
0,
24,0,
0,
25,0,
26,0,
0,27
DB
0,
28,0,
0,
29,0,
0,
30,
0,31
DB
0,
0,32,0,
33,0,
0,
34,
0,35
DB
0,
0,36,0,
37,0,
0,
38,
0,39
DB
0,
0,40,0,
0,
41,0,
42,
0,0
DB
43,0,44,0,
0,
45,0,
46,
0,0
DB
47,0,48,0,
0,
49,0,
50,
0,0
DB
51,
0,0,
52,0,
53,0,
0,
54,0
DB
55,
0,0,
56,0,
57,0,
0,
58,0
DB
59,
0,0,
60,0,
0,
61,0,
62,0
DB
0,
63,0,
64,0,
0,
65,0,
66,0
DB
0,
67,0,
68,0,
0,
69,0,
70,0
DB
0,
71,0,
0,
72,0,
73,0,
0,74
DB
0,
75,0,
0,
76,0,
77,0,
0,78
DB
0,
79,0,
0,
80,0,
0,
81,
0,82
DB
0,
0,83,0,
84,0,
0,
85,
0,86
DB
0,
0,87,0,
88,0,
0,
89,
0,90
DB
0,
0,91,0,
0,
92,0,
93,
0,0
DB
94,0,95,0,
0,
96,0,
97,
0,0
DB
98,0,99,0,
0,
100,
0,
0,0
数码管0-9的码表
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数字 电压表 设计