8X8點陣原理圖
仿真圖:
單片機源程序如下(左移顯示):
- /*********************************************************************************
- * 【作 者】: 清翔電子
- * 【聲 明】: 此程序僅用于學習與參考,引用請注明版權和作者信息!
- * 【函數功能】: 8*8點陣動態顯示,箭頭左移。
- * 【使用說明】: 兼容1602接口,使用時請把點陣1腳至6腳對應接到1602 1腳至6腳,
- 使用QX-MCS51開發板可以直接燒寫此程序,無需修改接口。
- **********************************************************************************/
- #include "main.h"
- //定義變量
- unsigned char temp = 0xfe;
- unsigned char KEY_NUM = 0;
- unsigned char Display_word[24] = {
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x10,0x38,0x54,0x10,0x10,0x10,0x10,0x10, //箭頭
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- //****************************************************
- //主函數
- //****************************************************
- void main()
- {
- unsigned int i;
- unsigned char j,k;
- while(1)
- {
- for(j = 0 ; j < 16 ; j++)
- {
- for(i = 0 ; i < 50 ; i++)
- {
- temp = 0x7f;
- for(k = 0 ; k < 16 ; k++) //一個字母4BYTE
- {
- Send_Byte(temp); //列選擇
- Send_Byte(Display_word[j+k]); //數據
- LEDARRAY_LAT = 1; //鎖存數據
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
- }
- }
- //****************************************************
- //發送一個字節數據
- //****************************************************
- void Send_Byte( unsigned char dat)
- {
- unsigned char i;
- LEDARRAY_CLK = 0;
- _nop_();
- LEDARRAY_LAT = 0;
- _nop_();
- for( i = 0 ; i < 8 ; i++ )
- {
- if( dat&0x01 )
- {
- LEDARRAY_DI = 1;
- }
- else
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼 靜止顯示:
- /*********************************************************************************
- * 【編寫時間】: 2014年3月5日
- * 【作 者】: 清翔電子&51hei
- * 【聲 明】: 此程序僅用于學習與參考,引用請注明版權和作者信息!
- * 【函數功能】: 8*8點陣靜態顯示"親"與心形符號
- * 【使用說明】: 兼容1602接口,使用時請把點陣1腳至6腳對應接到1602 1腳至6腳,
- 使用QX-MCS51開發板可以直接燒寫此程序,無需修改接口。
- **********************************************************************************/
- #include "main.h"
- //定義變量
- unsigned char temp = 0xfe;
- unsigned char KEY_NUM = 0;
- unsigned char Display_word[4][4] = {
- 0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //親
- 0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心
- };
- //****************************************************
- //主函數
- //****************************************************
- void main()
- {
- unsigned int i;
- unsigned char j,k;
- while(1)
- {
- for(i = 0 ; i < 1000 ; i++)
- {
- temp = 0x7f;
- for(j = 0 ; j < 2 ; j++) //顯示前兩個字母
- {
- for(k = 0 ; k < 4 ; k++) //一個字母4BYTE
- {
- Send_Byte(temp); //列選擇
- Send_Byte(Display_word[j][k]); //行數據
- LEDARRAY_LAT = 1; //鎖存數據
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
- for(i = 0 ; i < 1000 ; i++)
- {
- temp = 0x7f;
- for(j = 2 ; j < 4 ; j++) //顯示前兩個字母
- {
- for(k = 0 ; k < 4 ; k++) //一個字母4BYTE
- {
- Send_Byte(temp); //列選擇
- Send_Byte(Display_word[j][k]); //行數據
- LEDARRAY_LAT = 1; //鎖存數據
- _nop_();
-
- LEDARRAY_LAT = 0;
- _nop_();
- temp = (temp>>1)|0x80;
- }
- }
- }
-
-
- }
- }
- //****************************************************
- //發送一個字節數據
- //****************************************************
- void Send_Byte( unsigned char dat)
- {
- unsigned char i;
- LEDARRAY_CLK = 0;
- _nop_();
- LEDARRAY_LAT = 0;
- _nop_();
- for( i = 0 ; i < 8 ; i++ )
- {
- if( dat&0x01 )
- {
- LEDARRAY_DI = 1;
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
清翔電子8_8點陣資料包.rar
(1.23 MB, 下載次數: 72)
2017-5-11 13:25 上傳
點擊文件名下載附件
點陣
|