帶修改暫停啟動的動態數碼管時鐘

2021-07-26 09:02:38 字數 2449 閱讀 8312

#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...