|
中斷,定時器,數(shù)碼管動態(tài)顯示
0~99秒定時器
按鍵按一下
開啟顯示00
再按一下開始計時
再按一下暫停
再按一下清0
一起學(xué)習(xí)
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg51.h>
- sbit p1=P1^0;
- sbit p2=P1^1;
- unsigned char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
- 0x80,0x90};
- unsigned char disp[2]={0xc0,0xc0};
- unsigned char i=0;
- unsigned int cnt =0;
- void main(){
- unsigned long sec =0;
- EA=1;
- TMOD=0x01;
- TH0=0xfc;
- TL0=0x18;
- ET0=1;
- TR0=1;
-
- while(1){
- if(cnt>=1000){
- cnt=0;
- sec++;
- disp[0]=TAB[sec%10];
- disp[1]=TAB[sec/10];
- }
-
-
-
- }
-
- }
- void inter0() interrupt 1{
- TH0=0xfc;
- TL0=0x18;
- cnt++;
- if(++i==3)i=1;
- P2=0xff;
- P1=~i;
- P2=disp[i-1];
-
-
- }
復(fù)制代碼
所有資料51hei提供下載:
定時器秒表.rar
(14.37 KB, 下載次數(shù): 37)
2018-5-12 20:39 上傳
點擊文件名下載附件
|
|