⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 send.c

📁 车库的接受和发送代码
💻 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 + -