STC12C5410AD学习板---红外解码
视频演示地址:
http://v.youku.com/v_show/id_XMTUyMzQwMjg4.html
以下是详细程序:
/*****Program Author : ZhengWen(ClimberWin) *****/
/*****E_mail :cooldianzi@163.com *****/
/*************************************************************/
/*****File Function : IR Soft Recode(SAA3010) *****/
/*****Compile Date : 2009/2/4 *****/
/*****Edition Info : V1.0 *****/
/*****Amend Date : *****/
/*************************************************************/
/************红外软件解码,遥控器型号,SAA3310芯片************/
/***********************2009.2.4******************************/
/***********可以红外解码LCD显示*************/
#include
#include "intrins.h "
#include "SAA3010_Recode.h"
#include "LCD12864.H"
#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit speaker=P2^1;
uchar LCD_IR_da
void Delay1ms(unsigned int count);
void Key_Beep(void);
void Delay_Beep(unsigned int count1);
void init_rs232(void);
/***************************1秒延时子程序start***************************/
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i
}
/***************************1秒延时子程序end***************************/
/*****************按键声音********************/
void Key_Beep(void)
{ uchar i;
for (i=0;i<250;i++)
{ speaker=1;
Delay_Beep(30);
speaker=0;
Delay_Beep(30);
}
speaker=1;
}
/**************************************************/
/***************************蜂鸣器延时子程序start**********************/
void Delay_Beep(unsigned int count)
{
unsigned int i,j;
for(i=0;i
}
/***************************蜂鸣器延时子程序end************************/
/* 串口通信初始化设置 */
void init_rs232(void)
{
AUXR=74; //设置波特率是普通51的12倍 ,允许AD中断
SCON=0x50;
PCON=0x00;
TH1=0xFA; //波特率 115200 22.1184MHZ 时候(F4 4800 FA 9600 FDH 9600)*12
TL1=0XFA;
TMOD=0X20;
TR1=1;
}
void main(void)
{
uchar key_co
uchar key_co
uchar key_co
Delay1ms(1000);
init_rs232();
TI=1;
printf("STC12C5410AD学习板 红外遥控解码\n");
printf("ClimberWin 2009.2.4\n\n");
Delay1ms(5000);
LCD_INIT();
Delay1ms(1000);
LCD_LOCAL(1,1,"STC 单片机学习板");
LCD_LOCAL(2,1,"MCU:STC12C5410AD");
LCD_LOCAL(4,1,"Date:2009.2.4 ");
LCD_LOCAL(3,1,"By ClimberWin ");
/****************************************/
Delay1ms(50000);
LCD_LOCAL(1,1,"红外遥控测试界面");
LCD_LOCAL(2,1,"遥控芯片:SAA3010");
LCD_LOCAL(3,1,"测试结果: ");
LCD_LOCAL(4,1," ");
printf("红外遥控测试界面\n");
//Delay100us(8); // 实为760uS
Key_Beep();
IR_Input = 1;//先把信号线拉高,等待接收红外信号
while(1)
{
LCD_IR_da
LCD_IR_da
LCD_IR_da
if(!IR_Input) SAA3010_Recode();
if(SAA3010_CO
{Key_Beep();
SBUF=SAA3010_CO
key_co
key_co
key_co
LCD_IR_da
LCD_IR_da
LCD_IR_da
LCD_LOCAL(4,1,LCD_IR_da
SAA3010_CO
SAA3010_CO
SAA3010_CO
SAA3010_CO
}
else
{SAA3010_CO
}
}
LCD12864.H 如下:
/*****Program Author : ZhengWen(ClimberWin) *****/
/*****E_mail :cooldianzi@163.com *****/
/*************************************************************/
/*****File Function : LCD12864 Display Module *****/
/*****Compile Date : 2009/1/28 *****/
/*****Edition Info : V1.0 *****/
/*****Amend Date : *****/
/*************************************************************/
#ifndef __LCD12864__
#define __LCD12864__
#include
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit LCD_CS = P1^7;//片选 高电平有效 单片LCD使用时可固定高电平rs
sbit LCD_SID = P1^6;//数据 r/w
sbit LCD_SCLK = P1^5;//时钟 e
STC12C5410AD红外解 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)