基于51单片机的简易电子表
基于51单片机的简易电子表/***************************************************************** 阿斌独家制作:电子表1602液晶显示带有闹钟功能每天到指定时间后闹钟提醒闹钟响后按s4键关闭闹钟如果闹钟响后大约20秒未检测到s4键按下,则闹钟自动关闭******************************************************************/ 主程序:#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit lcden=P2^2;sbit lcdrw=P2^1;sbit lcdrs=P2^0;sbit s1=P3^0;sbit s2=P3^1;sbit s3=P3^2;sbit s4=P3^3;sbit rd=P3^7;sbit beep=P1^2;uint nian,a;uchar count,s1num,i,xq,ri,yue,flag;char shi,fen,miao,shia,fena,miaoa;uchar code table[]=" 2012-11-19 MON"; uchar code table1[]=" 00:00:00"; uchar code xq1[]="MON";uchar code xq2[]="TUE";uchar code xq3[]="WED";uchar code xq4[]="THU";uchar code xq5[]="FRI";uchar code xq6[]="SA T";uchar code xq7[]="SUN";void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void didi(){beep=1;delay(5);beep=0;delay(5);beep=1;delay(5);beep=0;delay(5);}void write_com(uchar com) {lcdrs=0;lcden=0;lcdrw=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date) {lcdrs=1;lcden=0;lcdrw=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void init(){uchar num;lcden=0;xq=1;ri=19;yue=11;nian=2012;a=1000;flag=0;shia=00;fena=00;miaoa=05;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num<16;num++){write_date(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<12;num++){write_date(table1[num]);delay(5);}TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void write_sfm2(uchar add,uint date) {uchar qian,bai,shi,ge;qian=date/1000;bai=date%1000/100;shi=date%100/10;ge=date%10;write_com(0x80+add);write_date(0x30+qian);write_date(0x30+bai);write_date(0x30+shi);write_date(0x30+ge);}void write_sfm1(uchar add,uchar date) {uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);}void write_sfm(uchar add,uchar date) {uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void write_xq(){write_com(0x80+13);switch(xq){case 1: for(i=0;i<3;i++){write_date(xq1[i]);delay(5);} break;case 2: for(i=0;i<3;i++){write_date(xq2[i]);delay(5);} break;case 3: for(i=0;i<3;i++){write_date(xq3[i]);delay(5);} break;case 4: for(i=0;i<3;i++){write_date(xq4[i]);delay(5);} break;case 5: for(i=0;i<3;i++){write_date(xq5[i]);delay(5);} break;case 6: for(i=0;i<3;i++){write_date(xq6[i]);delay(5);} break;case 7: for(i=0;i<3;i++){write_date(xq7[i]);delay(5);} break;default: break;}}void keyscan1(){if(s4==0){delay(5);if(s4==0){while(!s4);flag=1;}}}void keyscan(){rd=0;if(s1==0){delay(5);if(s1==0){s1num++;while(!s1);if(s1num==1){TR0=0;write_com(0x80+0x40+10);write_com(0x0f);}}if(s1num==2){write_com(0x80+0x40+7);}if(s1num==3){write_com(0x80+0x40+4);}if(s1num==4){write_com(0x80+13);}if(s1num==5){write_com(0x80+10);}if(s1num==6){write_com(0x80+7);}if(s1num==7){write_com(0x80+2);}if(s1num==8){s1num=0;write_com(0x0c);TR0=1;}}if(s1num!=0){if(s2==0){delay(5);if(s2==0){while(!s2);if(s1num==1){miao++;if(miao==60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10);}if(s1num==2){fen++;if(fen==60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7);}if(s1num==3){shi++;if(shi==24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);}if(s1num==4){xq++;if(xq==8)xq=1;write_xq();write_com(0x80+13);}if(s1num==5){ri++;switch(yue){case 1: case 3: case 5: case 7:case 8: case 10: case 12: if(ri==32) ri=1; break;case 4: case 6: case 9: case 11: if(ri==31) ri=1; break;case 2:if(nian%4==0&&nian%100!=0||nian%400==0){if(ri==30)ri=0;}else if(ri==29)ri=0;break;}write_sfm1(10,ri);write_com(0x80+10);}if(s1num==6){yue++;if(yue==13)yue=1;write_sfm1(7,yue);write_com(0x80+7);}if(s1num==7){nian++;if(nian==2100)nian=2000;write_sfm2(2,nian);write_com(0x80+2);}}}if(s3==0){delay(5);if(s3==0){while(!s3);if(s1num==1){miao--;if(miao==-1)miao=59;write_sfm(10,miao);write_com(0x80+0x40+10);}if(s1num==2){fen--;if(fen==-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7); }if(s1num==3){shi--;if(shi==-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4); }if(s1num==4){xq--;if(xq==0)xq=7;write_xq();write_com(0x80+13);}if(s1num==5){ri--;switch(yue){case 1: case 3: case 5: case 7:case 8: case 10: case 12: if(ri==0) ri=31; break;case 4: case 6: case 9: case 11: if(ri==0) ri=30; break;case 2: if(nian%4==0&&nian%100!=0||nian%400==0){if(ri==0)ri=29;}else if(ri==0)ri=28;break;}write_sfm1(10,ri);write_com(0x80+10);}if(s1num==6){yue--;if(yue==0)yue=12;write_sfm1(7,yue);write_com(0x80+7);}if(s1num==7){nian--;if(nian==1999)nian=2099;write_sfm2(2,nian);write_com(0x80+2);}}}}}void set_alarm(){if(shi==shia&&fen==fena&&miao==miaoa) {while(a--){didi();keyscan1();if(flag==1){flag=0;break;}}a=1000;}}void main(){init();while(1){keyscan();set_alarm();}}void timer0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==18){count=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;xq++;if(xq=8){xq=1;}write_xq();ri++;switch(yue){case 1: case 3: case 5: case 7:case 8: case 10: case 12: if(ri==32) ri=1; break;case 4: case 6: case 9: case 11: if(ri==31) ri=1; break;case 2: if(nian%4==0&&nian%100!=0||nian%400==0){if(ri==30)ri=0;}else if(ri==29)ri=0;break;default: break;}if(ri==31||ri==30||ri==29||ri==28){yue++;if(yue==13){yue=1;nian++;if(nian==2099)nian=2000;write_sfm2(2,nian);}write_sfm1(7,yue);}write_sfm1(10,ri);}write_sfm(4,shi);}write_sfm(7,fen);}write_sfm(10,miao);}}。
基于51单片机的电子跑表
电子跑表电路元件说明
一、显示部分
显示部分采用两片四位一体和两位一体的共阴数码管作为电路的显示时间信息和跑表的计时信息,显示部分驱动采用一片74HC04作为数码管的驱动芯片,如下图:
74HC04为六组反相器我们用来驱动六位数码管的共阴端,1A-6A为输入端,1Y-6Y为输出端。
二、复位电路
此复位电路为单片机上电的瞬间提供复位信号供单片机复位,在上电的瞬间
电容C1相当于同路,电压信号通过电容给单片机复位引脚提供一个高电平的复位信号,在电容充满电之后复位结束单片机进入正常工作状态,电阻R1为电容的放电电阻,用于在单片机掉电后快速将电容C1中的电量消耗掉方便下次单片机上电复位。
按键直接接在单片机VCC和单片机复位引脚端,当按下按键后单片机复位引脚通过按键短接到VCC实现复位,松开按键复位结束。
三、晶振电路
如中X1为单片机晶振,为单片机提供时钟信号,晶振值在仿真时设定为12MHZ,C2和C3为晶振起振电容。
四、时钟电路部分
单片机走时时钟信号使用一片DS1302作为计时基准,从1302中读取时分秒信息并实时显示在数码管,设定的时间信息可在按下确认键后保存到DS1302。
电池BT1为DS1302的掉电走时电池,方便单片机系统掉电后能继续走时。
五、按键部分
一共使用9个按键来作为电路的设定和切换键,按键功能及分布如下图
六、 单片机
单片机使用STC89系列51单片机作为主控芯片。
51单片机写的电子表
用51单片机编程,实现一个电子表源程序#include<reg52.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit dula=P2^6 ;sbit wela=P2^7;sbit led1=P1^0;Uchar code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x7 1};void delay(uint t) //延迟函数{uint i,j;for(i=0;i<t;i++)for(j=0;j<110;j++);}uchar num,num1,num2,num3,num4;uint a[6];void display(uint a[]){wela=1;P0=0xfe; //第一个数码管亮wela=0;dula=1;P0=table[a[0]];dula=0;delay(1);wela=1;P0=0xfd; //第2个数码管亮wela=0;dula=1;P0=table[a[1]];dula=0;delay(1);wela=1;P0=0xfd; //第2个数码管亮小数点wela=0;dula=1;P0=0x80;dula=0;delay(1);wela=1;P0=0xfb; //第3个数码管亮wela=0;dula=1;P0=table[a[2]];dula=0;delay(1);wela=1;P0=0xf7; //第4个数码管亮wela=0;dula=1;P0=table[a[3]];dula=0;delay(1);wela=1;P0=0xf7; //第4个数码管亮小数点wela=0;dula=1;P0=0x80;dula=0;delay(1);wela=1;P0=0xef; //第5个数码管亮wela=0;dula=1;P0=table[a[4]];dula=0;delay(1);wela=1;P0=0xdf; //第6个数码管亮wela=0;dula=1;P0=table[a[5]];dula=0;delay(1);}void main (void) //主函数开始{TMOD=0x11; // 初始化函数TH0=(65536-45872)/256; //TL0=(65536-45872)%256; //TH1=(65536-45872)/256; //TL1=(65536-45872)%256; //EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1){display(a); //显示数字}}void T0_time()interrupt 1{TH0=(65536-45872)/256; //初始化TL0=(65536-45872)%256;num1++;if(num1==4){num1=0;led1=~led1; //LED闪亮}}void T1_time()interrupt 3{TH1=(65536-45872)/256; //初始化TL1=(65536-45872)%256;num2++;if(num2==20){num2=0;num++;if(num==60){num=0;num3++;}if(num3==60){num3=0;num4++;}if(num4==24){num=0;}a[4]=num/10; // 秒(十位)a[5]=num%10; // 秒(个位)a[2]=num3/10; // 分(十位)a[3]=num3%10; // 分(个位)a[0]=num4/10; // 时(十位)a[1]=num4%10; // 时(个位)}}。
基于51单片机的电子表设计
1 绪论电子表是20世纪50年代才开始出现的新型计时器。
最早的一款电子表被称做“摆轮游丝电子表”,它诞生于1955年。
这种手表用电磁摆轮代替发条驱动,以摆轮游丝作为振荡器,微型电池为能源,通过电子线路驱动摆轮工作。
它的走时部分与机械手表完全相同,被称为第一代电子手表。
1960年,美国布洛瓦公司最早开始出售“音叉电子手表”。
这种手表以金属音叉作为振荡器,用电子线路输出脉冲电流,使机械音叉振动。
它比摆轮式电子手表结构简单,走时更精确,被称为第二代电子手表。
1969年,日本精工舍公司推出了世界上最早的石英电子表。
石英电子表的出现,立刻成为了钟表界主流产品,它走时精确,结构简单,轻松地将一、二代电子表,甚至机械表淘汰出局。
石英表又称“水晶振动式电子表”,因为它是利用水晶片的“发振现象”来计时的。
当水晶受到外部的加力电压,就会产生变形和伸缩反应;如果压缩水晶,便会使水晶两端产生电力。
这样的性质在很多结晶体上也可见到,称为“压电效果”。
石英表就是利用周期性持续“发振”的水晶,为我们带来准确的时间。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
从上世纪80年代,由当时的4位、8为单片机,发展到现在的32位300M的高速单片机。
1.1 单片机的介绍单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:一块芯片就成了一台计算机。
基于51单片机的简易数字电压表的设计单片机
基于51单片机的简易数字电压表的设计单片机————————————————————————————————作者:————————————————————————————————日期:2个人收集整理勿做商业用途甘肃畜牧工程职业技术学院毕业设计题目:基于51单片机的简易数字电压表的设计系部:电子信息工程系专业:信息工程技术班级:学生姓名:学号:指导老师:日期:目录毕业设计任务书 (1)开题报告 (3)摘要 (6)关键词 (7)引言 (7)第一章A/D转换器 (9)1.1A/D转换原理 (9)1.2 ADC性能参数 (11)1.2.1 转换精度 (11)1.2.2。
转换时间......................................... 错误!未定义书签。
1.3 常用ADC芯片概述 (13)第二章8OC51单片机引脚 (14)第三章ADC0809 (16)3。
1 ADC0809引脚功能 (16)3。
2 ADC0809内部结构 (18)3.3ADC0809与80C51的接口 (19)3.4 ADC0809的应用指导 (20)3.4。
1 ADC0809应用说明 (20)3.4.2 ADC0809转换结束的判断方法 (20)3。
4.3 ADC0809编程方法 (21)第四章硬件设计分析 (22)4。
1电源设计 (22)4.2 关于74LS02,74LS04 (22)4。
3 74LS373概述 (23)4。
3。
1 引脚图 (23)4。
3。
2工作原理 (23)4.4简易数字电压表的硬件设计 (24)结论 (25)参考文献 (25)附录.......................................................................................... 错误!未定义书签。
致谢 (29)毕业设计任务书学生姓名专业班级信息工程技术08。
2指导教师论文题目基于51单片机的简易数字电压表的设计研究的目标、内容及方法目标:基于MCS—51单片机,对设计硬件电路和软件程序应用的设计,使用发光二极管来显示所要测试模拟电压的数字电压值。
基于51单片机的数字秒表设计
摘要本设计是基于AT89S51单片机的简易数字秒表设计,主要组成是以51单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。
本秒表最大计时为99秒。
本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。
关键词:AT89S51 振荡电路计时数码管目录1设计概述 (1)1.1AT89S51概述 (1)1.2系统设计功能概述 (1)2系统设计 (2)2.1设计思路 (2)2.2硬件设计 (2)2.2.1单片机最小系统的设计 (2)2.2.2数码管显示电路设计 (3)2.3软件设计 (7)2.3.1软件设计流程图 (7)2.3.2消除开关抖动 (9)2.3.3数码管延时显示程序 (9)2.3.4延时1秒的程序 (10)3软件调试和结果 (10)3.1软件调试与下载 (10)3.2硬件仿真 (11)4心得体会 (12)参考文献 (14)附录 (15)I基于单片机的数字秒表设计主程序 (15)IIPCB电路图 (17)III实物图 (17)11 设计概述1.1 AT89S51概述AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In -system programmable)的可反复擦写1000次的Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准MCS -51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash 存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4k Bytes Flash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM ),32个外部双向输入/输出(I/O )口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT )电路,片内时钟振荡器。
#基于51单片机的简易电子表设计与仿真
智能仪器及使用实验报告项目名称:基于51单片机的简易电子表设计和仿真专业名称:测控技术和仪器班级:测控0901班学生姓名:指导教师:一、任务要求使用Keil uVision编程软件以及ISIS 7 Professional仿真软件制作一个简易电子表,要求具备电子表基本功能(时间显示、时间调整等)。
二、总体设计方案利用AT89C51作为控制以及1602LCD作为显示,通过6个按键实现出入时间设置状态、出入闹铃设置状态、小时位调整、分钟位调整、开关闹铃等功能。
系统的流程图如下:图1-1 系统仿真流程图三、系统硬件1、AT89C51引脚功能说明:AT89C51芯片如图1-2所示图1-2 AT89C51VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
51单片机电子秒表设计(Proteus)
51单片机电子秒表设计(Proteus)单片机硬件设计结课论文简易秒表设计专业:计算机科学与技术学生姓名:学号: 1307064248完成时间:2020年12月28日目录一、简述 (3)二、主要工具 (2)三、线路连接图(ISIS 7 Professional环境) (2)四、实现细则 (2)显示电路 (2)定时计数器 (3)五、程序 (4)六、模拟运行截图 (16)七、心得体会 (16)一、简述此秒表主要实现的功能是利用单片机内部定时计数器实现计时,然后通过LED组件显示出来。
因为这次设计时使用的是并排的6个数字显示LED,所以在计时时精确到10ms,最大即时59分59秒99。
实现过程中的主要部分包含显示和定时。
因为该LED与单片机相接的引脚只有14个,其中8个接在P0口上实现字形的显示,剩下的6个接在P2口用于选择6个数字型LED中的一个显示,所以每次只能显示一个数字。
要实现多个数字的显示需要快速显示每个LED,利用人的视觉差来实现多个数字同时显示。
计时只用到定时计数器T1(因为需要配合中断优先级,故没有使用T0,下文会详细讲到)。
另外还用到了两个按键,和两个LED灯(红、绿)。
按键用于控制开始计时和暂停、重置,LED 灯用于指示当前工作状态。
二、主要工具Keil uVision3,ISIS 7 Professional,AT89C51基础组件(试验箱)。
三、线路连接图(ISIS 7 Professional环境)四、实现细则显示电路数字型LED的实现原理为每个单元(共6个单元)含8个发光独立的LED灯,其中7个构成“8”字形,剩下的一个为小数点。
6个单元的每个相同位置引脚并联起来,最后通过8根线连接到单片机的P0口。
因此如果不把另外6根线连接上,每次通过P0口输出值时6个显示单元都会显示相同的图形(数字)。
LED单元组中另外6根引脚连接到单片机上,实现“按位显示”,并且是低电平选择,例如“111101”对应显示的是从右到左的第5个LED 单元。
电子测量大作业(基于C51单片机的简单数字电压表)
电⼦测量⼤作业(基于C51单⽚机的简单数字电压表)基于单⽚机的简易数字电压表的设计⼀、概述本课题设计是⼀种基于单⽚机的简易数字电压表的设计。
该设计主要由三个模块组成:A/D转换模块,数据处理模块及显⽰模块。
A/D转换主要由芯⽚ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。
数据处理则由芯⽚AT89C51来完成,其负责把ADC0808传送来的数字量经过⼀定的数据处理,产⽣相应的显⽰码送到显⽰模块进⾏显⽰;此外,它还控制着ADC0808芯⽚⼯作。
⼆、主要芯⽚1、ADC0808 主要特性ADC0808是CMOS单⽚型逐次逼近式A/D转换器,带有使能控制端,与微机直接接⼝,⽚内带有锁存功能的8路模拟多路开关,可以对8路0-5V输⼊模拟电压信号分时进⾏转换,由于ADC0808设计时考虑到若⼲种模/数变换技术的长处,所以该芯⽚⾮常适应于过程控制,微控制器输⼊通道的接⼝电路,智能仪器和机床控制等领域。
ADC0808主要特性:8路8位A/D转换器,即分辨率8位;具有锁存控制的8路模拟开关;易与各种微控制器接⼝;可锁存三态输出,输出与TTL兼容;转换时间:128µs;转换精度:0.2%;单个+5V电源供电;模拟输⼊电压范围0- +5V,⽆需外部零点和满度调整;低功耗,约15mW。
ADC0808芯⽚有28条引脚,采⽤双列直插式封装,其引脚图如图3所⽰。
图1 ADC0808引脚图下⾯说明各个引脚功能:IN0-IN7(8条):8路模拟量输⼊线,⽤于输⼊和控制被转换的模拟电压。
地址输⼊控制(4条):ALE: 地址锁存允许输⼊线,⾼电平有效,当ALE为⾼电平时,为地址输⼊线,⽤于选择IN0-IN7上那⼀条模拟电压送给⽐较器进⾏A/D转换。
ADDA,ADDB,ADDC: 3位地址输⼊线,⽤于选择8路模拟输⼊中的⼀路,其对应关系如表1所⽰:表1 ADC0808通道选择表START:START为“启动脉冲”输⼊法,该线上正脉冲由CPU送来,宽度应⼤于100ns,上升沿清零SAR,下降沿启动ADC⼯作。
基于51单片机的简易数字电压表的方案设计书
班级:智能电网111学生:喻卫湖南铁道职业技术学院电气工程系目录1控制要求2设计目的意义3 系统原理框图4 89C52单片机5 ADC0809 的工作原理6 系统原理图和PCB图7程序流程图8 C语言程序9数字电压表工作原理10设计体会1控制要求利用STC89C52单片机和ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。
外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。
然后由单片机给数码管数字信号,控制其发光,从而显示数字。
2设计目的意义1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
2.通过数字电压表的设计系统掌握51单片机的应用。
掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入STC89C52单片机并进行调试等。
3 系统原理框图4 89C52引脚资料STC89C52P1 P0P3 P2AD0809D0~D7IN0~IN7VREF+VREF-CLKOEST、ALE四位数码管位选段选控制线数据待测电压系统原理框图89C51引脚图总线型DIP40引脚封装电源引脚(2个)VCC:接+5V电源。
GND:接地端。
外接晶体引脚(2个)XTAL1:外接晶振输入端(采用外部振荡器时,此引脚接地)。
XTAL2:外接晶振输入端(采用外部振荡器时,此引脚作为外部振荡信号输入端)。
并行输入/输出引脚(32个)P0.0~P0.7:通用I/O引脚。
P1.0~P1.7:通用I/O引脚。
P2.0~P2.7:通用I/O引脚或数据低8位地址总线复用引脚。
P3.0~P3.7:通用I/O引脚或第二功能引脚(RXD、TXD、INT0、INT1、T0、T1、WR 、RD)。
控制引脚(4个)RST/VPD:复位信号输入引脚/备用电源输入引脚。
基于51单片机的电子式单相智能电表设计
山东农业大学毕 业 论 文 基于51单片机的电子式单相智能电表设计 院系: 机械与电子工程学院 专业班级: 电气工程及其自动化专业三班 届次:20**届 学生姓名: 学号: 指导教师: 二0**年六月六日……………………. ………………. …………………装订线……………….……. …………. …………. ………目录引言 (3)1传统电能表 (3)1.1电能表的发展 (3)1.2 电能表的发展前景 (3)2 智能电能表 (4)2.1智能电表的概念 (4)2.2 智能电能表的典型结构 (4)2.3智能电表的主要特点 (4)3系统设计的基本思路和具体设计任务以及结构框图 (4)3.1系统设计的基本思路 (4)3.2具体设计任务 (5)3.3 系统结构框图 (5)4系统硬件电路设计 (6)4.1 计量芯片ADE7757 (6)4.1.1 ADE7757功能及特点概述 (6)4.1.2 ADE7757计量芯片的内部结构和各引脚功能 (6)4.1.3 ADE7757的原理特性 (7)4.1.4 ADE7757与单片机的接口 (8)4.2电能计量电路设计 (8)4.2.1电压采集通道设计 (9)4.2.2电流采集通道设计 (10)4.2.3计量芯片与单片机之间连线 (11)4.3单片机外围电路设计及器件选择 (11)4.3.1 单片机STC89C52概述、引脚配置及功能概述 (11)4.3.2 单片机控制电路最小系统 (13)4.3.3 LCD显示器模块设计 (14)4.3.3.1 LCD显示器工作原理简介 (14)4.3.3.2 芯片1602简介 (14)4.3.3.3 显示电路设计 (16)4.3.4 数据存储模块设计 (16)4.3.4.1芯片24C02简介 (16)4.3.4.2 存储模块电路设计图 (17)4.3.5时钟模块设计 (18)4.3.5.1 DS1302简介 (18)4.3.5.2 时钟电路设计 (19)4.3.6 通信模块设计 (19)4.3.6.1单片机串行通信基础 (19)4.3.6.2 RS232串行口标准简介 (20)4.3.6.3 MAX232简介 (20)4.3.6.4 接口电路设计 (21)4.3.7 电源模块设计 (21)5 系统软件程序流程图以及上位机设计 (23)5.1主程序设计框图 (23)5.2 功率计量流程图 (23)5.3 按键查询流程图 (25)5.4上位机设计 (25)6 总结 (26)参考文献 (27)致谢 (28)附录 (29)ContentsAbstracts (1)Introduction (1)1Traditional meters (1)1.1 The development of meters (1)1.2 The prospects of meters (2)2 Smart meters (2)2.1The concept of smart meters (2)2.2 The typical structure of smart meters (2)2.3The main features of smart meters (3)3The basic idea of system design and detailed design tasks and structure diagram (3)3.1The basic idea of system design (3)3.2The detailed design tasks (3)3.3 System structure diagram (4)4System hardware circuit design (4)4.1 Metering chip ADE7757 (4)4.1.1 ADE7757 functions and features Overview (5)4.1.2 ADE7757 chip's internal structure and function of each pin (6)4.1.3 The principle of ADE7757 (6)4.1.4ADE7757 and microcontroller interface (6)4.2 Energy Metering Circuit Design (7)4.2.1Design of voltage acquisition channels (8)4.2.2Design of the current acquisition channel (9)4.2.3Metering connection between the chip and the microcontroller (9)4.3 Single-chip peripheral circuit design and component selection (9)4.3.1 SCM STC89C52 overview, pin configuration and function overview .. 124.3.2 Minimum System of MCU control circuit (13)4.3.3 LCD display module design (13)4.3.3.1 LCD monitor works Introduction (13)4.3.3.2 Chip 1602 Introduction (14)4.3.3.3 Display circuit design (15)4.3.4 Design Data storage module (15)4.3.4.1 Chip 24C02 Introduction (16)4.3.4.2 The memory module circuit design (16)4.3.5Clock Module Design (16)4.3.5.1 DS1302 Introduction (17)4.3.5.2 Clock circuit design (18)4.3.6 Communication Module (18)4.3.6.1Serial communication infrastructure (18)4.3.6.2 RS232 serial port standard profiles (19)4.3.6.3 MAX232 Introduction.................................. 错误!未定义书签。
