标题: 山寨机红外遥控器解码程序(第一次分开写头) [打印本页]
作者: xiaojuan 时间: 2014-9-17 23:06
标题: 山寨机红外遥控器解码程序(第一次分开写头)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include<reg52.h>
#include<pin_set.h>
#include<font.h>
#include<delay.h>
#include<com.h>
#include<data_show.h>
#include<red_read.h>
void main(void)
{
com_init();
red_inint();
while(1)
{
data_show();
if(all_right)send_32();
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
DATA_SHOW.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __DATA_SHOW_H__
#define __DATA_SHOW_H__
uchar code tab8[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
uchar data data_eight[4]={0,0,0,0,};
void data_show()////八位数码管显示////硬件支持ID:1
{
uchar temp_i;
for(temp_i=0;temp_i<4;temp_i++)
{
DATA_WEI=tab8[temp_i];
DATA_DUAN=tab_ca[data_eight[temp_i]];
delay(20);
DATA_WEI=0XFF;
DATA_DUAN=0X00;
}
}
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
PIN_SET.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __PIN_SET_H__
#define __PIN_SET_H__
sbit RED=P3^2;/////红外接收管脚
#define DATA_WEI P0
#define DATA_DUAN P2
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
COM.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __COM_H__
#define __COM_H__
sfr ISP_CR=0XE7;
sfr WDT_CR=0XA6;
void ines()interrupt 4
{
ISP_CR=0xf0;RI=0;WDT_CR=0X36;
RI=0;
TI=0;
}
void com_init()
{
EA=1;
TMOD=0x20;
TH1=230; //12Mhz/1200波特率
TL1=230; //24Mhz/2400波特率
PCON=0x00;
TR1=1;
ET1=0;
SCON=0x50;
RI=0;
ES=1;
}
void send_com_char(uchar temp_data)//串口数显////硬件支持ID:99
{
TI=0;
SBUF=temp_data;
while(!TI);
TI=0;
}
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
RED_READ.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __RED_READ_H__
#define __RED_READ_H__
uint IT_dat=0;
uchar all_right=0;
uchar data buf_l[32];
uchar data buf_h[39];
uchar buflag=0;
void zhengli()
{
uchar i=35;
while(i--)
{
if(buf_h[i+1]>0xf0&buf_h[i+1]<0xff)buf_h[i+1]='#';
if(buf_h>0x40&buf_h<0x50)buf_h='1';
if(buf_h>0x10&buf_h<0x30)buf_h='0';
if(buf_h>0x50&buf_h<0x60)buf_h='\n';
if(buf_h>0x80&buf_h<0xa0)buf_h='#';
}
}
void send_32()
{
uchar i=38,temp_i=35;
EA=0;
zhengli();
while(temp_i--)
{
send_com_char(buf_h[temp_i]);
}
while(i--)buf_h=0x00;
buflag=0;
all_right=0;
EA=1;
}
void disan()
{
data_eight[0]=IT_dat%10000/1000;
data_eight[1]=IT_dat%1000/100;
data_eight[2]=IT_dat%100/10;
data_eight[3]=IT_dat%10;
}
void red_in()interrupt 1
{
EX0=0;
while(RED==0);
TR0=0;
if(buflag<35)
{
buf_h[buflag]=TH0;
buf_l[buflag]=TL0;
TH0=0;
TL0=0;
TR0=1;
buflag++;
}
else all_right=1;
EX0=1;
}
void red_inint()
{
EX0=1;
IT0=0;
}
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
FONT.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __FONT_H__
#define __FONT_H__
uchar code tab_cc[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
uchar code tab_ca[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xD8,0x80,0x90};
#endif
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
DELAY.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright From tonjinlv
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __DELAY_H__
#define __DELAY_H__
void delay(int zip)
{
zip=zip*12;
while(zip--);
}
void delayms(uint zip)
{
uint rar;
for(;zip>0;zip--)
for(rar=600;rar>0;rar--);
}
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*--------------------------------------------------------------------------
REG52.H
Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __REG52_H__
#define __REG52_H__
#define uchar unsigned char
#define uint unsigned int
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
/* 8052 Extensions */
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
/* BIT Registers */
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only
/* TCON */
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;
/* IE */
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;
/* IP */
sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;
/* P3 */
sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;
/* SCON */
sbit SM0 = SCON^7;
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;
/* P1 */
sbit T2EX = P1^1; // 8052 only
sbit T2 = P1^0; // 8052 only
/* T2CON */
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2 = T2CON^0;
#endif
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
作者: jaffreyck 时间: 2014-11-30 07:16
哪呢,我要看看
作者: fontex 时间: 2015-4-11 12:08
果然是高手在民间。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |