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

📄 comm.c

📁 智能家居系统。。。包括PS2键盘
💻 C
字号:
#include <REG52.H>

#define INBUF_LEN 35   				//公共数据长度
#define	INBUF_LEN_RECEIVE 32		//接收数据长度
#define uint unsigned int
#define uchar unsigned char

extern uchar inbuf1[];
extern uchar read_flagg;
extern uchar Ir_Over;
extern uchar TT_Ok;
extern uchar PS2_ok;

uchar inbuf1[INBUF_LEN];
uchar count3;
uchar IR_Ctrl_Data;
uchar read_flagg;

/*****蜂鸣器函数调用声明*****/
//void ok_beep();

/*******LCD函数调用声明******/
void sent_string(uchar x,uchar y,uchar *sent_data,uchar length);
void LCD_clr_pic();

/****红外接收函数调用声明****/
void Init_IR();
void IR_Receive_function();


/****PS2接收函数调用声明****/
void Ps2_Getkey(void);

/******18b20函数调用声明******/
void Read_Temperature(unsigned char *p);

/******延时函数调用声明******/
void delay_2us(unsigned char us);

/****家居控制函数调用声明****/
void Jiaju_Ctrl_Up(void);

void init_serialcomm(void)
{	
    SCON  = 0x50;       //SCON: serail mode 1, 8-bit UART, enable ucvr 
    TMOD |= 0x20;       //TMOD: timer 1, mode 2, 8-bit reload 
    PCON |= 0x80;       //SMOD=1; 
    TH1   = 0xF4;       //Baud:4800  fosc=11.0592MHz  TH1 = 0xF4;						
						//Baud:62.5k  fosc=12MHz  TH1 = 0xFF;
	IP	  = 0x10;		//外部中断优先(0x05),串口中断优先(0x10)
    IE   |= 0x90;       //Enable Serial Interrupt 
    TR1   = 1;          // timer 1 run 
   // TI=1; 
	read_flagg=0;
}

//向串口发送一个字符 
void send_char_com(unsigned char ch)  
{
    SBUF=ch;
    while(TI==0);
    TI=0; 
}

//向串口发送一个字符串
void send_string_com(unsigned char *str,unsigned char strlen)
{	
    while(strlen)
    {
        send_char_com(*str );
        str++;
		strlen--;
    } 
}

//串口接收中断函数 
void serial () interrupt 4
{
	EA=0;
    if(RI)
    {
        RI = 0;
        inbuf1[count3]=SBUF;
		count3++;
	    if( count3==INBUF_LEN_RECEIVE )
	    {
		    read_flagg=1;  //如果串口接收的数据达到INBUF_LEN个,且校验没错, 就置位取数标志 
			//send_char_com('*');//inbuf_len位数据接收完毕				
	    }
	}
	EA=1;
}

void Index_Display()
{
//long IE_Temp;
		
		while(read_flagg==0);
			Read_Temperature((inbuf1+32));		//读温度数据
			IR_Receive_function();				//处理红外接收数据
			Ps2_Getkey();	

			LCD_clr_pic();

			sent_string(1,0,inbuf1,11);			
			sent_string(2,1,inbuf1+11,8);
			sent_string(0,2,"家居",4);
			sent_string(2,2,(inbuf1+19),8);
			sent_string(0,3,"防区",4);	
			sent_string(2,3,(inbuf1+27),5);	
			Jiaju_Ctrl_Up();//更新家居开关控制

			send_string_com((inbuf1+19),17);	//与PC机同步数据

		read_flagg=0;
		count3=0;	
		
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -