下载此文档

电子时钟设计说明书.doc


文档分类:通信/电子 | 页数:约11页 举报非法文档有奖
1/11
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/11 下载此文档
文档列表 文档介绍
电子时钟的设计一、设计要求1、单片机复位以后,自动进入计时状态,起始于00时00分00秒。2、用定时器实现计时功能。3、用P3^2管脚实现日期与时间的切换。二、总体设计思路硬件方面使用AT89C51单片机芯片控制电路,软件方面使用单片机语言程序来实现整个电子时钟显示,利用定时器T0实现电子时钟计时,用定时器T1实现数码管刷新显示,通过判断P3^2管脚是否按下来实现日期与时间的切换。三、硬件设计1、原理综述本次设计电子时钟电路包括以下部分:单片机、按键、复位、晶振及显示电路。:使用了AT89C51单片机芯片控制电路。显示电路:P0口输出段码,P2口输出位选码,选用共阳极数码管。按键电路:P3^2管脚接一个开关来实现日期与时间的切换。2、元器件清单序号名称型号1单片机AT89C512数码管(共阳极)7SEG-MP*8-CA-BLUE3反相器(8个)74064上拉电阻RN12205上拉电阻RP13306电阻R18807电阻R22208开关(2个)BUTTON9晶振12M10电容(C1C2)22pf11电容C31uf3、、软件设计1、、程序及注释#include<> //#defineucharunsignedchar //将unsignedchar宏定义为uchar,其数值范围为0~255#defineuintunsignedint//unsignedint的数值范围为0~65535ucharcodeSEG7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管0~9段码,code为存放入ROMucharcodeSEG8[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//共阳极数码管0.~[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//加了反相器的共阳极位码uintdeda,sec,min,hour,day=30,mouth=10,year=2013;//t;//旋转计数器变量的定义sbitchange=P3^2;//定义P3^2为切换端口//延时子函数******voiddelay(uintk)//1ms延时函数{uinti,j;for(i=0;i<k;i++){for(j=0;j<121;j++){;}}}//中断初始化设置函数******voidinit(void){TMOD=0x11;//定时器T0、T1方式1TH0=-(50000/256);//将50ms赋给高8位TL0=-(50000%256);//将50ms赋给低8位ET0=1;//允许T0中断TR0=1;//启动T0TH1=-(6000/256);//6msTL1=-(6000%256);ET1=1;//允许T1中断TR1=1;//启动T0EA=1;//开总中断}//进入中断******voidtime0(void)interrupt1//定义中断名为time0的T0中断服务函数,1是中断号{TH0=-(50000/256);TL0=-(50000%256);deda++; //计时器deda递增}//刷新显示******voidtime1(void)interrupt3{TH1=-(6000/256);TL1=-(6000%256);if(++cnt>t=0;if(change==1)//判断是显示时间还是日期{P2=0xff;//t){case0:P0=SEG7[sec%10];P2=ACT[7];break; //显示秒的个位case1:P0=SEG7[sec/10];P2=ACT[6];break; //显示秒的十位case2:P0=0xbf;P2=ACT[5];break; //显示-case3:P0=SEG7[min%10];P2=ACT[4];break; //显示分的个位case4:P0=SEG7[min/10];P2=ACT[3];break; //显示分的十位case5:P0=0xbf;P2=ACT[2];break; //显示-case6:P0=SEG7[hour%10];P2=ACT[1];break;//显示时的个位case7:P0=SEG7[hour/10];P2=ACT[0];break;//显示时的十位default:break;//一项也不符合则退出}}else{P2=0xff;//t){case0:P0=SEG7[day%10];P2=ACT[7];break; //显示日的

电子时钟设计说明书 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数11
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2830622664
  • 文件大小2.30 MB
  • 时间2019-06-27
最近更新