单片机课程设计(直流数字电压表)_第1页
单片机课程设计(直流数字电压表)_第2页
单片机课程设计(直流数字电压表)_第3页
单片机课程设计(直流数字电压表)_第4页
单片机课程设计(直流数字电压表)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南京信息工程大学 单片机原理课程设计报告设计题目: 直流数字电压表设计 专业班级: 测控技术与仪器 学生姓名: 倪阳 肖照飞 学生学号: 20112341905 20112341910 指导老师: 葛化敏 成 绩: 二一四年 六 月 二十 日一、设计任务、目的与要求1.1设计任务利用单片机AT89S52和ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,要求使用的元器件数目尽量少。本电路主要采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示。该

2、电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制ADC0809芯片的工作。1.2 设计目的通过制作简易数字电压表,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综合运用所学的专业知识进行电子产品设计、制作与调试的能力。 1.3设计要求电路通

3、电或按复位键时,通过改变电位器的阻值改变模拟输入电压,不断的将模拟电压转换成数字量,通过LED显示出所测得的模拟电压。在测试中测试的电压值必须和实际的电压值不超过0.5V的电压。在改变电压时,能够准确的侧量出电压的变化值。二、系统总体方案设计2.1系统组成本系统采用STC89C52单片机作为控制核心,对8路8位模数转换芯片ADC0809采集到的模拟电压信号进行分析处理,实现A/D转换,通过数码管显示其数字电压值。电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。2.2 系统工作原理简易数字电压表测量电路由A/D转换、数据处理及显示控制等组成,A/D转换由集成电路A

4、DC0809完成。ADC0809具有8路模拟输入端口,地址线(第23-25脚)可决定对哪一路模拟输入作A/D转换。第22脚位地址锁存控制,当输入为高电平时,对地址信号进行锁存。第6脚位测试控制,当输入一个2宽高电平脉冲时,就开始A/D转换。第7脚为A/D转换结束标志,当A/D转换结束时,第7脚输出高电平。第9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。第10脚为ADC0809的时钟输入端,利用单片机第30脚嘚分频晶振频率,再通过14024二分频得到1MHz时钟,单片机的P1、P3.0-P3.3端口作为4位LED数码管显示控制,P3.5端口用作单路显示/循环显示

5、转换按钮。P3.6端口用作单路显示时选择显示的通道。P0端口用作A/D转换数据读入,P2端口用作ADC0809的A/D转换控制。这里主要是利用ADC0809模数串口芯片,ADC0809芯片的基准电压脚外接电压为5V,则最大可以测得的电压为5V,ADC0809芯片的模拟输入脚通过电位器接5V电压,进行模拟采样,通过调整电位器的值改变模拟量。输入的模拟量经过ADC0809芯片的内部8位开关电容逐次逼近A/D转换器,转换成8为二进制数,其最小的分辨率为0.0196(VREF=0.0196V),D为转化的数字量,再通过 可以求得模拟电压,最后通过LED就可将所测得电压显示出来。三、系统硬件设计3.1电

6、源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。采用220V的工频交流电压,而单片机的工作电压是直流+5V,为此,先通过一个普通的变压器降低电压,再通过桥式整流,然后再通过7805芯片的进一步稳压,确保+5V电源的稳定、可靠。而且7805集成稳压器是常用的固定输出+5V电压的集成稳压器。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便,可以在任何有交流电压的地方使用,不需另带电池。通过整流滤波以后输出直流电压,为了确保整个电路能正常工作,考虑到不接负载或电源电压有波动时电容

7、能承受的耐压,必须加电容。发光二极管D2点亮表示电源电路正常工作,其电源电路如图所示: 3.2 A/D转换电路A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照工作原理划分,ADC主要有4种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器和计数比较式A/D转换器。目前最常用的是双积分和逐次逼近式。双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等

8、功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。本设计中采用具有逐次逼近式A/D转换器的ADC0809芯片。ADC0809是典型的8位8通道逐次逼近式A/D转换器。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。ADC0809的内部结构包括8路模拟选通开关、通道地址锁存器与译码器、8位A/D转换器和三态输出锁存器。多路开关接8路模拟量输入,可对8路05V的输入模拟电压信号分时进行转换,

9、输出具有TTL三态锁存器,可直接连到单片机数据总线上。多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表3.2所示。表3.2 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7各引脚功能如下:1)IN7IN0模拟量输入通道。ADC0809对输入模拟量的要求主要有:信号单极性,电压范围05V,若信号过小,还需进行放大。另外,模拟量输入在A/D转换的过程中,其值应保持不变,因

10、此,对变化速度快的模拟输入量,在输入前应增加采样保持电路。2)A、B、C地址线。A为低位地址,C为高位地址,用于对8路模拟通道进行选择。3)ALE地址锁存允许信号。由低至高电平正跳变将通道地址锁存至地址锁存器中。 4)START启动转换信号。START上跳沿时所有内部寄存器清0;START下跳沿时,开始进行A/D转换。在A/D转换期间,START应保持低电平。5)D7D0数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。6)OE输出允许信号。用于控制三态输出锁存器向单片机上输出转换得到的数据。OE=0,输出数据线呈高电阻态;OE=1,输出转换得到的数据。7)CLOCK时钟信号。AD

