• 大小: 37KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: 51单片机  

资源简介

用51单片机模拟空调遥控器,遥控编码可改。

资源截图

代码片段和文件信息

#include  
#include 

typedef    unsigned char   uchar;
typedef    unsigned int    uint;
typedef    unsigned long    ulong;
//#define _Nop() _nop_()
#define scan_key_port P1
sbit PWM_out = P2^3;           //PWM输出
sbit lcd_rs_port = P2^4;   /*定义LCD控制端口*/
sbit lcd_rw_port = P2^5;   /*定义LCD控制端口*/
sbit lcd_en_port = P2^6;   /*定义LCD控制端口*/
#define lcd_data_port P0   /*定义LCD控制端口*/
bit timer_flag=0;        //定时器0定时100us标志位
unsigned int timer_cnt;           //定时器0定时100us的次数的计数值
unsigned int t_temp;        //控制器载波的时间值,100us为单位
/******************************************全局变量************************/  
//数据1高电平时间,低电平时间,数据0高电平时间,低电平时间
char dat_one_h_t  dat_one_l_t  dat_zero_h_t  dat_zero_l_t;
//头高电平时间,头低电平时间
char head_one_t  head_zero_t;
//地址长度,数据长度
char head_Num  adr_Numdat_Num;

char addr_code[5]data_code[4];
uchar addr_code1[5]={0x000x000x040x0a0x5f};  //20ms前基本代码
uchar data_code1[4]={0x000x040x000x00};  //20ms后基本代码

struct head_type
{  
        char H_H;            //头高电平时间
        char H_L;            //头低电平时间
        char D0_H;           //数据0高电平时间
        char D0_L;           //数据0低电平时间
        char D1_H;           //数据1高电平时间
char D1_L;           //数据1低电平时间
char adr_N;
char dat_N;
};
code struct head_type head={9045535123632};


bit ON_flag=0;
char MODE_flag=0;
char FENG_flag=0;
bit VS_flag=0;
bit HS_flag=0;
uint T_dat=16;
bit open_flag=0;
////////////////////////////////////////////////
////////////////////////////////////////////////
unsigned char mun_char_table[]={“0123456789abcdef“};
uchar code line0[16]={“ON:   M:   F:   “};
uchar code line1[16]={“VS:  HS:  T:    “};

//100us间隔定时器

void delay(unsigned int ms);

//////////////以下是LCD1602驱动程序////////////////

void lcd_delay(uchar ms) /*LCD1602 延时*/
{
    uchar j;
    while(ms--){
        for(j=0;j<250;j++)
            {;}
        }   
}


void lcd_busy_wait() /*LCD1602 忙等待*/
{
    lcd_rs_port = 0;
    lcd_rw_port = 1;
    lcd_en_port = 1;
    lcd_data_port = 0xff;
    while (lcd_data_port&0x80);
    lcd_en_port = 0; 

}


void lcd_command_write(uchar command) /*LCD1602 命令字写入*/
{
    lcd_busy_wait();
    lcd_rs_port = 0;
    lcd_rw_port = 0;
    lcd_en_port = 0;
    lcd_data_port = command;
    lcd_en_port = 1;
    lcd_en_port = 0;     
}



void lcd_system_reset() /*LCD1602 初始化*/
{
    lcd_delay(20);
    lcd_command_write(0x38);//功能设置:八位数据总线,两行显示
    lcd_delay(100);
    lcd_command_write(0x38);
    lcd_delay(50);
    lcd_command_write(0x38);
    lcd_delay(10);
    lcd_command_write(0x08);//关显示
    lcd_command_write(0x01);//清屏
    lcd_command_write(0x06);//显示指针自加
    lcd_command_write(0x0c);//开显示
}



void lcd_char_write(uchar x_posy_poslcd_dat) /*LCD1602 字符写入*/
{
    x_pos &= 0x0f; /* X位置范围 0~15 */
    y_pos &= 0x01; /* Y位置范围 0~ 1 */
    if(y_pos==1) x_pos += 0x40;
    x_pos += 0x80; //LCD第一行首地址
    lcd_command_write(x_pos);
    l

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-08-11 15:00  基于51单片机的空调遥控器C源程序\
     文件       11354  2011-01-05 22:56  基于51单片机的空调遥控器C源程序\main.c
     文件       23737  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\main.LST
     文件       24463  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\main.OBJ
     文件       20118  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\红外遥控
     文件        5253  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\红外遥控.hex
     文件          44  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\红外遥控.lnp
     文件       27198  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\红外遥控.M51
     文件        1495  2015-08-11 15:00  基于51单片机的空调遥控器C源程序\红外遥控.Opt
     文件         196  2015-08-11 14:58  基于51单片机的空调遥控器C源程序\红外遥控.plg
     文件        2139  2015-08-10 10:19  基于51单片机的空调遥控器C源程序\红外遥控.Uv2
     文件        1495  2015-08-10 10:19  基于51单片机的空调遥控器C源程序\红外遥控_Opt.Bak
     文件        1991  2013-08-17 10:33  基于51单片机的空调遥控器C源程序\红外遥控_Uv2.Bak

评论

共有 条评论