|
主程序預(yù)覽:
- #include "Config.H"
- //========================================================================//
- // 慣性開(kāi)關(guān) //
- //========================================================================//
- sbit InertiaSwitch = P2^7; // 為0時(shí)表示開(kāi)關(guān)閉合了。
- //========================================================================//
- // 顯示允許函數(shù) (對(duì)外提供服務(wù))
- //函數(shù)名稱:App_YYB_Disp_Enable ()
- //函數(shù)功能:檢查當(dāng)前是否允許顯示
- //入口參數(shù):無(wú)。
- //出口參數(shù):TRUE = 運(yùn)動(dòng)到最左邊,口線電平被拉低,允許啟動(dòng)顯示。FALSE = 其他位置,不允許顯示。
- //重要說(shuō)明:
- //編寫(xiě)日期:2012-11-29
- //測(cè)試結(jié)果:
- //========================================================================//
- // 函數(shù)返回值:
- extern uint8 App_YYB_Disp_Enable(void)
- {
- // 閉合后口線電平為低
- if(0 == InertiaSwitch)
- {
- Delay_MS(30); // 在剛觸發(fā)時(shí),搖搖棒剛行進(jìn)到最左邊,此時(shí)速度很低,因而若立即啟動(dòng)顯示,則必然會(huì)使字顯示的很少,所以延時(shí)一段時(shí)間。
- // 在搖搖棒速度上來(lái)之后再啟動(dòng)顯示。
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
- //========================================================================//
- // 顯示部分 //
- //========================================================================//
- //========================================================================//
- //變量名稱:u8Picture
- //變量功能:保存需要顯示的數(shù)據(jù)
- //作用域 :全局變量、僅限本文件
- //重要說(shuō)明:,僅適用于本程序。
- //========================================================================//
- static uint8 code u8Picture[4][32] =
- {
- 0xFF,0xFF,0xFF,0xEF,0xFF,0xEF,0xFE,0xEF,0x00,0x6F,0x80,0xEF,0xEE,0xEF,0xEE,0xEF, // 與
- 0xEE,0xEF,0xEE,0xEF,0xEE,0xCF,0xEE,0xED,0xEE,0xFC,0xCE,0x01,0xFC,0x03,0xFE,0xFF,
- 0xFF,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xBE,0xFF,0xBE,0xFF,0xBE,0xFD,0xBE,0xFD, // 子
- 0xB8,0x00,0xB0,0x01,0xA6,0xFF,0x8E,0xFF,0x1E,0xFF,0xBE,0xFF,0xFC,0xFF,0xFE,0xFF,
- 0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x80,0x01,0xB7,0xFF,0xB4,0x07,0xB6,0x0F,0xB6,0xEF, // 同
- 0xB6,0xEF,0xB6,0x07,0xA4,0x0D,0xB6,0xFD,0x80,0x00,0x00,0x01,0xBF,0xFF,0xFF,0xFF,
- 0xFF,0xFF,0xFB,0xDF,0xF7,0xBF,0xCE,0x00,0x18,0x01,0xBD,0xFF,0xFF,0xFF,0xFB,0xFF, // 行
- 0xBB,0xFF,0xBB,0xFD,0xBB,0xFD,0xB8,0x00,0xB8,0x01,0x3B,0xFF,0xB3,0xFF,0xFB,0xFF,
- };
- //========================================================================//
- // 顯示一列數(shù)據(jù)函數(shù) (對(duì)外提供服務(wù))
- //函數(shù)名稱:App_YYB_Disp_Colum ()
- //函數(shù)功能:顯示一列數(shù)據(jù)。
- //入口參數(shù):u8UpByte為16位的上半部分?jǐn)?shù)據(jù),u8DownByte為下半部分?jǐn)?shù)據(jù)
- //出口參數(shù):無(wú)。
- //重要說(shuō)明:
- //編寫(xiě)日期:2012-11-29
- //測(cè)試結(jié)果:
- //========================================================================//
- static void App_YYB_Disp_Colum(uint8 u8UpByte, uint8 u8DownByte)
- {
- P1 = u8UpByte;
- P0 = u8DownByte;
- Delay_50us(10); // 延時(shí)500us,可自行調(diào)節(jié)
- P1 = 0xFF; // 關(guān)閉顯示
- P0 = 0xFF;
- }
- //========================================================================//
- // 顯示圖像函數(shù) (對(duì)外提供服務(wù))
- //函數(shù)名稱:App_YYB_Disp()
- //函數(shù)功能:顯示一幅圖片。漢字點(diǎn)陣實(shí)際上也是一幅圖片
- //入口參數(shù):u8disp_Enable:是否起動(dòng)顯示。TRUE = 允許起動(dòng)顯示,F(xiàn)ALSE = 不允許顯示。
- //出口參數(shù):無(wú)。
- //重要說(shuō)明:
- //編寫(xiě)日期:2012-11-29
- //測(cè)試結(jié)果:
- //========================================================================//
- extern void App_YYB_Disp(uint8 u8disp_Enable)
- {
- uint8 i, k;
- if(FALSE == u8disp_Enable)
- {
- return; // 一個(gè)函數(shù)最好只有一個(gè)出口,顯然,這里不符合要求。
- }
- for(i = 0; i < 4; i++) // 要顯示的4個(gè)漢字
- {
- for(k = 0; k < 16; k++) // 這里,一個(gè)漢字有16列
- {
- App_YYB_Disp_Colum(u8Picture[i][2*k], u8Picture[i][2*k + 1]);
- }
- Delay_MS(1);
- }
- Delay_MS(20);
- }
- //========================================================================//
- // 主函數(shù) //
- //========================================================================//
- void main(void)
- {
- uint8 u8State;
- while(1)
- {
- u8State = App_YYB_Disp_Enable();
- App_YYB_Disp(u8State);
- }
- }
復(fù)制代碼 |
|