|
因?yàn)橹挥锌v向,沒有實(shí)現(xiàn)其他的太多功能,但也可以了解一下對點(diǎn)陣led的實(shí)現(xiàn)方法下載:
5、16X16 漢字縱向移屏.rar
(80.5 KB, 下載次數(shù): 82)
2016-10-21 23:07 上傳
點(diǎn)擊文件名下載附件
- /*******************************************************************************
- *
- --------------------------------------------------------------------------------
- * 實(shí) 驗(yàn) 名 : 漢字移動(dòng)顯示
- * 實(shí)驗(yàn)說明 :
- * 連接方式 : 見接線圖
- * 注 意 :
- *******************************************************************************/
- #include <REG51.H>
- #include <intrins.h>
- #include "array.h"
- //--重定義函數(shù)變量--//
- #define uchar unsigned char
- #define uint unsigned int
- #define ulong unsigned long
- //--定義SPI要使用的 IO--//
- sbit MOSIO = P3^4;
- sbit R_CLK = P3^5;
- sbit S_CLK = P3^6;
- //--全局函數(shù)聲明--//
- void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0);
-
- /*******************************************************************************
- * 函 數(shù) 名 : main
- * 函數(shù)功能 : 主函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void main(void)
- {
- int k, j, ms;
-
- //--定義一個(gè)指針數(shù)組指向每個(gè)漢字--//
- uchar *p[] =
- {tab17, tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8,
- tab9, tab10, tab11, tab12, tab13, tab14, tab15, tab16};
- while(1)
- {
- for(ms = 20; ms > 0; ms--) //移動(dòng)定格時(shí)間設(shè)置
- {
- for(k = 0; k < 16; k++) //顯示一個(gè)字
- {
- HC595SendData(~(*(p[0] + 2*(k+j) + 1)),~(*(p[0] + 2*(k+j) )),tab0[2*k],tab0[2*k + 1]); //因?yàn)樽帜\浖〉臄?shù)組是高電平有效,所以列要取反
- }
-
- //--清屏--//
- HC595SendData(0xff,0xff,0,0); //清屏
- }
-
- j++;
- if(j == (17*15) )
- {
- j = 0;
- }
-
- }
- }
- /*******************************************************************************
- * 函 數(shù) 名 : HC595SendData
- * 函數(shù)功能 : 通過595發(fā)送四個(gè)字節(jié)的數(shù)據(jù)
- * 輸 入 : BT3:第四個(gè)595輸出數(shù)值
- * * BT2: 第三個(gè)595輸出數(shù)值
- * * BT1:第二個(gè)595輸出數(shù)值
- * * BT0:第一個(gè)595輸出數(shù)值
- * 輸 出 : 無
- *******************************************************************************/
- void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0)
- {
- uchar i;
-
- //--發(fā)送第一個(gè)字節(jié)--//
- for(i=0;i<8;i++)
- {
- MOSIO = BT3 >> 7 ; //從高位到低位
- BT3 <<= 1;
- S_CLK = 0;
- S_CLK = 1;
- }
- //--發(fā)送第一個(gè)字節(jié)--//
- for(i=0;i<8;i++)
- {
- MOSIO = BT2 >>7; //從高位到低位
- BT2 <<= 1;
- S_CLK = 0;
- S_CLK = 1;
- }
- //--發(fā)送第一個(gè)字節(jié)--//
- for(i=0;i<8;i++)
- {
- MOSIO = BT1 >> 7; //從高位到低位
- BT1 <<= 1;
- S_CLK = 0;
- S_CLK = 1;
- }
- //--發(fā)送第一個(gè)字節(jié)--//
- for(i=0;i<8;i++)
- {
- MOSIO = BT0 >> 7; //從高位到低位
- BT0 <<= 1;
- S_CLK = 0;
- S_CLK = 1;
- }
- //--輸出--//
- R_CLK = 0; //set dataline low
- R_CLK = 1; //片選
- R_CLK = 0; //set dataline low
- }
復(fù)制代碼
|
評分
-
查看全部評分
|