基于AT89S52的数字电压表设计.docx
- 文档编号:30194277
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:15
- 大小:74.49KB
基于AT89S52的数字电压表设计.docx
《基于AT89S52的数字电压表设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52的数字电压表设计.docx(15页珍藏版)》请在冰豆网上搜索。
基于AT89S52的数字电压表设计
单片机系统开发与应用工程实习报告
选题名称:
基于AT89S52的数字电压表的设计
系(院):
计算机工程学院
专业:
嵌入式系统设计
班级:
姓名:
学号:
指导教师:
学年学期:
2009~2010学年第2学期
2010年5月30日
摘要:
在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。
具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。
而且数字电压表是采用数字化测量技术,把连续的模拟电压量转换成不连续、离散的数字化形式并加以显示的仪器。
为此本项目介绍了一种基于AT89S52单片机的数字电压表的设计,目的是在使用尽量少的元器件的情况下,用单片机AT89S52和ADC0809高精度A/D转换芯片设计一个4位数码管显示的数字电压表,并能够测量0-5V之间的直流电压值,其测量最小分辨率为0.02V。
本设计主要分为两部分:
硬件电路及软件程序。
而硬件电路又大体可分为A/D转换电路、LED显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程,详细的设计算法将会在程序设计部分详细介绍。
关键词:
AT89S52;ADC0809;A/D转换;LED数码管显示
1.关于单片机AT89S52与ADC0809芯片
1.1关于AT89S52
At89s52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图1-1AT89S52线路引脚图
(由于AT89S52的引脚较多,介绍起来比较繁琐,在此略过)
1.2关于ADC0809
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
图1-2ADC0809引脚图
引脚功能如下:
ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
2硬件电路
2.1程序原理图
图2-1关于AT89S52的数字电压表原理图
原理图说明:
原理图主要由AT89S52芯片,ADC0809芯片,LED数码管组成。
AT89S52芯片的RST与复位电路相连,XTAL1与XTAL2连接着晶振电路。
P0口与ADC0809直接相连接受来自ADC0809传输而来的数据,P2口作为4位动态数码显示管的位显示控制,P1口则是动态数码显示管的段显示控制并连接着74LS07作为驱动,P3则是提供给ADC0809芯片的CLK信号并控制其开始。
相对的ADC0809芯片的IN0接了滑动电阻器以为实验产生不等的电压。
ADDA~C接地,并确保基准电压。
2.2焊接顺序:
a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
d把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端
2.3A/D转换电路
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
具体电路图如下:
图2-2实现A/D转换电路图
ADC0809实现A/D转换的原理如下:
其工作原理如下:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
2.4LED显示电路
设计中采用的是4段LED数码管来显示电压值。
LED具有耗电低、亮度高、视角大、线路简单、耐震及寿命长等优点,它由4个发光二极管组成,其中3个按‘8’字型排列,另一个发光二极管为圆点形状,位于右下角,常用于显示小数点。
把4个发光二极管连在一起,公共端接高电平,叫共阳极接法,相反,公共端接低电平的叫共阴极接法,我们采用共阴极接法。
当发光二极管导通时,相应的一段笔画或点就发亮,从而形成不同的发光字符。
其8段分别命名为dpgfedcba。
例如,要显示“0”,则dpgfedcba分别为:
00111111B;若要显示多个数字,只要让若干个数码管的位码循环为高电平就可以了。
图2-3LED数码管显示电路图
根据设计要求,显示电路需要至少4位LED数码管来显示电压值,我们再多加一位用来显示电压单位“V”,则有7位LED循环显示。
利用单片机的I/O口驱动LED数码管的亮灭,设计中由P0口驱动LED的段码显示,即显示字符,由P2口选择LED位码,即选择点亮哪位LED来显示。
3软件程序的设计
3.1主程序流程图
图3-1主程序流程图
程序初始化:
#include
unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};
unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsignedchardispbuf[8]={10,10,10,10,0,0,0,0};
unsignedchardispcount;
unsignedchargetdata;
unsignedinttemp;
unsignedchari;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
voidmain(void)
{
ST=0;
OE=0;
ET0=1;//允许定时器0
ET1=1;//允许定时器1
EA=1;//中断允许总控制位,中断总允许
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-4000)/256;//定时时间计算公式:
TL1=(65536-4000)%256;//一共4个8位定时器
TR1=1;//启动定时器1
TR0=1;//启动寄存器0
程序的初始化工作有以下功能:
生成数码管等代码表;表示部分引脚联通;设置部分变量的初值;定义定时器0,1;设置定时器方式选择寄存器并确定寄存器0使用工作方式1,寄存器1使用工作方式2,具体设定了寄存器1,并启用0,1寄存器。
3.2A/D转换模块:
图3-2A/D转换测量子程序流程图
ST=1;
ST=0;//产生下跳沿开始A/D转换
while
(1)
{
if(EOC==1)//EOC转换结束信号,EOC=1时转换结束
{
OE=1;//输出允许信号OE=1时输出转化得到的数据
getdata=P0;//将转化所得数据传输到P0
OE=0;//OE=0时输出数据线呈高阻态
temp=getdata*235;
temp=temp/128;//将模拟量转换为数码量
i=5;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
dispbuf[3]=10;
dispbuf[4]=10;
dispbuf[5]=0;
dispbuf[6]=0;
dispbuf[7]=0;//寄存要输出的数据
while(temp/10)
{ dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;//从寄存中提取数据
ST=1;
ST=0;//产生下跳沿
}
}
}
A/D转换程序由开始设定的ST的变化开始(产生下跳沿使ADC0809的START开始运转)然后当转换结束(EOC=1)时,开始传输数据到P0(OE=1输出允许信号置1)至传输结束时OE置0,将获得的电压量转换成所对应的16进制数据并寄存,再通过取模的方式把各位数字逐个提取,最后结束。
3.3数码管显示模块
voidt0(void)interrupt1using0
{
CLK=~CLK;//时钟信号取反
}
voidt1(void)interrupt3using0//外部中断0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;//定时器初始化,定时4微秒循环
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];//经查代码表得出数据
if(dispcount==3)
{
P1=P1|0x80;//在LED上显示出数字
}
dispcount++;
if(dispcount==4)
{
dispcount=0;
}
}
LED数码管的现实首先由外部寄存器0中断使时钟信号取反,在有外部寄存器1中断使定时器初始化,通过之前ADC0809输出的16位数据经查询代码表得到相应的BCD码,最后显示即可。
4实验结果
经过protel的制作与实物的焊接和烧制程序后我所得的结果还是不尽如人意:
由于部分元器件的缺失,虽然电源灯和LED数码管能够使用,但很不稳定。
经过万用表的测试也不能解决,导致最后实验没有达到预期效果。
总结
单片机是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科,它的理论性和实践性都很强。
通过这次漫长的程序设计中,首先我们通过用RROTEL软件绘制电路图设计PCB板,再经过自己动手焊制电路板并实现实验结果的过程,加深了对课堂抽象概念的理解,巩固了课堂上所学的理论知识,并很好地理解与掌握单片机AT89S52和A/D转换芯片ADC0809的基本原理、使用方法。
而对于这次课程设计的题目“数字电压表的设计”,在收集资料以及编程过程中,不光让我巩固所学的知识,加强理论和实际结合的能力,细致的了解了单片机的工作原理,还培养了我们的综合设计能力与实际工作能力。
真可谓获益匪浅啊。
虽然最后离我的实验结果还有少许偏差让我有点不甘心,但这次独立制作芯片的过程还是让我感触良多的。
而且在这次课程设计的撰写过程中,我得到了许多人的帮助。
本论文从立题到论文撰写整个过程都是在和悉心指导下完成的。
老师们在传授我知识的同时,更注重培养我解决问题的思路和法及创新能力,为我今后学习和工作打下了坚实的基础并开阔了我的视野,渊博的知识、严谨的治学态度、忘我的工作精神以及对新知识不懈追求的精神,令我们佩服,使我们受益匪浅.我将最诚挚的谢意奉献给我的导师们。
另外,我要感谢我的同班同学,他们给予我很多的关心和帮助,并在程序上给了我很多启示,而且他们中间不少人给我学习和生活上带来了很多的快乐。
没有他们我的程序不可能做的如此顺利。
参考文献
1杨居易杨晓琴王益斌单片机课程设计指导清华大学出版社2009-5
2李广弟朱月秀冷祖祁单片机基础北京航空航天大学出版社2008-4
3张谨张伟张立宝PROTEL99se入门与提高人民邮电出版社2008-7
4李光飞,楼然苗,胡佳文,谢象佐.单片机课程设计实例指导.北京航空航天大学出版社.2004.9
5蔡朝洋.单片机控制实习与专题制作.北京:
北京航空航天大学出版社,2006.11
指导教师评语
学号
姓名
班级
选题
名称
基于AT89S52的数字电压表的设计
序号
评价内容
权重(%)
得分
1
考勤记录、学习态度、工作作风与表现。
5
2
自学情况:
上网检索机时数、文献阅读情况(笔记)。
10
3
论文选题是否先进,是否具有前沿性或前瞻性。
5
4
成果验收:
是否完成设计任务;能否运行、可操作性如何等。
20
5
报告的格式规范程度、是否图文并茂、语言规范及流畅程度;主题是否鲜明、重心是否突出、论述是否充分、结论是否正确;是否提出了自己的独到见解。
30
6
文献引用是否合理、充分、真实。
5
7
答辩情况:
自我陈述、回答问题的正确性、用语准确性、逻辑思维、是否具有独到见解等。
25
合计
指导教师(签章):
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S52 数字 电压表 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)