• 大小: 5.17MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-18
  • 语言: 其他
  • 标签:

资源简介

格力空调遥控码接收的单片机程序,很好用,用中断方式,在1602液晶上显示,呵呵,试试吧

资源截图

代码片段和文件信息


#include
#include
#include 
#include
#include

#define LCM_Data  P0
#define Busy    0x80 //用于检测LCM状态字中的Busy标识
sbit LCM_RS=P2^0;
sbit LCM_RW=P2^1; //定义引脚
sbit LCM_E=P2^2;
sbit P32=P3^2;
sbit P33=P3^3;


void WriteDataLCM(unsigned char WDLCM);
void WriteCommandLCM(unsigned char WCLCMBuysC);
unsigned char ReadDataLCM(void);
unsigned char ReadStatusLCM(void);
void LCMInit(void);
void DisplayOneChar(unsigned char X unsigned char Y unsigned char DData);
void DisplayListChar(unsigned char X unsigned char Y unsigned char code *DData);
void Delay5Ms(void);
void Delay400Ms(void);
unsigned char code net[] = {“c p u“};
unsigned char code uctech[] = {“ “};
void main(void)
{unsigned char X;
X=0;
 Delay400Ms(); //启动等待,等LCM讲入工作状态
 LCMInit(); //LCM初始化
 Delay5Ms(); //延时片刻(可不要)

 DisplayListChar(0 5 uctech);
 DisplayListChar(0 0 net);
 Delay400Ms();
 Delay400Ms();
 WriteCommandLCM(0x011); 
 Delay400Ms(); //启动等待,等LCM讲入工作状态
 LCMInit(); //LCM初始化
 Delay5Ms(); //延时片刻(可不要)

 DisplayListChar(0 5 uctech);
 DisplayListChar(0 0 net);
 Delay400Ms();
 Delay400Ms();
 WriteCommandLCM(0x011); 
 
 while(1)
{

  if(P32==0)
{ DisplayOneChar(X 0 ‘0‘);
 Delay400Ms();
 X++;}

if(P33==0)
{ DisplayOneChar(X 0 ‘1‘);
 Delay400Ms();
 X++;}
 }

}
//写数据
void WriteDataLCM(unsigned char WDLCM)
{
 ReadStatusLCM(); //检测忙
 LCM_Data = WDLCM;
 LCM_RS = 1;
 LCM_RW = 0;
 LCM_E = 0; //若晶振速度太高可以在这后加小的延时
 LCM_E = 0; //延时
 LCM_E = 1;
}

//写指令
void WriteCommandLCM(unsigned char WCLCMBuysC) //BuysC为0时忽略忙检测
{
 if (BuysC) ReadStatusLCM(); //根据需要检测忙
 LCM_Data = WCLCM;
 LCM_RS = 0;
 LCM_RW = 0;
 LCM_E = 0;
 LCM_E = 0;
 LCM_E = 1;
}

//读数据
unsigned char ReadDataLCM(void)
{
 LCM_RS = 1;
 LCM_RW = 1;
 LCM_E = 0;
 LCM_E = 0;
 LCM_E = 1;
 return(LCM_Data);
}

//读状态
unsigned char ReadStatusLCM(void)
{
 LCM_Data = 0xFF;
 LCM_RS = 0;
 LCM_RW = 1;
 LCM_E = 0;
 LCM_E = 0;
 LCM_E = 1;
 while (LCM_Data & Busy); //检测忙信号
 return(LCM_Data);
}

void LCMInit(void) //LCM初始化
{
 LCM_Data = 0;
 WriteCommandLCM(0x380); //三次显示模式设置,不检测忙信号
 Delay5Ms();
 WriteCommandLCM(0x380);
 Delay5Ms();
 WriteCommandLCM(0x380);
 Delay5Ms();

 WriteCommandLCM(0x381); //显示模式设置开始要求每次检测忙信号

 WriteCommandLCM(0x081); //关闭显示

 WriteCommandLCM(0x011); //显示清屏
 WriteCommandLCM(0x061); // 显示光标移动设置
 WriteCommandLCM(0x0C1); // 显示开及光标设置
}

//按指定位置显示一个字符
void DisplayOneChar(unsigned char X unsigned char Y unsigned char DData)
{
 Y &= 0x1;
 X &= 0xF; //限制X不能大于15,Y不能大于1

 if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;

 X |= 0x80; // 算出指令码

 WriteCommandLCM(X 0); //这里不检测忙信号,发送地址码
 WriteDataLCM(DData);
}

//按指定位置显示一串字符
void DisplayListChar(unsigned char X unsigned char Y unsigned char code *DData)
{
 unsigned char ListLength;

  ListLength = 0;
 Y &= 0x1;
 X &= 0xF; //限制X不能大于15,Y不能大于1
 while (DData[ListLength]>=0x20) //若到达字串尾则退出
  {
   if (X

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    I.A....     31744  2010-08-18 09:34  格力_老\格力遥控码分析.doc

    I.A....     15722  2010-09-01 14:52  格力_老\遥控器解码\06ke3

    I.A....      3093  2010-09-01 14:52  格力_老\遥控器解码\06ke3.hex

    I.A....        26  2010-09-01 14:52  格力_老\遥控器解码\06ke3.lnp

    I.A....     17312  2010-09-01 14:52  格力_老\遥控器解码\06ke3.M51

    I.A....      1735  2010-09-01 14:53  格力_老\遥控器解码\06ke3.Opt

    I.A....     13424  2010-09-01 14:53  格力_老\遥控器解码\06ke3.plg

    I.A....      2358  2010-08-04 18:10  格力_老\遥控器解码\06ke3.Uv2

    .......      1735  2010-09-01 11:05  格力_老\遥控器解码\06ke3_Opt.Bak

    I.A....      2358  2010-08-04 18:10  格力_老\遥控器解码\06ke3_Uv2.Bak

    I.A....     24792  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\06ke3

    I.A....      9500  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\06ke3.hex

    I.A....        35  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\06ke3.lnp

    I.A....     35915  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\06ke3.M51

    I.A....      1407  2005-02-17 09:13  格力_老\遥控器解码\13-1602-液晶-改\06ke3.Opt

    I.A....      4512  2005-02-17 09:13  格力_老\遥控器解码\13-1602-液晶-改\06ke3.plg

    I.A....      2376  2007-11-16 18:24  格力_老\遥控器解码\13-1602-液晶-改\06ke3.Uv2

    I.A....      1415  2008-03-13 21:21  格力_老\遥控器解码\13-1602-液晶-改\06ke3_Opt.Bak

    I.A....      2324  2007-08-12 11:45  格力_老\遥控器解码\13-1602-液晶-改\06ke3_Uv2.Bak

    I.A....      7554  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\1602-key-KEIL.c

    I.A....     13498  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\1602-key-KEIL.LST

    I.A....     32257  2005-02-17 00:16  格力_老\遥控器解码\13-1602-液晶-改\1602-key-KEIL.OBJ

    I.A....     15272  2006-11-13 21:19  格力_老\遥控器解码\13-1602-液晶-改\1602-key-lcd-data.LST

    I.A....     25233  2006-11-13 21:19  格力_老\遥控器解码\13-1602-液晶-改\1602-key-lcd-data.OBJ

    I.A....      3234  2007-08-12 11:45  格力_老\遥控器解码\13-1602-液晶-改\1602.c

    I.A....      6323  2007-11-16 18:12  格力_老\遥控器解码\13-1602-液晶-改\1602.LST

    I.A....      7715  2007-11-16 18:12  格力_老\遥控器解码\13-1602-液晶-改\1602.OBJ

    I.A....      7450  2006-11-25 22:54  格力_老\遥控器解码\13-1602-液晶-改\key.h

    I.A....      3650  2007-11-16 20:43  格力_老\遥控器解码\1602-55.c

    I.A....      7300  2007-11-25 10:17  格力_老\遥控器解码\1602-55.LST

............此处省略33个文件信息

评论

共有 条评论

相关资源