〖說明〗標(biāo)準(zhǔn)8段數(shù)碼管驅(qū)動(dòng)程序不用使用者更改另外送多個(gè)時(shí)序函數(shù),還有贈(zèng)送按鍵掃描及兩鍵驅(qū)動(dòng)程序,全中文提示使用更方便快捷 http://www. 坐標(biāo)網(wǎng)時(shí)時(shí)更新為您的工作帶來(lái)方便。 默認(rèn)11.0592Mhz的晶振。 —————————————————————*/ #include /*-------------------------------------------- 調(diào)用方式:自行I/O 口定義﹫2001/05/12 函數(shù)說明:私有函數(shù),各接口定義 --------------------------------------------*/ sbit HD7279_CS=P1^4; // HD7279_CS--P1.4 sbit HD7279_CLK=P1^5; // HD7279_CLK-- P1.5 sbit HD7279_DATA=P1^6; // HD7279_DATA-- P1.2 sbit HD7279_KEY =P1^7; // HD7279_KEY-- P1.3 /*-------------------------------------------- 調(diào)用方式: HD7279A 各指令定義﹫2001/05/12 函數(shù)說明:私有函數(shù),接口定義 --------------------------------------------* /#define HD7279_RESET 0xa4 //復(fù)位 #define HD7279_TEST 0xbf //測(cè)試 #define HD7279_RLC 0xa3 //循環(huán)左移 #define HD7279_RRC 0xa2 //循環(huán)右移 #define HD7279_RL 0xa1 //左移 #define HD7279_RR 0xa0 //右移 #define HD7279_DECODE0 0x80 //譯碼方式0 #define HD7279_DECODE1 0xc8 //譯碼方式1 #define HD7279_UNDECODE 0x90 //譯碼方式2: 不譯碼 #define HD7279_HIDE 0x98 //消隱 #define HD7279_FLASH 0x88 //閃爍 #define HD7279_SEGON 0xe0 //段亮 #define HD7279_SEGOFF 0xc0 //段滅 #define HD7279_READ 0x15 //讀 /*-------------------------------------------- 調(diào)用方式: void HD7279_LongDelay(void) 等侍函數(shù)﹫2001/05/12 函數(shù)說明 私有函數(shù),>500ms --------------------------------------------*/ void HD7279_LongDelay(void) { unsigned char i; for (i=0;i<6;i++); } /*-------------------------------------------- 調(diào)用方式:void HD7279_ShortDelay(void) 等侍函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),=500ms --------------------------------------------* /void HD7279_ShortDelay(void) {;} /*-------------------------------------------- 調(diào)用方式:void Delay10ms(unsigned char time) 等侍函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù), 6M晶振 --------------------------------------------*/ void Delay10ms(unsigned char time) { unsigned char i; unsigned int j; for(i=0;i<time;i++) { for(j=0;j<931;j++) {;} } } /*-------------------------------------------- 調(diào)用方式:void HD7279_ShortDelay(void) 函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),送指令 --------------------------------------------*/ void HD7279_SendByte( unsigned char out_byte) { unsigned char i; HD7279_CS=0; HD7279_LongDelay(); for(i=0;i<8;i++) { if(out_byte&0x80) { HD7279_DATA=1; } else { HD7279_DATA=0; } HD7279_CLK=1; HD7279_ShortDelay(); HD7279_CLK=0; HD7279_ShortDelay(); out_byte=out_byte<<1; } HD7279_DATA=0; } /*-------------------------------------------- 調(diào)用方式:void Write7279(unsigned char command, unsigned char dta) 函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),寫函數(shù) --------------------------------------------*/ void Write7279(unsigned char command, unsigned char dta) { HD7279_SendByte( command ); HD7279_SendByte( dta ); } /*-------------------------------------------- 調(diào)用方式:自定義函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),自行定義 --------------------------------------------*/ #define RunKey 0xXX #define StopKey 0xXX /*-------------------------------------------- 調(diào)用方式:unsigned char HD7279_ReceiveByte(void)函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),接受一個(gè)BYTE函數(shù) --------------------------------------------*/ unsigned char HD7279_ReceiveByte(void) { unsigned char i, in_byte; HD7279_DATA=1; HD7279_LongDelay(); for(i=0;i<8;i++) {HD7279_CLK=1; HD7279_ShortDelay(); in_byte=in_byte<<1; if(HD7279_DATA) { in_byte=in_byte|0x01; } HD7279_CLK=0; HD7279_ShortDelay(); } HD7279_DATA=0; return (in_byte); } /*-------------------------------------------- 調(diào)用方式:unsigned char HD7279_GetKey()函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),讀鍵盤函數(shù) --------------------------------------------*/ unsigned char HD7279_GetKey() { unsigned char key; if(!HD7279_KEY) { HD7279_SendByte(HD7279_READ); key=HD7279_ReceiveByte(); switch( key ) {case RunKey: case StopKey: while(!HD7279_KEY); default: return(0xff); } } return(0xff); } /*-------------------------------------------- 調(diào)用方式:main()函數(shù)﹫2001/05/12 函數(shù)說明:私有函數(shù),例函數(shù) --------------------------------------------*/ main() {HD7279_SendByte(0xa4);//復(fù)位 Write7279(0x80,0)//顯示‘0’ } 參考鏈接:http://www./news/2008-04/5141.htm |
|