
—————————————————————*/
#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=0i<6i++)
}
/*--------------------------------------------
调用方式: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=0i<timei++)
{
for(j=0j<931j++)
{}
}
}
/*--------------------------------------------
调用方式:void HD7279_ShortDelay(void) 函数﹫2001/05/12
函数说明:私有函数,送指令
--------------------------------------------*/
void HD7279_SendByte( unsigned char out_byte)
{
unsigned char i
HD7279_CS=0
HD7279_LongDelay()
for(i=0i<8i++)
{
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 charHD7279_ReceiveByte(void)函数﹫2001/05/12
函数说明:私有函数,接受一个BYTE函数
--------------------------------------------*/
unsigned char HD7279_ReceiveByte(void)
{
unsigned char i, in_byte
HD7279_DATA=1
HD7279_LongDelay()
for(i=0i<8i++)
{HD7279_CLK=1<br>HD7279_ShortDelay()<br>in_byte=in_byte<<1<br>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: <br>case StopKey: <br>while(!HD7279_KEY)<br>default: return(0xff)<br>}
}
return(0xff)
}
/*--------------------------------------------
调用方式:main()函数﹫2001/05/12
函数说明:私有函数,例函数
--------------------------------------------*/
main()
{HD7279_SendByte(0xa4)//复位<br>Write7279(0x80,0)//显示‘0’<br>}
您好修改键盘的驱动:通过“我的电脑”打开系统属性,选择硬件标签:打开设备管理器,我们发现中文Windows XP *** 作系统下,默认的键盘驱动是“标准101/102键或Microsoft自然PS/2键盘”。1. 右键点击选择更新驱动程序,会出现硬件更新向导:选择“从列表或指定位置安装(高级)”,单击“下一步”,选择“不要搜索。我要自己选择要安装的驱动程序。”
单击“下一步”,进入“选择要为此硬件安装的设备驱动程序”页去掉复选框“显示兼容硬件”前的小勾。在“标准键盘型号”栏中选择“Japanese PS/2 Keyboard (106/109 Key)”,单击“下一步”,d出“更新驱动程序警告”,点“是”。“确认设备安装”窗口继续点“是”。
2. 完成硬件更新向导。重新启动计算机。
修改注册表:单击“开始”菜单,点“运行”,输入“regedit”,打开注册表,进入“HKEY_LOCAL_MACHINE\ SYSTEM\ControlSet001\Control\Keyboard Layouts”,里面有很多子项,通过观察我发现,以“0804”结尾的都是简体中文输入法。打开“E00E0804”,可以看到右侧子项里有“Layout File”子项,双击打开该项,将“数值数据”中的“kbdus.dll”改为“kbdjpn.dll”,“确定”即可。依此类推,可以将所有的以“0804”结尾的子项中“Layout File”全部改为“kbdjpn.dll”,具体就根据自己常用的输入法进行选择了。然后重新启动计算机就好了!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)