资源简介
用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
- 下一篇:基于矩阵的模拟退火算法
相关资源
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
- 51单片机定时器/计数器的结构和原理
- MCS-51单片机定时器和计数器区别的理
评论
共有 条评论