资源简介
用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
- 上一篇:红黑树Red Black Tree
- 下一篇:基于矩阵的模拟退火算法
相关资源
- 51单片机控制RDA5807收音机模块
- 基于C51单片机的声光控灯
- 51单片机电子门铃设计
- 基于51单片机的 4×4键盘及8位数码管显
- 基于51单片机的霹雳灯
- 51单片机贪吃蛇游戏程序
- 51单片机控制57步进电机启停,正反转
- 51单片机实现Modbus从机程序
- 51单片机看门狗设计
- 51单片机开发的韦根接受的C程序;支
- 51单片机ADXL345三轴加速度传感器源代
- 51单片机1602万年历矩阵按键
- 超声波测距仪
- STC89C52RC使用电位器控制WS2812B调光
- C51单片机电子琴
- 带串口通信的温度控制器(带proteus仿
- 基于51单片机的智能家居系统程序
- AD9833驱动程序
- 基于C51单片机音乐盒设计[1]
- 89C51单片机控制HT1621B驱动LCD(C程序)
- 51单片机 lcd1602测试C程序
- 基于51单片机LCDLM041L显示贪吃蛇小游戏
- 基于51单片机的串行通信程序
- 51单片机 pwm波产生.zip
- 《51单片机原理及应用:基于KeilC与
- 51单片机 红外循迹 红外避障小车 双
- 基于51单片机的等精度频率计
- 51单片机课程设计——智能电风扇
- 课程设计 51单片机温度PID调节打包k
- 51单片机多机通讯程序及仿真
评论
共有 条评论