資源簡介
基于at89c51電子鐘,keil和proteus仿真
代碼片段和文件信息
?#include
#define?uchar?unsigned?char
#define?uint?unsigned?int
#define?delay_time?3
uchar?kdat[]={00000000};
uint?tcounttu;
uchar?dat1[]={00000021};
uchar?dat2[]={00000000};
uchar?alarms[]={00000000};
uchar?dis_bit[]={0x800x400x200x100x080x040x020x01};
unsigned?char??code?SEG7[11]={0xC0/*0*/
??????? ???????????????0xF9/*1*/
???????? ???????????????0xA4/*2*/
???????????????????????????????0xB0/*3*/
???????????????????????????????0x99/*4*/
???????????????????????????????0x92/*5*/
???????????????????????????????0x82/*6*/
???????????????????????????????0xF8/*7*/
???????????????????????????????0x80/*8*/
???????????????????????????????0x90/*9*/
???????????????????0xBF/*-*/
??????????????????};
sbit?miaobiao1=P1^0;
sbit?tminute=P1^1;
sbit?thour=P1^2;
sbit?miaobiao2=P1^3;
sbit?alarm=P1^4;
sbit?P0_0=P0^0;
sbit?P1_5=P1^5;
sbit?P1_6=P1^6;
sbit?P1_7=P1^7;
uchar?ms=0;
uchar?flag=0;
uchar?sec=0;
uchar?minit=0;
struct?time{uchar?second;uchar?minute;uchar?hour;}time1;
??uchar?ni;
void?delay(n)
??{
????while(n--)
{
????????for(i=120;i>0;i--);
????}?
??}
?void?modify(void)
{
???EA=0;
???if(thour==0)
???{??
????if(flag==0)
????{
?????dat1[6]++;delay(280);
?????if(dat1[6]>9)
?
???{?dat1[6]=0;dat1[7]++;}
else?if((dat1[7]>1)&&(dat1[6]>3))
??{dat1[7]=0;?dat1[6]=0; ?}
?
}
?if(flag==1)
?{
???alarms[6]++;delay(200);
???if(alarms[6]>9)
???{
??????alarms[6]=0;alarms[7]++;
??if(alarms[7]>2)
??{
?????alarms[7]=0;
??}
???}
???????dat[6]=alarms[6];
???dat[7]=alarms[7];
?}
???}
???if(tminute==0)
???{?
????if(flag==0)
????{
?????dat1[3]++;delay(280);
?if(dat[3]>=9)
?{
????dat1[4]++;dat1[3]=0;
if(dat1[4]>5)
{
???dat1[4]=0;
}
?}
????}
?if(flag==1)
?{
???alarms[3]++; delay(200);
???if(alarms[3]>9)
???{
??????alarms[4]++;alarms[3]=0;
??if(alarms[4]>5)
??{
?????alarms[4]=0;
??}
???}
???dat[3]=alarms[3];
???dat[4]=alarms[4];
?}
???}
???if(miaobiao1==0)
???{
??????TR0=0;ET0=0;TR1=1;ET1=1;
???}
???if(miaobiao2==0)
?{?
???TR0=1;ET0=1;TR1=0;ET1=0;
???dat2[0]=0;
???dat2[1]=0;
???dat2[3]=0;
???dat2[4]=0;
???dat2[6]=0;
???dat2[7]=0;
???ms=0;
???sec=0;
???minit=0;
?}
?if(P1_5==0)
?{
???TR0=0;ET0=0;TR1=0;ET1=0;?
?}
if(alarm==0)
{
?TR0=0;ET0=0;TR1=0;ET1=0;flag=1;
????dat[0]=0;
????dat[1]=0;
dat[2]=10;
????dat[3]=0;
dat[4]=0;
dat[5]=10;
dat[6]=0;
dat[7]=0;
????}
???EA=1;
???
}
void?init(void)
{
TMOD?=?0x11;?
TH0?=?0xDB;
TL0?=0xFF;
TH1=0xDB;
TL1=0xFF;
????ET0?=?1;? ??//10ms
ET1=1;
// TR1=1;
????TR0=1;
????tcount=0;
ms=0;
sec=0;
minit=0;
EA?=?1;
????
}
void?test(void)
{
???for(k=0;k<8;k++)
???{
??????P3=dis_bit[k];P2=SEG7[dat[k]];?delay(1);P3=0X00;
???}
????}
void?main()
???{
??????init();
??????delay(10);
??????while(1)
??????{
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????285184??2009-07-18?10:11??單片機電子時鐘版版.doc
?????文件?????122821??2009-07-17?17:46??keil和professional仿真\Last?Loaded?單片機電子時鐘.DBK
?????文件?????122821??2009-07-17?17:54??keil和professional仿真\單片機電子時鐘.DSN
?????文件????????768??2009-06-26?10:02??keil和professional仿真\單片機電子時鐘.PWI
?????文件???????9990??2009-07-18?09:42??keil和professional仿真\電子時鐘
?????文件???????2725??2009-07-18?09:42??keil和professional仿真\電子時鐘.hex
?????文件?????????33??2009-07-18?09:42??keil和professional仿真\電子時鐘.lnp
?????文件??????10464??2009-07-18?09:42??keil和professional仿真\電子時鐘.LST
?????文件??????13451??2009-07-18?09:42??keil和professional仿真\電子時鐘.M51
?????文件??????12089??2009-07-18?09:42??keil和professional仿真\電子時鐘.OBJ
?????文件????????995??2009-07-18?09:42??keil和professional仿真\電子時鐘.Opt
?????文件????????345??2009-07-18?09:42??keil和professional仿真\電子時鐘.plg
?????文件???????2153??2009-06-19?18:21??keil和professional仿真\電子時鐘.Uv2
?????文件????????995??2009-06-25?15:44??keil和professional仿真\電子時鐘_Opt.Bak
?????文件??????????0??2009-06-19?18:12??keil和professional仿真\電子時鐘_Uv2.Bak
?????文件???????4499??2009-06-19?18:13??keil和professional仿真\電子時鐘程序.c
?????文件?????186368??2009-07-15?09:28??keil和professional仿真\電子時鐘原理圖.SCHDOC
?????目錄??????????0??2009-06-27?23:05??keil和professional仿真
-----------?---------??----------?-----??----
???????????????775701????????????????????18
評論
共有 條評論