资源简介
proteus仿真电路 包括仿真电路,红外编码,解码显示
代码片段和文件信息
#include
#define TIMEH 12 //基于22.1184M时钟晶振,数字越大,时间越长
#define TIMEL 50 //基于22.1184M时钟晶振,数字越大,时间越长
#define ROW P3 //矩阵按键接口定义
#define LINE P2 //矩阵按键接口定义
extern void timer_init(void);
extern void delay(unsigned int);
extern unsigned char scan_key(void);
unsigned char irm_code;
sbit QD = P1^0;
void main()
{
unsigned char tmp;
irm_code=0xff;
timer_init();
while(1) {
tmp = scan_key();
if(tmp!=0xff) {
if(irm_code==0xff) {//一次键值发射完成后会将irm_code置为0xff
irm_code = tmp; //键值传递
TR0 = 1; //启动定时器,完成编码发射
}
delay(10);//两次编码发射之间需要延时,连续发射会导致解码失败
}
}
}
void timer_init(void)
{
TMOD = 0x01;
TH0 = 0xff;
TL0 = 0xff;
EA = 1;
ET0 = 1;
TR0 = 0;
}
/*定时中断,红外编码*/
void timer_int(void) interrupt 1
{
static unsigned char i=0flag=0;
QD=~QD;
if(i<10) { //连续发射5个“0”引导码
TH0 = 255-TIMEH/2;
TL0 = 255-TIMEL/2;
i++;
}
else if(i<18) { //数据编码
if((irm_code & 0x80)==0x80) {
TH0 = 255-TIMEH;
TL0 = 255-TIMEL;
irm_code <<= 1;
i++;
}
else {
TH0 = 255-TIMEH/2;
TL0 = 255-TIMEL/2;
if(flag) {
irm_code <<= 1;
i++;
}
flag ^= 0x01;
}
}
else {
TR0 = 0;
i=0;
QD=1;
irm_code=0xff;
TH0 = 0xff;
TL0 = 0xff;
}
}
void delay(unsigned int t)
{
unsigned char i;
while(t--) for(i=0;i<230;i++);
}
/*矩阵按键扫描*/
unsigned char scan_key(void)
{
unsigned char j;
static unsigned char i=0;
ROW = 255-(1< if(LINE!=0xff)
for(j=0;j<8;j++)
if(LINE==(255-(1< i++; i&=0x03;
return(0xff);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 790 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_int.c
文件 230 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_int.h
文件 2584 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_int.LST
文件 3737 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_int.OBJ
文件 1017 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_pro.Opt
文件 2491 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_pro.Uv2
文件 1017 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_pro_Opt.Bak
文件 2505 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\irm_pro_Uv2.Bak
文件 7202 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main
文件 1318 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.c
文件 1656 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.hex
文件 56 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.lnp
文件 3977 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.LST
文件 7702 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.M51
文件 4238 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.OBJ
文件 939 2010-03-29 21:34 一种红外遥控编解码仿真\解码显示\main.plg
文件 4247 2010-03-29 21:34 一种红外遥控编解码仿真\红外编码\IRM编码
文件 1267 2010-03-29 21:34 一种红外遥控编解码仿真\红外编码\IRM编码.hex
文件 43 2010-03-29 21:34 一种红外遥控编解码仿真\红外编码\IRM编码.lnp
文件 7084 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码.M51
文件 972 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码.Opt
文件 167 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码.plg
文件 2104 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码.Uv2
文件 971 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码_Opt.Bak
文件 0 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\IRM编码_Uv2.Bak
文件 1775 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\main.c
文件 5017 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\main.LST
文件 4715 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\main.OBJ
文件 3195 2010-03-29 21:35 一种红外遥控编解码仿真\红外编码\mainbak.c
文件 238174 2010-03-29 21:35 一种红外遥控编解码仿真\仿真电路\Last Loaded 红外遥控器G328111仿真.DBK
............此处省略12个文件信息
相关资源
- 用Socket编程实现FTP
- msp430F149操作红外接收模块源码
- 38k单片机红外发送代码、keil
- S7-200模拟量编程实例
- 防火墙编程-Visual C 网络通信开发
- 数据采集系统——ADC0808的应用,单片
- MFC网络编程实例
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- ADC0809数字电压表 LCD1602显示 汇编程序
- 108种编程中常见的问题及解决办法
- Siemens PLC编程精品例程11.机械手GRAPH
- SOCKET 网络编程 计算机网络 作业 客户
- PC汇编编程钢琴程序
- 浙大ACM编程竞赛的摸板
- 红外循迹小车VHDL程序
- 红外接收头资料(各种品牌的红外接
- 基于8051单片机的红外接收程序
- 武汉大学测绘学院大地测量学编程-
- 武汉大学测绘学院大地测量学编程-
- 操作系统实验综合设计【附代码】
- 汇编编程实现二进制和十六进制之间
- VC 编程实现活动主机扫描源代码
- AT89S ISP下载编程软件(串口)
-
《xm
l编程原理与实例教程》电子教 - VF编程与软件开发若干实例
- “猜数字”游戏 算法破解
- OpenGL-3D坦克模拟
- 联机版井字棋源码
- 拼图游戏(可自由选择难度)
评论
共有 条评论