转自:http://www.51hei.com/mcu/1488.html

以前在仕创时,总是奇怪 周工为什么可以编出一个能测试任何遥控的遥控码 和用户码的单片机程序!周工还将此程序视为宝贝,每次测试完都将那只已经烧录好的单片机拿回去!!在这几年 本人也接触单片机,尝试写出测试遥控码的程序!!但只是能测试出遥控码 并未能测试出用户码!!!所以当时周工还是相当厉害的!!

下面放出刚刚编录完成的程序,暂时只能测试遥控码!!

下载地址:http://www.51hei.com/f/hw51d.rar

下载软件界面,用于烧录单片机!!

USB下载器

刚烧录好程序,单片机加电时显示“00”

测试遥控码(家里电视机待机按键遥控码)

程序是由C语言编写,单片机使用AT89C52       下面是程序:

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

#defineNop(){_nop_(); _nop_(); _nop_(); _nop_(); _nop_();}

volatile ulong IRcode=0x00000000;

volatile ulong Irdcode=0x00000000;

volatile uint customcode=0x0000;

volatile uint time_us=0x0000;

volatile uchar timeH,timeL;

uchar Lcustomcode;

uchar Hcustomcode;

uchar datacode;

uchar mycode;

uchar Rdatacode;

uchar uc1ms;

uchar uc10ms;

uchar uc3ms;

uchar  ucDispTime;

uchar  ucDispOrder;

uchar  ucDispCon;

uchar ucSpeakerTime;

unsigned char code LedData[16] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

unsigned char code LedCon[2] = {0x8f,0x4f};

unsigned char ucDispData[2];

sbit led1 = P3^7;

sbit led2 = P3^6;

sbit power=P1^0;

sbit BEEP= P2^1;

bit NewIRcode=0;

bit DataRight=0;

bit bSampleOk;

bit bSampling;

bit b10msInt;

bit  b1msInt;

bit bKeySound;

bit b1msMain;

bit IR_E;

bit b3msint;

void SendDataToDispDevice();

void Ir_process();

void display();

void beeping();

void init()

{

IP=0x09;

TMOD=0x11;

TCON=0x01;

TH0=0xff;

TL0=0x47;

TH1=0x00;

TL1=0x00;

EA=1;

ET0=1;

ET1=1;

EX0=1;

TR1=0;

TR0=1;

}

void TimeProg(void)

{

b1msMain = b1msInt;

b1msMain=0;

b10msInt = 0;

if(b1msInt == 1)

{

b1msMain=1;

if(++uc10ms == 10)

{

uc10ms = 0;

b10msInt = 1;

if(bKeySound==1)

{beeping();

bKeySound=0;

}

}

}

}//void TimeProg(void)

void IR_ISR() interrupt 0 using 1

{

static uchar cn;

TR1=0;

timeH=TH1;

timeL=TL1;

TH1=0;

TL1=0;

TR1=1;

time_us=(unsigned int)timeH;

time_us=time_us<<8;

time_us=time_us|timeL;

if(time_us>12200&&time_us<13000) {cn=1;IRcode=0;}

if(cn<34)

{

if(time_us>950&&time_us<1120)                   //0

{

IRcode=IRcode|0x00000000;

if(cn<33) IRcode=IRcode>>1;

}

else if(time_us>1920&&time_us<2120)        //1t > 1950 && t < 2150

{

IRcode=IRcode|0x80000000;

if(cn<33) IRcode=IRcode>>1;

}

//else if(time_us>10000&&time_us<11000) {Irdcode=IRcode;cn=34; }

}

cn++;

if(cn==34)

{ NewIRcode=1;

TR1=0;

Irdcode= IRcode;  cn=0;

}

}

void Timer0_ISR() interrupt 1 using 2

{

TR0=0;

TH0=0xff;

TL0=0x47;

TR0=1;

if(++uc1ms == 5)

{

uc1ms = 0;

b1msInt=1;

if(++uc3ms==8)

{

uc3ms=0;

b3msint=1;

SendDataToDispDevice();

}

}

}//void Timer0IntProg() interrupt 1 using 1

void Timer1_ISR() interrupt 3 using 3

{

TR1=0;

TH1=0x00;

TL1=0x00;

TR1=1;

}

void SendDataToDispDevice()

{

unsigned char n;

//watchdog();

if(++ucDispOrder >= 2)  ucDispOrder = 0;

if(ucDispOrder==0)

{led1=0;

led2=1;

Nop();

Nop();

}

if(b3msint==1)

{if(ucDispOrder==1)

{led2=0;

led1=1;

Nop();

Nop();

}

}

n = LedData[ucDispData[ucDispOrder]];

P0=n;

} //void SendDataToDispDevice()

void main()

{

init();

beeping();

while(1)

{

TimeProg();

Ir_process();

display();

}

}

void Ir_process()

{

if(NewIRcode==1)

{

NewIRcode=0;

customcode=(Irdcode>>16);

Lcustomcode=customcode>>8;

datacode=(unsigned char)(customcode&0x00ff);

Rdatacode=Lcustomcode;

if(~Rdatacode!=datacode)

{  DataRight=0;

Irdcode=0;

datacode=Rdatacode=0;

}

else

{ DataRight=1;

IR_E=1;

mycode=datacode;}

if(DataRight==1)  { bKeySound = 1;DataRight=0;  }

}

}

void display()

