數碼管流水燈

2021-08-01 23:44:56 字數 1128 閱讀 3490

使用stc89c52晶元p2.0~p2.7分別控制8位數碼管,p0.0~p0.7分別控制各位數碼管(共陽極)a 、b、c、d、e、f、g、h。

使用該電路圖分別以下功能:

按下k18(p1.4口低電平控制)一次全部數碼管自動顯示數字從0到9(迴圈);兩次全部數碼管自動顯示數字從9到0(迴圈)。

按下k19(p1.5口低電平控制)一次全部數碼管顯示1,兩次全部數碼管顯示2,如此類推(從1到9),一直到顯示9。再按一次由從1開始從新迴圈。

按下k20(p1.6口低電平控制)一次全部顯示9,兩次全部顯示8,如此類推(從9到0),一直到顯示0.再按一次由1開始從新迴圈。

#include

#include "intrins.h"

sbit key1st=p1^4; //k18

sbit key2nd=p1^5; //k19

sbit key3rd=p1^6; //k20

sbit key4th=p1^7; //k21

unsigned

char a,i,k,l,mark1st,mark2nd,mark3rd;

unsigned

char code led[10]=; /*規定led陣列中數碼管顯示為0~9*/

void delay1st() /*延時100ms*/

while (--n);

}void delay()

}void main()

}if(mark1st) /*k18按下一次全部數碼管自動顯示數字從0到9(迴圈)*/

}else

/*k18兩次全部數碼管自動顯示數字從9到0(迴圈)*/}}

if(!key2nd) /*檢測按鍵k19是否按下,如果確定按下,使與k18按鍵模式無關變數返回初始值*/

}if(mark2nd) /*k19一次全部數碼管顯示1,兩次全部數碼管顯示2,如此類推(從1到9),一直到顯示9*/

if(!key3rd) //檢測按鍵k20是否按下,如果確定按下,使與k18按鍵模式無關變數返回初始值

}if(mark3rd) /*k20按下一次全部顯示9,兩次全部顯示8,如此類推*/

}}

流水燈 數碼管 定時器中斷

利用動態掃瞄和定時器1在數碼管上顯示出從765432開始以1 10秒的速度往下遞減直至765398並保持顯示此數,與此同時利用定時器0以500ms速度進行流水燈從上至下移動,當數碼管上數減到停止時,實驗板上流水燈也停止然後全部開始閃爍,3秒後 用t0定時 流水燈全部關閉 數碼管上顯示出 hello ...

數碼管逐次加一同時流水燈

include reg52.h 此檔案中定義了微控制器的一些特殊功能暫存器 typedef unsigned int u16 對資料型別進行宣告定義 typedef unsigned char u8 sbit lsa p2 2 sbit lsb p2 3 sbit lsc p2 4 sbit led...

51微控制器用中斷實現流水燈,數碼管和點陣同時顯示

小白自備筆記 數碼管1s左移,6位數碼管從999999每一秒鐘減一倒著計數,點陣9 0倒計時顯示。include 標頭檔案 include 庫函式標頭檔案 define uint unsigned int 巨集定義 define uchar unsigned char define ulong un...