回覆列表
  • 1 # 不萬能的Comedy

    //標頭檔案:#include "reg51.h"

    //變數定義:unsigned char table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //表:共陽數碼管 0-9//引腳定義: sbit SMG_q = P1^0; //定義數碼管陽級控制腳(千位)sbit SMG_b = P1^1; //定義數碼管陽級控制腳(百位)sbit SMG_s = P1^2; //定義數碼管陽級控制腳(十位)sbit SMG_g = P1^3; //定義數碼管陽級控制腳(個位)

    //函式宣告:void delay(void); //延時子函時

    //主函式,C語言的入口函式: void main(void) { unsigned char i=0; //作為查表的索引號 while(1) //不停的迴圈掃描,不掃描則不顯示或顯示不正確,即為動態顯示, { //數碼管顯示 1234,可自行修改 SMG_q=0; //選擇千位數碼管 P0=table[1]; //查詢"1"定義好的數碼管段值與P0口輸出,顯示相應的1 delay(); //加入短暫延時 P0=0XFF; //清除數碼管顯示,因是共陽型,所以不是0 SMG_q=1; //關閉千位數碼管

    SMG_b=0; //選擇百位數碼管 P0=table[2]; //查詢"2"定義好的數碼管段值與P0口輸出,顯示相應的2 delay(); //加入短暫延時 P0=0XFF; //清除數碼管顯示,因是共陽型,所以不是0 SMG_b=1; //關閉百位數碼管 SMG_s=0; //選擇十位數碼管 P0=table[3]; //查詢"2"定義好的數碼管段值與P0口輸出,顯示相應的2 delay(); //加入短暫延時 P0=0XFF; //清除數碼管顯示,因是共陽型,所以不是0 SMG_s=1; //關閉十位數碼管

    SMG_g=0; //選擇個位數碼管 P0=table[4]; //查詢"2"定義好的數碼管段值與P0口輸出,顯示相應的2 delay(); //加入短暫延時 P0=0XFF; //清除數碼管顯示,因是共陽型,所以不是0 SMG_g=1; //關閉個位數碼管 }}

    //延時子函式,短暫延時void delay(void){ unsigned char i=10; while(i--);}

  • 中秋節和大豐收的關聯?
  • 家用LED燈不亮了怎麼修?