機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
HD7279(c語言)驅(qū)動程序含有兩個按鍵驅(qū)動程序及測試函數(shù)
HD7279(c語言)驅(qū)動程序含有兩個按鍵驅(qū)動程序及測試函數(shù)
 更新時間:2008-7-27 16:02:08  點擊數(shù):4
【字體: 字體顏色
/*————————————————————
〖說明〗標準8段數(shù)碼管驅(qū)動程序不用使用者更改另外送多個時序函數(shù),還有贈送按鍵掃描及兩鍵驅(qū)動程序,全中文提示使用更方便快捷 http://www.mcuzb.com 坐標網(wǎng)時時更新為您的工作帶來方便。
默認11.0592Mhz的晶振。
—————————————————————*/
#include <reg51.h>
/*--------------------------------------------
調(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 //復位
#define HD7279_TEST 0xbf //測試
#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ù),接受一個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);//復位
Write7279(0x80,0)//顯示‘0’
}

<!--自定義字段-->
  • 上一篇: Freescale c 語言例子液晶時鐘
  • 下一篇: 10位數(shù)字溫度傳感器AD7416驅(qū)動程序
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1