基于8051单片机的简易电压表设计

基于8051单片机的简易电压表设计

ID:14825148

大小:126.50 KB

页数:20页

时间:2018-07-30

基于8051单片机的简易电压表设计_第1页
基于8051单片机的简易电压表设计_第2页
基于8051单片机的简易电压表设计_第3页
基于8051单片机的简易电压表设计_第4页
基于8051单片机的简易电压表设计_第5页
资源描述:

《基于8051单片机的简易电压表设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机课程设计—简易直流电压表班级:电信四班姓名:彭飞宇学号:2220081336摘要电压表应用十分广泛,但大部分是模拟电压表,而由于其特性,反应速度慢,读数麻烦并且误差较大,所以为适应不断快速发展的高速信号领域,已经广泛使用数字电压表。本实验设计是基于51单片机开发平台实现的一种数字电压表系统。该设计采用8051单片机作为控制核心,以ADC0809为模数转换数据采样,实现被测电压的数据采样;通过外围分压电路实现5V和50V的换档;同时使用5V稳压管作为超范围的保护电路;用8255驱动控制四块数码管显示被测电压。1.设计任务和要求1.1设计任务

2、设计制作一个简易直流电压表,该直流电压表能测量直流电压输入电压AD转换器控制器显示测量值1.2设计要求基本要求1.能测量电压档0--5V0--50V两档,输入阻抗>200K1.数码显示共3位,其中一位小数2.要有输入信号超范围的保护电路发挥部分1.能够测量交流电压(0—500V)2.能够测量电阻二设计方案和部分仿真2.1硬件:电压模拟量输入外电路模数转换模块微控制器模块数码管显示模拟量数字量控制转换程序处理图1硬件框图上图为硬件的总体框图,可分为四个模块。模数转换使用ADC0809芯片,它将输入的模拟电压量转换为一个8位的二进制数字,然后进入到

3、单片机80C51控制单元,经过8255驱动处理用数码管显示出电压值。外围电路是一种分压电路,由于ADC0809芯片输入电压不可大于5V,所以当测量50V档位的时候要通过分压电路来实现。同时还有控制单片机显示程序,使其显示为50V档位数值。(1)以下介绍MCS-51单片机的内部结构,主要部分为1.一个8位的CPU2.128B或256B单元数据存储器(RAM)3.4KB或8KB内程序存储器(ROM或EPROM)4.4个8位并行I/O接口P0~P35.两个定时/计数器6.5个中断源管理控制系统7.一个全双工串行I/OUART(通用异步接受、发送器)8

4、.一个片内振荡器和时钟产生电路(2)ADC0809ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。ADC0809内部逻辑电路如下:ADC0809引脚图如下:引脚说明:1.ADC0809内部带有输出锁存器,可以与单片机直接相连。2.初始化时,使ST和OE信号全为低电平。3.送要转换

5、的某一通道的地址到A.B,C端口上。4.在ST端给出一个至少有100ns宽的正脉冲信号。5.是否转换完毕,我们根据EOC信号来判断。6.当EOC变为高电平时,若此时OE为高电平,转换的数据输出到单片机2.2软件程序:单片机中所发程序的流程图如下图2。其中包含主函数和两个显示子函数,分别为5V和50V档位的显示子程序。通过外围电路的改变实现换档。开始初始化(8255,中断)进行AD转换调用5V显示子程序调用50V显示子程序转换结束标志位为1标志位为0循环执行图2程序框图下面为仿真所用程序#includeunsignedcharc

6、odedispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispbuf[4];unsignedinti;unsignedintj;unsignedchargetdata;unsignedinttemp;unsignedinttemp1;unsignedcharcount;unsignedchard;sbitST=P3^0;sbitOE=P3^1;sbitEOC=P3^2;sbitCLK=P3^3;sbitP34=P3^4;sbitP35=P

7、3^5;sbitP36=P3^6;sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP17=P1^7;voidTimeInitial();voidDelay(unsignedinti);voidTimeInitial(){TMOD=0x10;TH1=(65536-200)/256;TL1=(65536-200)%256;EA=1;ET1=1;TR1=1;}voidDelay(unsignedinti){unsignedintj;for(;i>0;i--){for(j=0;j<125;

8、j++){;}}}voidDisplay(){P1=dispbitcode[dispbuf[3]];P20=0;P21=1;P22=1;P23=1;D

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。