仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
截屏2022-05-13 00.42.00.png (475.44 KB, 下載次數: 53)
下載附件
2022-5-13 00:45 上傳
51hei.gif (135.59 KB, 下載次數: 55)
下載附件
2022-5-13 20:22 上傳
截屏2022-05-13 00.42.48.png (1.39 MB, 下載次數: 61)
下載附件
2022-5-13 00:46 上傳
單片機源程序如下:
- #include <AT89X51.H>
- unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00};
- unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
- 0xef,0xdf,0xbf,0x7f};
- unsigned char dispbuf[8]={0,0,16,0,0,16,2,1};
- unsigned char dispbitcnt;
- unsigned char second;
- unsigned char minite;
- unsigned char hour;
- unsigned int tcnt;
- unsigned char mstcnt;
- unsigned char i,j;
- void main(void)
- {
- TMOD=0x02;
- TH0=0x06;
- TL0=0x06;
- TR0=1;
- ET0=1;
- EA=1;
- hour=12;
- while(1)
- {
- if(P0_0==0)
- {
- for(i=5;i>0;i--)
- for(j=248;j>0;j--);
- if(P0_0==0)
- {
- second++;
- if(second==60)
- {
- second=0;
- }
- dispbuf[0]=second%10;
- dispbuf[1]=second/10;
- while(P0_0==0);
- }
- }
- if(P0_1==0)
- {
- for(i=5;i>0;i--)
- for(j=248;j>0;j--);
- if(P0_1==0)
- {
- minite++;
- if(minite==60)
- {
- minite=0;
- }
- dispbuf[3]=minite%10;
- dispbuf[4]=minite/10;
- while(P0_1==0);
- }
- }
- if(P0_2==0)
- {
- for(i=5;i>0;i--)
- for(j=248;j>0;j--);
- if(P0_2==0)
- {
- hour++;
- if(hour==24)
- {
- hour=0;
- }
- dispbuf[6]=hour%10;
- dispbuf[7]=hour/10;
- while(P0_2==0);
- }
- }
- }
- }
- void t0(void) interrupt 1 using 0
- {
-
- mstcnt++;
- if(mstcnt==8)
- {
- mstcnt=0;
-
- P3=0xff; //關閉所有顯示
- P1=dispcode[dispbuf[dispbitcnt]];
- P3=dispbitcode[dispbitcnt];
- dispbitcnt++;
- if(dispbitcnt==8)
- {
- dispbitcnt=0;
- }
- }
- tcnt++;
- if(tcnt==4000)
- {
- tcnt=0;
- second++;
- if(second==60)
- {
- second=0;
- minite++;
- if(minite==60)
- {
- minite=0;
- hour++;
- if(hour==24)
- {
- hour=0;
- }
- }
- }
- dispbuf[0]=second%10;
- dispbuf[1]=second/10;
- dispbuf[3]=minite%10;
- dispbuf[4]=minite/10;
- dispbuf[6]=hour%10;
- dispbuf[7]=hour/10;
- }
- }
復制代碼
Keil4代碼與Proteus8.8仿真下載:
數字電子鐘設計.zip
(1.52 MB, 下載次數: 47)
2022-5-13 00:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|