毕业设计(论文)题目:数字电压表的设计及制作年级专业:电气自动化14321班学生姓名: 秦小钧指导教师:杨海蓉2016年10 月13 日毕业设计任务书毕业设计题目:数字电压表的设计及制作题目类型工程设计题目来源学生自选题毕业设计时间从 2016/09/25 至 2016/10/131.毕业设计内容要求:采用AT89S52作MCU,ADC0809(或其他芯片)进行AD转换,测量电压的范围为直流0—5V电压,四位数码管显示。
2.主要参考资料[1]万福君,潘松峰.单片微机原理系统设计及应用[M],中国科学技术大学出版社,01年8月第2版[2]周责魁。
控制仪表及计算机控制装置[M] ,化学工业出版社,02年9月第1版[3]李青。
电路及电子技术基础[L] ,浙江科学技术出版社,05年2月第1版[4]陈乐。
过程控制及仪表[M],中国计量学院出版社,07年3月[5]孙育才。
新型AT89S52系列单片机及其应用[M] ,清华大学出版社,05年5月第1版3.摘要本设计由A/D转换、数据处理及显示控制等组成,测量0~5V范围内的输入电压值,由4位共阳8段数码管扫描显示,最大分辨率0。
1V,误差±0。
05V.数字电压表的核心为AT89S52单片机和ADC0832 A/D转换集成芯片。
关键词:数字电压表;单片机;AT89S52; ADC0832第一章设计方案的选择1。
1功能要求及设计目标采用AT89S52作MCU,ADC0809(或其他芯片)进行AD转换,测量电压的范围为直流0-5V 电压,四位数码管显示。
(设计并制作出实物为优)。
1.2 系统设计方案AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash 存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。
AT89S5及AT89c52相比,前者的性能比后者高,所以本设计采用AT89S52芯片。
数模转换芯片:ADC0809是采样分辨率为8位的、以逐次逼近原理进行模—数转换的器件.其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换,转换时间为100μs。
ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入及参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强.由于ADC0832芯片的转换时间短,并且性能比较高,所以采用ADC0832作为数模转换芯片.1 选择AT89S52 作为控制芯片2 选择ADC0832芯片来进行模数转换3 选择GEM5461GE 四位一体的共阳数码管来显示数字4 用9012三极管来作为驱动电路,使GEM5461GE 四位一体的共阳数码工作.5 用SW1按键作为复位按键,实现复位电路的功能.第二章数字电压表系统设计2。
1 硬件系统的设计2。
1.1 硬件原理框图图2-1硬件原理框图2.1。
2硬件系统设计原理硬件设计原理:电阻R11上的电压经过ADC0832芯片进行模数转换后,由AT89S52芯片的P1口连接到驱动电路,当驱动电路工作使数码管显示前面转换过来的数字。
复位电路和晶振电路的设计在接通电源后,当按下SW1后AT89S52不工作,使数码管全部变暗,当SW1一松开后AT89S52工作,数码管又变亮.晶振电路中的两个30pF的电容具有微调的作用.2.2软件系统设计2。
2.1程序流程图图2—3程序流程图2。
2.2编写程序1 1,0选通道0bADcl=1;bADcl=0;// 3 downbADda=1;bADcl=1;bADcl=0; // 4 down数码管显示程序//数字电压表#include<reg51.h>#define uchar unsigned char#define uint unsigned int#include 〈intrins。
h>code uchar TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //定义数码管显示数值uchar str_TME[4]={0,0,0,0,}; //定义数码管显示初始值unsigned char data1; //data1用来存放转换以后的数据void delay(uchar ms) //定义ms延迟程序{uchar j;while(ms—-)for(j=0;j〈125;j++);}uchar tmel=0;bit sim=1;/***********************计数器中断函数,用于控制电压转****************************************时间间隔,此程序设定间隔为1S电压转换一次***************/void tme_tr0(void) interrupt 1{TL0=0x58;TH0=0x9e; //设置25ms 延时的初值if(++tmel==40){tmel=0;sim=1;}2 AD0832AD转换子程序/***************************************************************************AD0832AD转换子程序***************************************************************************/sbit bADcs=P2^2; //片选位sbit bADcl=P2^1; //时钟位sbit bADda=P2^0; //数据位void ad(void){ uchar i;bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,开始工作CS为低电平bADcl=0; //第一个时钟下降沿前da为1,第二个及第三时钟下降沿前的数据为通道选择bADda=1; //选置起始位bADcl=1;bADcl=0; // 1downbADda=1; //通道选择第1位bADcl=1;bADcl=0;// 2 downbADda=0; //通道选择第2位,通道选择为for(i=8;i〉0;i——){data1<<=1; //从第7位开始,要左移data1=data1<<1bADcl=0;bADcl=1;if(bADda==1) data1|=0x01; //如果输出1,data1最后一位补1}bADcs=1; //转换完后CS置1}void changs() //转换程序{double sum;uchar val_Integer; //定义整数变量unsigned int val_Decimal; //定义小数变量sum=data1*0.0196078 ;val_Integer=(uchar)sum;val_Decimal=(unsigned int)((sum-val_Integer)*1000);str_TME[3]=val_Decimal%10;str_TME[2]=val_Decimal/10%10;str_TME[1]=val_Decimal/100;str_TME[0]=val_Integer;}}/*****************定义数码管显示(共阳数码管)***************************/sbit g1=P1^0; //第一位sbit g2=P1^1; //第二位sbit g3=P1^2; //第三位sbit g4=P1^3; //第四位void VAL_xs(){P3=(TAB[str_TME[0]])&0x7f; //显示小数点g1=0; //第一位显示delay(4);g1=1;P3=TAB[str_TME[1]];g2=0; //第二位显示delay(4);g2=1;P3=TAB[str_TME[2]];g3=0; //第三位显示delay(4);g3=1;P3=TAB[str_TME[3]];g4=0; //第四位显示delay(4);g4=1;}3 主程序/*****************************************************主程序*******************************************************/main(){P1=0xc0;IE=0x82; //中断请求TMOD=0x01;IP=0x01;TL0=0x58;TH0=0x9e;TR0=1; //运行控制位while(1){VAL_xs();if(sim==1){ad(); //电压转换changs(); //数据转换sim=0;}}}2。
2.3用KEIL 软件编译和生成hex文件图2-4 KEIL 软件编译图2。
3 用protues 进行仿真1 安装protues 软件2 画出原理图3 在AT89S52芯片中写入 hex 文件单击确定图2—5写入hex文件图 4仿真和调试图2-6 仿真当调节R11电阻时显示数字也发生变化,说明程序正确!第三章制作PCB 板和实物的调试3.1制作PCB 板由于开始在北院制版时间太短,所以走了两根飞线.图3-1 PCB 板PCB板制作流程:打印PCB图A纸,热转印发打印,腐蚀,打孔,插件,焊接,检测实物。
3.2 实物的检测功能及调试把前面仿真通过的程序烧制到AT89S52芯片中,接上5V 的电源,观察效果。
实物图3—2。
图3—2 实物效果图现象:数码管最后两位每隔1 秒数字有点变化,这是由于外界的干扰造成的,属于正常现象.调节R11 显示的数字有变化,按下SW1按键显示器变暗,松开SW1又显示数字.结论:正确,设计成功!设计总结在这次课程设计中,完成了简易数字电压表的制作工作。
其中有苦也有乐。
苦的是这个月太累了,好几个晚上忙到凌晨2点左右;乐的是在付出过程中,我学到了许多的东西。
在整个设计过程中,经常经常出现这样那样的问题,但是最后还是都得以解决,这个过程是值得我回味的,尤其是当看到自己的设计课题成功时,心中有一种成就感。
挫折是一份财富,经历是一份拥有。