{

/*  unsigned char a[2];

a[0] = mycode & 0x0f;

mycode = mycode >> 4;

a[1] = mycode & 0x0f;

ET0 = 0;

ucDispData[0] = a[0];

ucDispData[1] = a[1];

ET0 = 1;*/

if(IR_E==1)

{

ET0 = 0;

ucDispData[0] = mycode & 0x0f;

mycode = mycode >> 4;

ucDispData[1] = mycode & 0x0f;

IR_E=0;

ET0 = 1;

}

}

void delay(unsigned char x)    //x*0.14MS

{

unsigned char a;

while(x--)

{

for (a = 0; a<13; a++) {;}

}

}

/**********************************************************/

void beeping()

{

unsigned char i;

for (i=0;i<100;i++)

{

delay(4);

BEEP=!BEEP;

}

BEEP=1;

}

红外线遥控c语言程序,红外线遥控码单片机测试程序相关推荐

  1. 红外线遥控c语言程序,红外线遥控解码接收程序-c语言讲解学习.pdf

    红外线遥控解码接收程序 -C 语言 .txt 铁饭碗的真实含义不是在一个地方吃一辈子饭, 而是一 辈子到哪儿都有饭吃.就算是一坨屎,也有遇见屎壳郎的那天.所以你大可不必为今天的自 己有太多担忧.红外线 ...

  2. 红外线遥控c语言程序,红外遥控的C程序

    红外遥控在生产和生活中应用越来越广泛,不同的红外遥控芯片有不同的发码协议,但一般都是由引导码,系统码,键码三部分组成. 引导码是告诉接收机准备接收红外遥控码.系统码是识别码,不同的遥控芯片有不同的误别 ...

  3. 红外线遥控c语言程序,红外线遥控解码接收程序-C语言.doc

    >里的评论有很好的诠释. 以上程序段可以应用在51/52单片机里.下面的程序可以应用在STC12C5410/STC12C2052型号的单片机里面. //在STC12C5410上运用红外线解码程序 ...

  4. mfrc522 c语言程序,MF RC522 51单片机测试程序

    /**********************RC522实验开发板例程************************ *  CPU:STC89C52RC *  晶振:11.0592MHZ ----- ...

  5. at89c52串口通信c语言程序,AT89C52DEMO 基于51单片机的(89C51/52)C语言源码例程 - 下载 - 搜珍网...

    例程与源码/12864带字库测试程序/12864 例程与源码/12864带字库测试程序/12864.hex 例程与源码/12864带字库测试程序/12864.lnp 例程与源码/12864带字库测试程 ...

  6. adc0809 c语言程序,ADC0809 模数转换 89C52单片机C语言程序(电压表)

    很不错的程序哦! ADC0809 模数转换 89C52单片机C语言程序 阅读108 评论0 字号:大中小 /**********[数字电压温度表]***********/ #include #defi ...

  7. 51单片机c语言程序执行顺序,51单片机程序执行流程详细分析

    这里是一个循环,根据DJNZ指令的功能:每执行一次DJNZ RO, IDATALOOP就将R0的值减1,若R0的值不为0则就跳到IDATALOOP地址去.很显然这是一个循环,那么RO的值是多少呢,在以 ...

  8. 单片机流水灯全亮c语言程序,终极流水灯单片机C语言程序.doc

    终极流水灯单片机C语言程序 #include #include #define uint unsigned int sbit beep=P2^3; void ji_ou(); void sx(); v ...

  9. 步进电机红外遥控C语言程序,单片机红外遥控+步进电机+1602液晶显示c语言源程序...

    这是我做的红外遥控控制的1602显示转速和转向的步进电机c语言原程序,已经调试成功!有些模块是以前做其他实验时做的,现在是直接调用的,包括1602液晶显示技术,TC9012红外解码,然后就是四相步进电 ...

最新文章

  1. 原生JS上传图片接收服务器端图片并且显示图片(主要描述blob类型)
  2. php hash pbkdf2,PHP hash_pbkdf2 哈希(Hash)函数
  3. Endnote生成的中英文混排参考文献中“等”与“et al”的处理
  4. Eclipse for android 中设置java和xml代码提示功能(转)
  5. 浅谈进程间的消息传递
  6. 程序型语言VS.编译型语言
  7. mysql隔离级别和mvcc_数据库MVCC和隔离级别的关系是什么?
  8. 提示cannot instantiate abstract class due to following members?
  9. 解决了MovieClip缩略图问题
  10. 浅析RTB和RTA(三)
  11. [object%20HTMLInputElement] 是什么意思?
  12. jquery的DOM节点操作(复制元素节点)
  13. asp.NET导出Gridview到excel 带模板列显示
  14. 台达b3伺服modbus通讯_台达PLC与伺服Modbus通讯PLC编程服务程序代写程序设计专业专注...
  15. layui prompt弹窗验证码操作
  16. 判断三角形顺时针/逆时针
  17. 塞拉利昂一公司计划投资10亿美元用于建设光伏农业项目
  18. 第19章 项目收尾管理
  19. 汉诺塔在VC控制台的图形演示
  20. 微信小程序 - 图像加载时渐隐淡入效果(image)

热门文章

  1. phpstorm2022连接数据库
  2. STM32CubeMX之SPI闪存芯片W25Q128
  3. 什么是跨终端web开发
  4. 周易卦爻解读笔记——蛊卦
  5. css写了边框显示不全或不显示
  6. react-native中ScrollView套ScrollView
  7. 三个白帽挑战之我是李雷雷我在寻找韩梅梅系列3——writeup
  8. 2021年茶艺师(中级)考试及茶艺师(中级)考试题库
  9. 2023年【茶艺师(高级)】考试题库及茶艺师(高级)找解析
  10. 维也纳登顶全球城市生活质量榜榜首,上海列第103位