📄 main.c
字号:
#include "CH452_PIN_DEFINE.H" // 修改该文件以适应硬件环境/单片机型号等
#include "CH452_COM_DEFIND.H" // CH452常量定义
/* 4线接口的连接 */
/*
sbit CH452_DCLK=P1^7; // 串行数据时钟上升延激活
sbit CH452_DIN=P1^6; // 串行数据输出,接CH452的数据输入
sbit CH452_DOUT=P1^5; // INT1,键盘中断和键值数据输入,接CH452的数据输出
sbit CH452_LOAD=P1^4; // 串行命令加载,上升延激活
*/
void Delay(int Times)
{
int i=0;
while(i<Times){i++;}
}
//函数名:void UART_PORT_Init()
//功能:初始化串口
//输入参数:无
//输出参数;无
//注意事项;传输速率的选择
void UART_PORT_Init()
{
TMOD=0x21; //0010 0001定时器设置,方式2,自动重装
PCON=0x80; //1000 0000电源管理
SCON=0x50; //0101 0000 8位可变速率,无奇偶效验位,工作方式1
TH1=0xFD; //波特率 19200
RI=0; //关接收中断
TI=0; //关发送中断
ES=1; //允许串口中断
TR1=1; //启动定时器1
EA=1; //允许总中断
}
//函数名:void send_UART(int senddata)
//功能:向上位机发送数据
//输入参数:senddata(发送的数据)
//输出参数;无
//注意事项;清除中断标志
void send_UART(int senddata)
{
TI=0; //清除中断标志位
ES=0; //不允许串口中断
SBUF=senddata; //把数据发送给串口
while(TI==0); //等待发送完毕
TI=0; //清除中断标志位
ES=1; //允许总中断
}
//函数名:int GetKeyValve()
//功能:取按键的值
//输入参数:无
//输出参数;按键的值
//注意事项;
int GetKeyValve()
{
int keycode;
switch(CH452_Read())
{
case 0x5B: keycode='0';break;
case 0x5A: keycode='0'+1;break;
case 0x52: keycode='0'+2;break;
case 0x4A: keycode='0'+3;break;
case 0x58: keycode='0'+4;break;
case 0x50: keycode='0'+5;break;
case 0x48: keycode='0'+6;break;
case 0x59: keycode='0'+7;break;
case 0x51: keycode='0'+8;break;
case 0x49: keycode='0'+9;break;
case 0x53: keycode='.';break;
case 0x4B: keycode='Q';break;
case 0x43: keycode='S';break;
case 0x42: keycode='+';break;
case 0x40: keycode='-';break;
case 0x41: keycode='F';break;
default:break;
}
return keycode;
}
//函数名:void main()
//功能:扫描键盘值
//输入参数:无
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -