51單片機按鍵計數器實例--調用外部中斷
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
-------------------------------------------------
- #include<reg52.h>
- #define uint unsigned int
- sbit a1=P2^6; //段選1
- sbit a2=P2^7; //段選2
- uint k=0;
- uint code dat[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- //共陰數碼管,位選低電平啟動
- void delay() {
- uint i;
- for(i=2000;i>0;i--);
- }
- void main() {
- EA=1; //中斷允許總控制位
- EX0=1; //外部中斷0的中斷允許位
- EX1=1; //外部中斷1的中斷允許位
- IT0=1; //外部中斷0的觸發方式選擇位,當IT0=1,為下降沿觸發方式
- IT1=1; //外部中斷1的觸發方式選擇位,當IT1=1,為下降沿觸發方式
- while(1) {
- P0=0;
- P0=dat[k/10];//十位數據
- a2=1;//第二位位選高電平,高阻
- a1=0;//第一位位選低電平,導通
- delay();
-
- P0=0;
- P0=dat[k%10];//個位數據
- a1=1;//第一位位選高電平,高阻
- a2=0;//第二位位選低電平,導通
- delay();
- }
- }
- void jiashu() interrupt 0 {
- if(k<99)
- k=k+1;
- else
- k=0;
- }
- void jianshu() interrupt 2 {
- if(k>0)
- k=k-1;
- else
- k=99;
- }
復制代碼
---------------------------------------------------
Proteus7.5版本的仿真工程下載:
按鍵計數器1.rar
(41.06 KB, 下載次數: 187)
2018-6-21 16:32 上傳
點擊文件名下載附件
|