51微控制器程式設計:[9]88點陣左移顯示箭頭?

我的經驗裡面分別介紹:88點陣翻頁顯示love、88點陣來回移動、88點陣上移顯示love、88點陣顯示動畫、88點陣顯示漢字、88點陣右移顯示箭頭、88點陣左移顯示箭頭等,這裡介紹88點陣左移顯示箭頭。詳細控制見程式碼:

51微控制器程式設計:[9]88點陣左移顯示箭頭

工具/原料

51微控制器開發板

Keil C IDE開發環境

8*8取模軟體

方法/步驟

根據取模軟體取模,

uchar code TAB[]={0xFF,0xF7,0xFB,0x81,0xFB,0xF7,0xFF,0xFF};

根據電路圖的不同,適當修改程式哦!程式碼當前的硬體連線圖圖下圖:

51微控制器程式設計:[9]88點陣左移顯示箭頭

程式思想: 左移顯示---如果將掃描方式改為列掃描,那麼左右移動的程式就容易寫了,但當點陣比較巨大並且硬體已經定下時,改變掃描方式不是好方法,甚至不可能實現。這裡是以行掃描為例(逐行取字模),第一次取字碼陣列中的第1~8個數據到點陣列輸入端,行碼 掃描1~8行。第二次將第一次的 1~8個數據都迴圈左(右)移一位,並且將第9個數據的最高位移到第二次資料的最低處,再輸入到列埠,行掃描1~8行。即每次掃描都要把前一次掃描的列碼左移一位。

直接貼程式碼,顯示的格式有點亂,先給個圖片的程式碼,下個步驟給出原始碼

51微控制器程式設計:[9]88點陣左移顯示箭頭

原始碼:

#include #include "51hei.H"#define uchar unsigned char#define uint unsigned intuchar code TAB[]={0xFF,0xF7,0xFB,0x81,0xFB,0xF7,0xFF,0xFF};uchar i,t,j=0;delay(uchar t){ while (t--) { ; }}void main(void){ uchar T,Y,Q,d; P2=0x75; while (1) { for (Q=0;Q<8;Q++) for (T=0;T<50;T++) //速度 { d=0x01; out164(d); for (i=0;i<8;i++) { Y=TAB[i+1]*256+TAB[i]; Y=Y<<(7-Q) Y>>Q; P0=Y%256; delay(60); d=d<<1 d>>7; P0=0xff; // 消隱,很重要,不加要紅一片 out164(d); } } }}

51微控制器程式設計:[9]88點陣左移顯示箭頭

51微控制器程式設計:[9]88點陣左移顯示箭頭

箭頭, 微控制器, 點陣, 程式設計, 左移,
相關問題答案