51单片机多功能红外遥控电风扇(自然风+阵风+多档风速+定时).doc
文本预览下载声明
51单片机多功能红外遥控电风扇(自然风+阵风+多档风速+定时)
#include AT89x051.H
#define uchar unsigned char
#define uint unsigned int
#define b1 0xe200
#define b2 0xe210
#define b3 0xe208
#define b4 0xe218
#define b5 0xe204
#define b6 0xe214
#define b7 0xe20c //阵风
#define b8 0xe21c //自然风
#define b9 0xe280 //自动档
#define on_off 0xe240 //电源开关
#define ch_a 0xe250 //加档
#define ch_s oxe248 //减档
#define time 0xe2e8 //定时
#define louver 0xe24c //转页
#define count_num 500 //显示次数
#define time1_num 18000
#define time2_num 100
#define bell P3_4
#define c_f 0xd4 //F
#define c_h 0xce //H
#define c_g 0x81 //=
uint time1=time1_num; //18000*100*2ms=1h
uchar time2=time2_num;
uint count=count_num; //显示次数
uchar sort=3; //显示off
uchar dis_bit=0; //显示的位
uchar code_length=16;
uchar data dis[4]={0x02,0x02,0x00,0xff}; //显示数据区
uchar temperature;
uint code_t=0;
uchar code1=0;
uchar code2=0;
bit bdata code_start=0; //代码起始标志
bit bdata button=0; //无键按下
bit bdata i_flag=0; // 有无中断标志
bit bdata t_flag=0;//测温标志
bit bdata bt=0; //判断是否是定时键
bit bdata off=0; //为0无定时
uchar code TAB[11]={0x5f,0x0a,0x9d,0x9b,0xca,0xd3,0xd7,0x5a,0xdf,0xdb,0x75};
void timer_0(void);
void dis_t(void); //温度显示
void dis_s(void); //档位显示
void dis_h(void); //时间
void dis_off(void); //关机显示
void delay(uint t); //延时
uchar d_code(uint t); //解码
uchar begin=0; //开始补偿
void c_code(void); //键号转换
void off_time(void); //定时关
void measure_temperature(void);
void key_time(void); //定时按钮
void sort_key(void); //风类按钮
void mov_p1(uchar t0,t1,t2); //显示
void button_process(void); //按键处理
//********定时关机*********
void off_time(void)
{
if(off==1)
{
if(time1--==0)
{
time2--;
显示全部