|
基于51單片機(jī)的時(shí)鐘程序和仿真圖
0.png (12.03 KB, 下載次數(shù): 48)
下載附件
2018-12-3 18:02 上傳
單片機(jī)源程序如下:
- #include"reg51.h"
- #define uint unsigned int
- sbit key=P1^0;
- unsigned int addNum;
- unsigned char Nums,Numm,Numh;
- #define SEGNUM P0
- #define WEI P2
- unsigned char code table[]={0x3f ,0x06 ,0x5b ,0x4f ,0x66 ,0x6d ,
- 0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c ,
- 0x39 ,0x5e ,0x79 ,0x71 ,0x00};
- void delay(unsigned int num)
- {
- unsigned i,j;
- for(i=num;i>0;i--)
- for(j=120;j>0;j--);
- }
- void main()
- {
- TMOD=0X02;
- TL0=TH0=6;
- ET0=1; //中斷允許位
- EA=1;
- TR0=1; //TR0置1,開啟計(jì)時(shí)
- IT0=1; //中斷0的中斷方式
- EX0=1; //開通允許位
- IT1=1; //中斷方式
- EX1=1;
- TR0=1; //啟動(dòng)
- while(1)
- {
-
- if(!key)
- {
- delay(10) ;
- if(!key)
- {
- Numh++;
- while(!key) ;
- }
- }
- WEI=0Xef;
- SEGNUM=table[Nums/10]; //對(duì)10取整
- delay(5);
- WEI=0Xdf;
- SEGNUM=table[Nums%10];
- delay(5);
- WEI=0xfb;
- SEGNUM=table[Numm/10];
- delay(5);
- WEI=0xf7;
- SEGNUM=table[Numm%10];
- delay(5);
- if(Numm==60)
- {
- Numm=0;
- }
- WEI=0xfe;
- SEGNUM=table[Numh/10];
- delay(5);
- WEI=0xfd;
- SEGNUM=table[Numh%10];
- delay(5);
-
- }
- }
- void timer0() interrupt 1
- {
- addNum++;
- if(addNum==4000)
- {
- Nums++;
- addNum=0;
- }
- if(Nums==60)
- {
- Numm++;
- Nums=0;
- }
-
- if(Numm==60)
- {
- Numh++;
- Numm=0;
- }
-
- if(Numh==24)
- {
- Numh=0;
- }
- }
- void ex0() interrupt 0 //外部中斷0
- {
- Nums++; //表示外部中斷來時(shí)的動(dòng)作 (外部中斷1)
- }
- void ex1() interrupt 2
- {
- Numm++;
- }
復(fù)制代碼
所有資料51hei提供下載:
sz.zip
(59.79 KB, 下載次數(shù): 59)
2018-12-3 11:44 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|