#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; //--定義一個指針數(shù)組指向每個漢字--// 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--) //移動定格時間設(shè)置 { for(k = 0; k < 16; k++) //顯示一個字 { HC595SendData(~(*(p[0] + 2*(k+j) + 1)),~(*(p[0] + 2*(k+j) )),tab0[2*k],tab0[2*k + 1]); //因為字模軟件取的數(shù)組是高電平有效,所以列要取反 } //--清屏--// HC595SendData(0xff,0xff,0,0); //清屏 } j++; if(j == (17*15) ) { j = 0; } } } /******************************************************************************* * 函 數(shù) 名 : HC595SendData * 函數(shù)功能 : 通過595發(fā)送四個字節(jié)的數(shù)據(jù) * 輸 入 : BT3:第四個595輸出數(shù)值 * * BT2: 第三個595輸出數(shù)值 * * BT1:第二個595輸出數(shù)值 * * BT0:第一個595輸出數(shù)值 * 輸 出 : 無 *******************************************************************************/ void HC595SendData( uchar BT3, uchar BT2,uchar BT1,uchar BT0) { uchar i; //--發(fā)送第一個字節(jié)--// for(i=0;i<8;i++) { MOSIO = BT3 >> 7 ; //從高位到低位 BT3 <<= 1; S_CLK = 0; S_CLK = 1; } //--發(fā)送第一個字節(jié)--// for(i=0;i<8;i++) { MOSIO = BT2 >>7; //從高位到低位 BT2 <<= 1; S_CLK = 0; S_CLK = 1; } //--發(fā)送第一個字節(jié)--// for(i=0;i<8;i++) { MOSIO = BT1 >> 7; //從高位到低位 BT1 <<= 1; S_CLK = 0; S_CLK = 1; } //--發(fā)送第一個字節(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 } |
ahshmj 發(fā)表于 2016-7-26 16:28
首先你的字模必須是從左至右按列取模(上半部和下半部 各從左至右16列),左起第一列上,左起第一列下、左 ...
ahshmj 發(fā)表于 2016-7-27 21:36
“可以改顯示的位置嗎”是什么意思?
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |