📄 ch451_d.c
字号:
/********************************************************************************
* 描述: *
* CH451程序模块 *
* *
*******************************************************************************/
#include <reg52.h>
#include <absacc.h>
#include <intrins.h>
#include<DEFINE.h>
uchar ch451_key;
bit flag;
/********************************************************************
函 数 名:ch451_init()
功 能:对ch451芯片进行初始化
说 明:
调 用:
入口参数:
返 回 值:
***********************************************************************/
void ch451_init(void)
{
ch451_din = 0; /*先低后高,选择4线输入*/
ch451_din = 1;
ch451_load = 1;
ch451_clk = 1;
_nop_();
}
/********************************************************************
函 数 名:ch451_write()
功 能:把12位的指令或数据写入ch451
说 明:12位数据或指令的写入顺序是低位
调 用:
入口参数:command
返 回 值:
***********************************************************************/
void ch451_write(unsigned int command)
{
unsigned char i;
#ifdef USE_KEY
EX1=0; /*禁止键盘中断*/
#endif
ch451_load=0; /*命令开始*/
for(i=0;i<12;i++)
{ /*送入12位数据,低位在前*/
ch451_din=command&1;
ch451_clk=0;
command>>=1;
ch451_clk=1; /*上升沿有效*/
}
ch451_load=1; /*加载数据*/
#ifdef USE_KEY
EX1=1;
#endif
}
/********************************************************************
函 数 名:ch451中断服务程序
功 能:获取键值
说 明:
调 用:
入口参数:
返 回 值:ch451_key
***********************************************************************/
void ch451_inter() interrupt 2 using 1
{
unsigned char i; /*定义循环变量*/
unsigned char command,keycode; /*定义控制字寄存器,和中间变量定时器*/
command=0x07; /*读取键值命令的高4位0111B*/
EX1 = 0;
ch451_load=0; /*命令开始*/
for(i=0;i<4;i++)
{
ch451_din=command&1; /*低位在前,高位在后*/
ch451_clk=0;
command>>=1; /*右移一位*/
ch451_clk=1; /*产生时钟上升沿锁通知CH451输入位数据*/
}
ch451_load=1; /*产生加载上升沿通知CH451处理命令数据*/
keycode=0; /*清除keycode*/
for(i=0;i<7;i++)
{
keycode<<=1; /*数据作移一位,高位在前,低位在后*/
keycode|=ch451_dout; /*从高到低读入451的数据*/
ch451_clk=0; /*产生时钟下升沿通知CH451输出下一位*/
ch451_clk=1;
}
ch451_key=keycode; /*保存上次的键值*/
if(ch451_key==0x52)
{
flag=1;
}
EX1 = 1;
IE1=0; /*清中断标志*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -