• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 空调遥控晶振改变后该如何改程序,求指导

空调遥控晶振改变后该如何改程序,求指导

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了空调遥控器晶振,空调晶振,12m晶振延时程序,遥控晶振,遥控器晶振型号等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 空调遥控晶振改变后该如何改程序,求指导
描述:

本来是用11.0592MHZ现在改成22.1184MHZ
程序如下,该怎么改,可以说得详细点吗?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int 
sbit key1=P3^4;//按键控制开机
sbit key2=P3^5;//按键控制关机
sbit key3=P3^6;//按键控制温度+
sbit key4=P3^7;//按键控制温度-
sbit out=P1^5;//发送IO口
uchar wd1[15]={0x00,0x08,0x04,0x0c,0x02,
              0x0a,0x06,0x0e,0x01,0x09,
  0x05,0x0d,0x03,0x0b,0x07
     };
uchar wd2[15]={0x0a,0x06,0x0e,0x01,0x09,
              0x05,0x0d,0x03,0x0b,0x07,
  0x0f,0x00,0x08,0x04,0x0c
     };
uchar x=12;//开机28度
/************晶振11.0592MHz**************/
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)       //i=xms即延时约xms毫秒
for(j=112;j>0;j--);
}
void delay560us(void) //560us延迟函数
{
uint j;
for(j=63;j>0;j--);
}
void delay4500us(void)    //4.5ms延迟函数
{
   uint j;
for(j=516;j>0;j--);
}
void khz_2(uint num)  //38KHZ脉冲 占空比1:2
{
    for(;num>0;num--)
 {
  out=~out;     
 }
}
 void send0_a(void)    //发送0
{  
   khz_2(42) ;
   //khz_3(21) ;
   out=1;
   delay560us();
}
void send1_a(void) //发送1
{  
   khz_2(42) ;
   out=1;
   delay560us();
   delay560us();
   delay560us();
}
void leadcode_a(void) //发送引导码
{
     khz_2(690) ;
 out=1;
     delay4500us();
}
/***************************关机****************************/
void close( uchar a,uchar b,uchar c,uchar d) 
{
uint i;
leadcode_a();
send1_a();
for(i=0;i<7;i++)
send0_a();
if(a)
send1_a();
else 
send0_a();
if(b)
send1_a();
else 
send0_a();
if(c)
send1_a();
else 
send0_a();
if(d)
send1_a();
else 
send0_a();  
send0_a();
send0_a();
send0_a();
send0_a();
for(i=0;i<5;i++)
send0_a();
send1_a();
for(i=0;i<6;i++)
send0_a();
send1_a();
send0_a();
send1_a();
send0_a();
send0_a();
send1_a();
send0_a();
khz_2(42) ;
    out=1;
    delay(20);
}
void close1(uchar e,uchar f,uchar g,uchar h  )
{
uchar i;
for(i=0;i<13;i++)
send0_a();
send1_a();
send0_a();
send0_a();
for(i=0;i<12;i++)
send0_a();
if(e)
send1_a();
else 
send0_a();
if(f)
send1_a();
else 
send0_a();
if(g)
send1_a();
else 
send0_a();
if(h)
send0_a();
else 
send1_a();
khz_2(42) ;
    out=1;
delay(1000);
/*******************************************/
/****************开机************************/
}
void open(uchar a,uchar b,uchar c,uchar d ) 
{
    uint i;
leadcode_a();
send1_a();
send0_a();
send0_a();
send1_a();
for(i=0;i<4;i++)
send0_a();
if(a)
send1_a();
else 
send0_a();
if(b)
send1_a();
else 
send0_a();
if(c)
send1_a();
else 
send0_a();
if(d)
send1_a();
else 
send0_a();  
 send0_a();
 send0_a();
 send0_a();
 send0_a();
for(i=0;i<5;i++)
send0_a();
send1_a();
for(i=0;i<6;i++)
send0_a();
send1_a();
send0_a();
send1_a();
send0_a();
send0_a();
send1_a();
send0_a();
khz_2(42) ;
    out=1;
    delay(20);
}
void open1(uchar e,uchar f,uchar g,uchar h)
{
uchar i;
for(i=0;i<13;i++)
send0_a();
send1_a();
send0_a();
send0_a();
for(i=0;i<12;i++)
send0_a();
if(e)
send1_a();
else 
send0_a();
if(f)
send1_a();
else 
send0_a();
if(g)
send1_a();
else 
send0_a();
if(h)
send1_a();
else 
send0_a();
khz_2(42) ;
    out=1;
delay(1000);
}
void keyscan()
{
uchar  a,b,c,d,e,f,g,h;
if(key1==0)
{
delay(10);
if(key1==0)
{
while(!key1);
if(wd1[x] & 0x08)
      a=1;
else 
a=0;
if(wd1[x] & 0x04)
b=1;
else 
b=0;
if(wd1[x] & 0x02)
  c=1;
else 
c=0; 
if(wd1[x] & 0x01)
d=1;
else 
d=0; 
if(wd2[x] & 0x08)
      e=1;
else 
e=0;
if(wd2[x] & 0x04)
f=1;
else 
f=0;
if(wd2[x] & 0x02)
  g=1;
else 
g=0; 
if(wd2[x] & 0x01)
h=1;
else 
h=0; 
open(a,b,c,d);
open1(e,f,g,h);
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
while(!key2);
if((wd1[x] & 0x08))
a=1;
else 
a=0;
if((wd1[x] & 0x04))
b=1;
else 
b=0;
if((wd1[x] & 0x02))
c=1;
else 
c=0;
if((wd1[x] & 0x01))
d=1;
else 
d=0;
if((wd2[x] & 0x08))
      e=1;
else 
e=0;
if((wd2[x] & 0x04))
f=1;
else 
f=0;
if((wd2[x] & 0x02))
  g=1;
else 
g=0;
if((wd2[x] & 0x01))
h=1;
else 
h=0;
close(a,b,c,d);
close1(e,f,g,h);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
{
while(!key1);
x++;
if((wd1[x] & 0x08))
     a=1;
else 
a=0; 
if((wd1[x] & 0

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 空调遥控晶振改变后该如何改程序,求指导

相关文章

  • 2017-06-05 我写了个66的矩阵键盘程序,没按下的时候怎么显示有键按下,内有程序和原理图
  • 2017-06-05 关于RF卡的发卡程序
  • 2017-06-05 有没有人用过ExtEscape函数,为什么调用ExtEscape函数返回总是0?是不是需要什么特殊设置?
  • 2017-06-05 电压比较器精度太高也是痛点呀
  • 2017-06-05 ARM的中断
  • 2017-06-05 如何设置窗体居中?
  • 2017-06-05 EPM7128一定要接晶振吗?
  • 2017-06-05 一个硬盘控制器在系统启动时候,到底要提供那些信息给BIOS程序,这些信息放置在内存什么位置?
  • 2017-06-05 关于CP56time2a的格式
  • 2017-06-05 win7系统下打开或关闭window服务空白

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • WinDriver1210或1220调用WD_DMALock锁定DMA内存失败,如何解决?
    • 关于U盘传输中断后下载的内容去哪了?
    • 如何对93c46芯片进行读写
    • 请前辈们给介绍几本windows下驱动开发的经典书籍,谢谢!
    • 电压比较器精度太高也是痛点呀
    • nandflash映射成U盘
    • 单片机ICL7135LCD1602
    • 跪求这段程序,错在哪?
    • 手机做遥控器的原理???求解答
    • 请假基于ST-Mathing算法的地图匹配的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有