首页 >> 项目方案 >> 正文
最新的HD7279(c语言)驱动程序含有两个按键驱动程序及测试函数,多种时钟制做!!
字体放大 字体缩小 字体恢复 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)
最新的HD7279(c语言)驱动程序含有两个按键驱动程序及测试函数,多种时钟制做!!

/*————————————————————
〖说明〗标准8段数码管驱动程序不用使用者更改另外送多个时序函数,还有赠送按键扫描及两键驱动程序,全中文提示使用更方便快捷 http://www.mcuzb.com 坐标网时时更新为您的工作带来方便。
默认11.0592Mhz的晶振。
〖文件〗HD7279.C ﹫2003/5/12
〖作者〗董石权(司马东飞)
Email: dongshiquan@163.com
QQ:52455690

〖修改〗修改建议请到论坛公布 http://www.mcuzb.com
〖版本〗V3.00A Build 0803
〖公告〗请各位同僚尊重使用权!!!!!!!!!!!
—————————————————————*/
#include <reg51.h>
/*--------------------------------------------
调用方式:自行I/O 口定义﹫2001/05/12
函数说明:私有函数,各接口定义
--------------------------------------------*/
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
/*--------------------------------------------
调用方式: HD7279A 各指令定义﹫2001/05/12
函数说明:私有函数,接口定义
--------------------------------------------*
/#define HD7279_RESET 0xa4 //复位
#define HD7279_TEST 0xbf //测试
#define HD7279_RLC 0xa3 //循环左移
#define HD7279_RRC 0xa2 //循环右移
#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 //读
/*--------------------------------------------
调用方式: void HD7279_LongDelay(void) 等侍函数﹫2001/05/12
函数说明 私有函数,>500ms
--------------------------------------------*/
void HD7279_LongDelay(void)
{
unsigned char i;
for (i=0;i<6;i++);
}
/*--------------------------------------------
调用方式:void HD7279_ShortDelay(void) 等侍函数﹫2001/05/12
函数说明:私有函数,=500ms
--------------------------------------------*
/void HD7279_ShortDelay(void)
{;}
/*--------------------------------------------
调用方式:void Delay10ms(unsigned char time) 等侍函数﹫2001/05/12
函数说明:私有函数, 6M晶振
--------------------------------------------*/
void Delay10ms(unsigned char time)
{
unsigned char i;
unsigned int j;
for(i=0;i<time;i++)
{
for(j=0;j<931;j++)
{;}
}
}
/*--------------------------------------------
调用方式:void HD7279_ShortDelay(void) 函数﹫2001/05/12
函数说明:私有函数,送指令
--------------------------------------------*/
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;
}
/*--------------------------------------------
调用方式:void Write7279(unsigned char command, unsigned char dta) 函数﹫2001/05/12
函数说明:私有函数,写函数
--------------------------------------------*/
void Write7279(unsigned char command, unsigned char dta)
{
HD7279_SendByte( command );
HD7279_SendByte( dta );
}
/*--------------------------------------------
调用方式:自定义函数﹫2001/05/12
函数说明:私有函数,自行定义
--------------------------------------------*/
#define RunKey 0xXX
#define StopKey 0xXX
/*--------------------------------------------
调用方式:unsigned char HD7279_ReceiveByte(void)函数﹫2001/05/12
函数说明:私有函数,接受一个BYTE函数
--------------------------------------------*/
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);
}
/*--------------------------------------------
调用方式:unsigned char HD7279_GetKey()函数﹫2001/05/12
函数说明:私有函数,读键盘函数
--------------------------------------------*/
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);
}
/*--------------------------------------------
调用方式:main()函数﹫2001/05/12
函数说明:私有函数,例函数
--------------------------------------------*
/main()
{HD7279_SendByte(0xa4);//复位
Write7279(0x80,0)//显示‘0’
}</P><P>
请各位同僚尊重使用权!!!!!!!!!!!http://www.mcuzb.com
日期:2005年03月25日   来源: 
相关文章:
·用超低功耗MSP430单片机设计数据采集系统 2005-06-27
·火灾探测器受干扰的原因及改进方法 2005-07-02
·特殊构件的焊接技术 2005-10-18
·触摸屏的工作原理及典型应用 2005-11-25
·高质量C++/C编程指南---类的构造函数,析构函数,赋值 2005-12-13
·电子产品高温老化的原理以及一间智能温控老化室的应用 2006-01-05
·新近成功开发无霍尔传感器无刷电机控制器 2006-01-20
·归纳一下最近比较流行的电动自行车技术 2006-01-23
·电子工作台 --- workbench 电子仿真软件 2006-05-23
·液晶字模工具 ------ HZDotReader V3 2006-05-23
·51系列单片机仿真软件----伟福e6000w  2006-05-23
·无传感器无刷电机驱动控制器系统的优点 2006-06-10
·PIC单片机C语言编译器 --PICC 8.05 完整破解版 2006-07-09
·adobe reader 7.0 2006-07-09
·ARM内核的MP3解码 2006-07-09