51微控制器-靜態數碼管
阿新 • • 發佈:2022-05-24
51微控制器
靜態數碼管
問題一:點亮LED6 並顯示數值6
開發板為A2學習開發板(普中) 數碼管連線到138譯碼器上
由上圖可知 如果要點亮LED6可知要在譯碼器的P22 P23 P24 輸入二進位制 101(5即是LED6)
由於74HC245晶片的作用
問題是點亮LED6 顯示數值6
可知本要向 數碼管輸入1011 1110 經過74HC245晶片可知要向P00埠寫入 0111 1011 即是 0x7D
程式碼如下:
void main(){ P2_4 = 1; P2_3 =0; P2_2 = 1; //138譯碼器 指定 101 等於 5 LED6被選中 P0 = 0X7D; while(1){ } }
通過switch迴圈和 陣列可以實現對8個數碼管的0-9數值顯示
程式碼如下
unsigned char NixieTable[] = {0x3f,0x06,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} ; void Nixie(unsigned char Location,number){ switch(Location){ case 1: P2_4 = 1; P2_3 = 1; P2_2 = 1; break; case 2: P2_4 = 1; P2_3 = 1; P2_2 = 0; break; case 3: P2_4 = 1; P2_3 = 0; P2_2 = 1; break; case 4: P2_4 = 1; P2_3 = 0; P2_2 = 0; break; case 5: P2_4 = 0; P2_3 = 1; P2_2 = 1; break; case 6: P2_4 = 0; P2_3 = 1; P2_2 = 0; break; case 7: P2_4 = 0; P2_3 = 0; P2_2 = 1; break; case 8: P2_4 = 0; P2_3 = 0; P2_2 = 0; break; } P0 = NixieTable[number]; } void main(){ //P2_4 = 1; //P2_3 =0; //P2_2 = 0; //138譯碼器 指定 101 等於 5 LED6被選中 // P0 = 0X7D; Nixie(7,2); while(1){ } }
***到此結束