11、C0809内部没有时钟电路,所需时钟信号由外界提供,要求频率范围10kHz1.2MHz。通常使用频率为500 kHz的时钟信号。8)EOC转换结束状态信号。EOC0,正在进行转换;EOC=1,转换结束。该状态信号既可作为查询的状态标志,又可以作为中断请求信号使用。9)VCC+5V电源。10)REF(+)、REF(-)参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为REF(+)=+5V,REF(-)=0V。ADC0809的工作原理:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位

12、。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。3.3 接口电路的设计接口电路是ADC0809输出的BCD码转换为七段译码输出,主要有时钟电路、复位电路和单片机芯片组成。 图3.3 单片机控制部分原理图3.3.1时钟电路单片机内部每个部件要想协调一致地工作,必须在统一口令时钟信号的控制下工作。单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。图3.5是内部时钟方式:单片机内部有一个

13、构成振荡器的增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输入端,这个放大器与作为反馈元件的片外晶振一起构成自激振荡器。在该图中,电容C1和C2取20PF,晶体的振荡频率取12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。实际连接如图所示:3.3.2 复位电路部分AT89S51的复位电路如图所示。当单片机一上电,立即复位。电容C和电阻R1实现上电自动复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。3.4显示电路的设计本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。数码管是最常用的一种

14、显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。但数码管只能是显示09的数据。不能够显示字符。这也是数码管的不足之处。LED点阵显示器件是由好多个发光二极管组成的。具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。 1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:阿拉伯数字、英文字母的大

15、小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。使用时直接编写软件程序按一定的时序驱动即可。它的特点是显示字迹清楚,价格相对便宜。 12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。使用时也直接编写软件程序按一定的时序驱动即可。不过它的价格比1602液晶贵了很多。综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。3.5 STC89C52RC结构与控制原理在本次课题设计中我们选择了STC89C52芯片。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的

16、低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。 主要功能特性兼容MCS51指令系统8K可反复擦写Flash ROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能P0-P3口结构P0口功能 :P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。输出数据时可以得到

17、锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写P1口 功能  :P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。 P2口的功能 :P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。 P3口功能 :P3口有两个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。 表3.5 P3口第二功能引脚名称功能P3.0RXD串行数

18、据接收口P3.1TXD串行数据发送口P3.2INT0外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写选通信号P3.7RD外部RAM读选通信号四、系统软件设计4.1 系统程序设计初始化中主要对STC89C52,ADC0809的管脚和数码管的位选及所用到的内存单元进行初始化设置。准备工作做好后便启动ADC0809对IN0脚输入进的05V电压模拟信号进行数据采集并转换成相对应的0255十进制数字量。在数据处理子程序中,运用标度变换知识,编写算法将0255十进制数字量转换成0.05.0V的数据,输出到显示子程序进行显示。整个主程序

19、就是在A/D转换,数据处理及显示程序循环执行。整个程序流程框图如图4.1所示:初始化开始ST、OE端口拉低ST上升沿清除AD缓存器ST下降沿,AD开始转换转换结束?P1口读取数据,数据除以51,商为电压整数部分,余数乘以10后,再除以51,为电压小数相应位部分,电压小数相应位加5调整余数>25?四位处理完?NY定时每隔500ms转换一次P2口为位选P0口为段选查询数码管显示表四位显示完?返回程序开始图 4.1 程序流程图NY4.2 系统源程序#include<reg52.h>#define uchar unsigned char#define uint unsigned in

20、tdouble dist,speed,len,temp,cha;sbit rs=P17;sbit rw=P16;sbit e=P15;sbit st=P14;sbit oe=P13;double volt2;uint num;int a,b,c,volt1;uchar volt0;uchar table="the voltage is V"uchar table1="0123456789."void delay(uint z) /延时子程?uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void write

21、_com(uchar com)rs=0;P2=com;e=1;delay(5);e=0;void write_dat(uchar dat)rs=1;P2=dat;e=1;delay(5);e=0;void init()rw=0;e=0;write_com(0x38);write_com(0x0f);write_com(0x06);write_com(0x01); void main() EA=1; EX0=1; IT0=1; init();write_com(0x80);for(num=0;num<14;num+)write_dat(tablenum); write_com(0x80+0

22、x46); write_dat(table15);while (1) st=0; st=1; st=0; volt1=(int)volt0; volt2=volt1/255.0*435; volt1=(int)volt2; write_com(0x80+0x40); a=volt1/100; b=volt1/10-a*10; c=volt1%10; write_dat(table1a); write_dat(table110); write_dat(table1b); write_dat(table1c);void inte () interrupt 0 oe=1; volt0=P0; oe=0; 5、 设计实物图片展示六、课程设计总结(心得体会)经过近2周的单片机课程设计,终于完成了我的数字电压表的设计,基本达到设计要求。对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。第一,硬件电路遇到了ADC0809无内部时钟,需外接外部时钟,如何解决这个问题,我们小组进行了多次讨论,最终确定了在程序中提供时钟信号,大大降低了硬件电路的复杂度。第二,则是解决程序设计的问题,而程序设计是一个很灵活的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论