查看文章 |
单片机24小时电子计时器DIY
2007-12-26 09:49
作品:(挺粗糙的 )![]() ![]() 程序代码#include <reg52.h>
#define uchar unsigned char #define uint unsigned int//方便调用 uchar code d_Code[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6};//定义段码! uchar code w_Code[]={0x0e,0x0d,0x0b,0x07};//定义位码! uchar count005=0;//这是定义的一个计数器,每次中断,也就是0,05S加1 uint Wei[4]; uint year=0; uchar mouth=1,date=1,hour=0,minute=0,sec=0;//定义时间变量 void main(void){ uchar i,n,m; TMOD=0x01;//计数器模式控制器,这里表示,使用定时器0,采用16位计数器,定时器工作,只由软件控制 TR0=1;//启动定时器 ET0=1;//定时器0允许中断 EA=1;//系统中断开放 TL0=0xB0;//定时器初值高位 TH0=0x3c;//定时器初值低位,初值计算:2的16次方-50000,即每50000个机器周期中断一次, while(1){ for (i= 0;i<4;i++){//动态扫描显示时间 if(count005<11&&i==2){ P1=d_Code[Wei[i]]+1; }else{ P1=d_Code[Wei[i]]; } P2=w_Code[i]; for(n=0;n<3;n++){ for(m=0;m<255;m++); } } } } timer0() interrupt 1{//中断后执行的过程 TL0=0xB0; TH0=0x3c; if (++count005==20){ Wei[1]=minute/10; Wei[0]=minute-Wei[1]*10; Wei[3]=hour/10; Wei[2]=hour-Wei[3]*10; if(++sec==60){ if(++minute==60){ if(++hour==24){ hour=0; } minute=0; } sec=0; } count005=0; } } 本站提供相关配件,并提供完整的电子表程序! 详情请见:我的淘宝店:http://auction1.taobao.com/auction/0/item_detail-0db1-001633ddd8289cd44cef3a841ccc7c21.jhtml 也可以QQ联系:280345346! |
最近读者:
)

程序代码