//同一顆七節碼顯示 0 - 9,每個號碼停留 1.5 秒 #include // 宣告 D 型正反器街接腳 sbit P2_6 = P2^6; sbit P2_7 = P2^7; // 宣告延時函式 void delay(int); // 宣告七段顯示器函式 void Slect_Seg(unsigned char number); void Display_Seg(unsigned char display); //宣告數字的表示 char code NUM[10] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; // 主程式 int main(){ // 設定哪顆亮 Slect_Seg(~0x01); // 0xfe 就是 11111110 // 不讓程式結束的無窮迴圈 while(1) { // 選數字從 0 - 9 int i; for(i = 0; i < 10; i++) { Display_Seg(NUM[i]); delay(1500); // 延時 1.5 秒 } } } void Slect_Seg(unsigned char number) { // 關閉 D 型正反器(預防措施) P2_7 = 0; // 指定哪顆亮 P0 = number; // 開啟控制哪顆亮的 D 型正反器 P2_7 = 1; // 延時(吃哪顆亮) delay(1); // 關閉 D 型正反器(讓吃進去的那顆固定亮) P2_7 = 0; } void Display_Seg(unsigned char display) { // 關閉 D 型正反器(預防措施) P2_6 = 0; // 指定號碼 P0 = display; // 開啟控制哪顆亮的 D 型正反器 P2_6 = 1; // 延時(吃號碼) delay(1); // 關閉 D 型正反器(讓吃進去的號碼固定住) P2_6 = 0; } // 延遲 void delay(int time) { unsigned int i, j; for (i = 0; i < time; i++) for (j = 0; j < 120; j++); }