数字电压表设计与制作.docx
《数字电压表设计与制作.docx》由会员分享,可在线阅读,更多相关《数字电压表设计与制作.docx(13页珍藏版)》请在冰豆网上搜索。
数字电压表设计与制作
xxxxxxxxxxxxxxxxx学院
电子技术应用专业
《微处理器应用与实践》
作业
组别xxxxxxxxxxxxxxxx
姓名xxxxxxxxxxxxxxxxx
学号xxxxxxxxxxxxxxxx
班级xxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxx学院
数字电压表设计与制作作业卡
1、数字电压表的功能与任务
1、数字电压表功能指标要求及任务
1、功能指标要求
1)用KEILC51.PROTEUS.EASY下载软件开发工具
2)用AT89S52单片机作控制,adc0809作A/D转换器。
3)三位数码管作显示
4)能测试0~5V的直流电压,精确到两位小数。
5)发挥扩充功能:
如增加超量程提示功能。
自动量程转换功能等。
2、任务
1)拟定总体设计制作方案。
2)拟定硬件电路
3)编制软件流程图及设计相应源程序。
4)仿真调试数字电压表
5)安装元件,制作数字电压表。
调试功能指标。
6)完成项目报告。
2、总体设计思路
实现思路与框图设计
基本功能部分的实现思路是:
用AT89S52单片机作控制,时钟为12MHZ,选择ADC0809的一个通道输入待测直流电压,A/D转换后,经标定。
BCD码转换。
高位消隐等处理,用数码管显示。
如图
3、原理图设计
数字电压表原理图设计
(1)如图
(2)原理图设计思路
用AT89S52作控制、ADC0809作模数转换、一个4位一体共阴数码管作显示。
AT89S52的P1端口的P1.0~1.7电压显示输出;P2端口的P2.0~2.7作为数码管的位选控制端口;P0端口的P0.0~0.7用作A/D转换完毕的数据输入端口;P3端口的P3.4、P3.5、P3.6作为通道选择的地址信号输出端口;P3.0作为启动控制输出端口;P3.1作允许输出控制;P3.2作为转换状态输入端;时钟信号由AT89S52的P3.3定时中断产生;ADC0809的IN0端子作电压测试输入端口,参考原理图如上图所示。
4、程序设计
数字电压表程序设计
1.程序流程图
(1)左移右移主程序流程图
(2)中断程序流程图
2、程序
#include
unsignedcharcodedispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsignedchardisbuf[4];
unsignedinti,j,temp;
unsignedchargetdata;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
sbitP34=P3^4;
sbitP35=P3^5;
sbitP36=P3^6;
sbitP20=P2^0;
sbitP21=P2^1;
sbitP22=P2^2;
sbitP23=P2^3;
sbitP17=P1^7;
voiddisplay();
voidtimeinitial();
voiddelay(unsignedinti);
(1)主程序
/*主函数*/
voidmain()
{
timeinitial();
while
(1)
{
ST=0;
OE=0;
ST=1;
ST=0;
P34=0;
P35=0;
P36=0;
while(EOC==0);
OE=1;
getdata=P0;
OE=0;
temp=getdata*1.0/255*500;
disbuf[0]=temp%10;
disbuf[1]=temp/10%10;
disbuf[2]=temp/100%10;
disbuf[3]=temp/1000;
display();
}
}
(2)子程序
/*显示子函数*//*定时中断初始化程序*/
voiddisplay()voidtimeinitial()
{{
if(disbuf[3]!
=0)TMOD=0x10;
P1=dispbitcode[disbuf[3]];TH1=(65536-200)/256;
P20=1;TL1=(65536-200)%256;
P21=1;EA=1;
P22=1;ET1=1;
P23=0;TR1=1;
delay(10);}
P1=0x00;/*延时子函数*/
P1=dispbitcode[disbuf[2]];voiddelay(unsignedinti)
P17=1;{
P20=1;unsignedintj;
P21=1;for(;i>0;i--)
P22=0;{
P23=1;for(j=0;j<125;j++)
delay(10);{;}
P1=0x00;}
P1=dispbitcode[disbuf[1]];}
P20=1;/*T1中断子函数*/
P21=0;voidt1(void)interrupt3using0
P22=1;{
P23=1;TH1=(65536-200)/256;
delay(10);TL1=(65536-200)%256;
P1=0x00;CLK=~CLK;
P1=dispbitcode[disbuf[0]];}
P20=0;
P21=1;
P22=1;
P23=1;
delay(10);
P1=0x00;
}
5、仿真
数字电压表仿真模型与结果
(1)能测试0~5V的直流电压。
(2)精确到两位小数。
6、元器件的清单
所用元器件
1
名称
型号
数量
2
单片机
At89s52
1
3
AD转换器
ADC0809
1
4
电阻
8.2KΩ
1
5
晶振
12MHz
1
6
瓷片电容
22pF
2
7
电解电容
10uF/16V
1
8
电源
5v输出
1
9
按键
触摸按键
1
10
电阻
560Ω
8
11
数码管
共阴4为一体
1
7、元器件的安装
安装效果图
8、数字电压表调试
调试
指标
1.USB下载模块
2.CPU系统模块
3.电源模块
4.数码管显示模块
5.AD转换模块
调试方法步骤
1)先静态检查是否有虚焊。
漏焊。
元件是否安装正确,
2)动态检查。
a.下载端
1.检测USB下载,把万用表的红表笔接P28端,黑表笔接12端,检查供电。
2.检查时钟是否正常
3.检查数据通路是否正常
4.检查复位电路是否正常
b.CPU
1.检查电源是否有5V电压
2检查时钟是否正常
3复位电路是否正常
4引脚是否接VCC
c.数码管显示正常
d.AD转换模块正常
调试
数据
记录
一、USB下载模块
(1)USB的VCC端脚有5V的电压输出
(2)CH314芯片的28脚与12脚有5V的电压输入
(3)下载正常
二、电源模块
(1)电源输出5V
(2)电源正常
三、单片机模块
(1)单片机AT89S52能正常工作
四、数码管显示正常
五、AD转换模块
(1)IN端子有5V的电压输入。
调试
结果
(1)能测试0~5V的直流电压。
(2)精确到两位小数。
9、自评
评价表
时间:
2010-11-25班级:
电子0902组别:
11
任务
设计制作数字电压表
小
组
成
员
姓名
学号
成绩
xxxx
38
91
xxxx
37
89
xxxx
39
88
xxxx
40
90
任务完成情况
分值
得分
任务完成情况
分值
得分
完成时间
10
9
仿真
10
10
总体设计思路
10
8
安装
10
9
原理图设计
10
9
调试
10
9
程序流程图
10
9
检查评估
10
10
程序
10
8
文明(纪律)
10
10
总分
91
评价记录:
本组上课认真听讲,下课及时复习,按时完成作业,刻苦钻研,对待每一件事情都认认真真。
在团队合作方面热心帮助同学,和谐互助,相互讨论,一起钻研,希望把单片机这门课学的更好!
签字:
xxxx