📄 send.c
字号:
#include<reg760.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code key[4][4]={{0xff,0xff,0x33,0xcc},{0xff,0xff,0xcc,0x33},{0xff,0xff,0x66,0x99},{0xff,0xff,0x99,0x66}}; /*串口发送的代码*/
void init_sys(void);
void delay(uint);
void function(void);
void send(uchar);
uchar get_key();
/*******************************************************************************************************************
*
* 函数原型 : void main(void);
* 功能 : 主函数,每次执行是先初始化单片机,然后取得按键信息代码,取完代码单片机循环发送代码并为单片机清看门狗
*
*******************************************************************************************************************/
void main(void)
{
init_sys();
while(1)
{
delay(1000);
function();
}
}
/*******************************************************************************************************************
*
* 函数原型 : void init_sys(void);
* 功能 : 初始化函数,每次执行是先清看门狗, 然后设置相应的功能寄存器
*
*******************************************************************************************************************/
void init_sys(void)
{
WDCON=0x00;
AUXR1=0x50; /*设置关掉电检测功能*/
PCON =0x00;
P0M1 =0x78; /*设置P0.1,P0.3,P0.4,P0.5,P0.6为高阻输入模式*/
P1M2 =0x01; /*设置P1.0位推挽强上来模式*/
SCON =0x40; /*设置串口发送模式1*/
TMOD =0x20;
TH1 =0xf3; /*波特率为1250BIT/S*/
TL1 =0xf3;
TR1 =1; /*打开定时器1*/
}
/*******************************************************************************************************************
*
* 函数原型 : unsigned char get_key(void);
* 功能 : 获取检值函数
*
*******************************************************************************************************************/
unsigned char get_key()
{
uchar key=0;
key=P0&0x78; /*延时1MS然后由函数返回键值*/
return key;
}
/*******************************************************************************************************************
*
* 函数原型 : void delay(uint i);
* 功能 : 延时函数
*
*******************************************************************************************************************/
void delay(uint i)
{
while(i--); /*延时函数*/
}
/*******************************************************************************************************************
*
* 函数原型 : void function(void) (uint i);
* 功能 : 功能函数
*
*******************************************************************************************************************/
void function(void)
{
switch(get_key())
{
case 0x08: send(0); /*当键值为key1时发送代码1*/
break;
case 0x10: send(1); /*当键值为key2时发送代码2*/
break;
case 0x20: send(2); /*当键值为key3时发送代码3*/
break;
case 0x40: send(3); /*当键值为key4时发送代码4*/
break;
default: break;
}
}
/*******************************************************************************************************************
*
* 函数原型 : void send(uchar j);
* 功能 : 串口发送函数
*
*******************************************************************************************************************/
void send(uchar j)
{
uchar zz;
uchar i;
for(i=0;i<=3;i++)
{
zz=key[j][i];
SBUF=key[j][i]; /*串口发送数据*/
while(TI==0);
TI=0; /*清串口中断标志位为0*/
delay(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -