利用AT89S51單片機的定時/計數器設計一個倒計時秒表,要求從59分59秒開始進行倒計時,每減少一分鐘,蜂鳴器響一聲,直至倒計時結束為止。 1、把“單片機系統”區域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“八路動態數碼顯示模塊”區域中的任一個a-h端口上; 2、把“單片機系統”區域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“八路動態數碼顯示模塊”區域中的任一個g1-g8端口上; 3、蜂鳴器連接到P1.4;
單片機源程序如下:
- #include <reg51.h>
- char time,i,j;
- char min=59;
- char sec=59;
- char word[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- sbit p1_4=P1^4;
- void delay()
- {
- for(i=0;i<10;i++)
- for(j=0;j<100;j++);
- }
- timer0() interrupt 1{
- TH0=0x3c;
- TL0=0xb0;
- time++;
- if(time==20)
- {
- time=0;
- sec--;
- }
- if(sec==-1)
- {
- min--;sec=59;p1_4=~p1_4;delay();delay();p1_4=~p1_4;
- }
- if(min==-1)
- {
- min=59;
- }
-
- }
- void main()
- {
- TMOD=0X01;
- TH0=0x3c;
- TL0=0xb0;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- P0=0xef;
- P2=word[min/10];
- delay();
- P0=0xf7;
- P2=word[min%10];
- delay();
- P0=0xfd;
- P2=word[sec/10];
- delay();
- P0=0xfe;
- P2=word[sec%10];
- delay();
-
- }
- }
復制代碼
所有資料51hei提供下載:
定時.zip
(23.55 KB, 下載次數: 24)
2018-11-19 19:16 上傳
點擊文件名下載附件
程序
|