#include
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
////
unsigned char code dig_place[8] = ;//位選控制 查表的方法控制
unsigned char dig_code[10] = ; //段選控制 查表的方法控制
//0、1、2、3、4、5、6、7、8、9的顯示碼
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
//////
///char sec,min,hour;
unsigned int i = 0,k = 0;
unsigned char num = 0;
unsigned char local = 0;
unsigned char flag = 1;
unsigned char keyscan(void);
void delay(unsigned char t);
sbit key1 = p1^0;
sbit key2 = p1^1;
sbit key3 = p1^2;
sbit key4 = p1^3;
sbit key5 = p1^4;
sbit key6 = p1^5;
sbit beep = p1^6;
void main(void)
if(min >= 60)
if(hour >= 24)
p3 = ~dig_code[local];
num = keyscan();
if(num == 1)
//num = 0;
}if(num == 2)
break;
case
4:sec += 10;
if(sec >= 60)
break;
case
3:min++;
if(min >= 60)
break;
case
2:min += 10;
if(min >= 60)
break;
case
1:hour++;
if(hour >= 24)
break;
case
0:hour += 10;
if(hour >= 24)
break;
}//num = 0;
}if(num == 3)
break;
case
4:sec -= 10;
if(sec <= 0)
break;
case
3:min--;
if(min <= 0)
break;
case
2:min -= 10;
if(min <= 0)
break;
case
1:hour--;
if(hour <= 0)
break;
case
0:hour -= 10;
if(hour <= 0)
break;
}//num = 0;
}if(num == 4)
if(num == 5)
if(num == 6)
if(sec == 0 && min == 30 && hour == 20)
}}void isr_timer0(void) interrupt 1
}switch(k)
}unsigned char keyscan(void)}}
else
if(!key2) //如果檢測到低電平,說明按鍵按下}}
else
if(!key3) //如果檢測到低電平,說明按鍵按下}}
else
if(!key4) //如果檢測到低電平,說明按鍵按下}}
else
if(!key5) //如果檢測到低電平,說明按鍵按下}}
else
if(!key6) //如果檢測到低電平,說明按鍵按下}}
else
return0;}
void delay(unsigned char t)
基於數碼管的簡單時鐘系統
include 標頭檔案 define uchar unsigned char 巨集定義 之後用uchar代替unsigned char 這裡指無符號字元 define uint unsigned int 巨集定義 同上 無符號整數 sbit beep p0 0 uchar dat 定義初始化顯示時...
14 動態數碼管的使用
工作原理 動態顯示的特點是將所有的位數碼管的段選線併聯在一起,由位選線控制是哪一位數碼管有效。這樣一來,就沒有必要每一位數碼管配乙個鎖存器,從而大大簡化了硬體電路。選亮數碼管採用動態掃瞄顯示。所謂動態掃瞄顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的餘暉和人眼視覺暫留作用,使人的感覺好像...
51微控制器數碼管的動態顯示
本節實驗,需要加深理解鎖存器,位選線,段選線等,以及防止重影的方法 和keil中數 組的定義 另外想讓8個數碼管同時顯示不同的數字,靠的是程式的快速執行,和人眼的短時間緩衝原理實現的 本例的延時設定是1ms,可以分別用100ms 等嘗試一下 include define uchar unsigned...