回覆列表
  • 1 # daazhu1

    #include

    #define DataPort P0 //定義資料埠 程式中遇到DataPort 則用P0 替換

    sbit LATCH1=P2^2;//定義鎖存使能埠 段鎖存

    sbit LATCH2=P2^3;// 位鎖存

    unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值01234567

    unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應相應的數碼管點亮,即位碼

    void Delay(unsigned int t); //函式宣告

    /*------------------------------------------------

    主函式

    ------------------------------------------------*/

    main()

    {

    unsigned char i=0;

    while(1)

    {

    DataPort=dofly_WeiMa[i]; //取位碼

    LATCH2=1; //位鎖存

    LATCH2=0;

    DataPort=dofly_DuanMa[i]; //取顯示資料,段碼

    LATCH1=1; //段鎖存

    LATCH1=0;

    Delay(60000); // 掃描間隙延時,時間太長會閃爍,太短會造成重影,

    //這裡故意延長時間,方便直觀看出動態掃描原理

    i++;

    if(8==i) //檢測8位掃描完全結束?如掃描完成則從第一個

    //開始再次掃描8位

    i=0;

    }

    }

    /*------------------------------------------------

    延時函式,含有輸入引數 unsigned int t,無返回值

    unsigned int 是定義無符號整形變數,其值的範圍是

    0~65535

    ------------------------------------------------*/

    void Delay(unsigned int t)

    {

    while(--t);

    }

  • 中秋節和大豐收的關聯?
  • 砂鍋煲紅薯秧的做法?