红外遥控数码管显示

news2024/11/16 6:51:47

红外遥控器实物图

红外遥控器接口电路

数码管接口电路

红外遥控数码管显示程序源代码

/**************************红外遥控数码管显示**************************

* 单片机:51单片机

* 开发环境:keil

* 名称:红外遥控数码管显示

* 功能:遥控器红外解码数码管显示

按配套遥控器上1-9会在数码管上对应显示

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

#include<reg51.h>

#define DataPort P0

#define uchar unsigned char

sbit IR=P3^2;

sbit smg_duan=P3^4;

bit IRpro_ok;

bit IR_ok;

uchar IRcord[4];

uchar IRdata[33];

uchar codedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchar irtime;

void Ir_work(void);

void Ircordpro(void);

void TIM0init(void) //定时器0初始化

{

TMOD=0x02; //定时器0工作方式2,TH0是重装值,TL0是初值

TH0=0x00; //重载值

TL0=0x00; //初始化值

ET0=1; //开中断

TR0=1;

}

void EX0init(void)

{

IT0=1; //指定外部中断0下降沿触发,INT0 (P3.2)

EX0=1; //使能外部中断

EA=1; //开总中断

}

void SYSinit(void)

{

TIM0init();

EX0init();

}

void Ir_work(void) //红外键值散转程序

{

switch(IRcord[2]) //判断第三个数码值

{

case 0x0c:

{DataPort=dofly_DuanMa[1];}break; //1显示相应的按键值

case 0x18:

{DataPort=dofly_DuanMa[2];}break; //2显示相应的按键值

case 0x5e:

{DataPort=dofly_DuanMa[3];}break; //3显示相应的按键值

case 0x08:

{DataPort=dofly_DuanMa[4];}break; //4显示相应的按键值

case 0x1c:

{DataPort=dofly_DuanMa[5];}break; //5显示相应的按键值

case 0x5a:

{DataPort=dofly_DuanMa[6];}break; //6显示相应的按键值

case 0x42:

{DataPort=dofly_DuanMa[7];}break; //7显示相应的按键值

case 0x52:

{DataPort=dofly_DuanMa[8];}break; //8显示相应的按键值

case 0x4a:

{DataPort=dofly_DuanMa[9];}break; //9显示相应的按键值

default:break;

}

IRpro_ok=0; //处理完成标志

}

void Ircordpro(void) //红外码值处理函数

{

uchar i, j,k;

ucharcord,value;

k=1;

for(i=0;i<4;i++) //处理4个字节

{

for(j=1;j<=8;j++) //处理1个字节8位

{

cord=IRdata[k];

if(cord>6)

//大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差

value|=0x80;

if(j<8)

{value>>=1;}

k++;

}

IRcord[i]=value;

value=0;

}

IRpro_ok=1; //处理完毕标志位置1

}

void main(void)

{

SYSinit();

DataPort=0x00; //先让数码管什么都不显示

smg_duan=0;

while(1) //主循环

{

if(IR_ok) //如果接收好了进行红外处理

{Ircordpro();IR_ok=0;}

if(IRpro_ok)

//如果处理好后进行工作处理,如按对应的按键后显示对应的数字等

{Ir_work();}

}

}

void tim0_isr (void) interrupt 1 using 1

{irtime++;} //用于计数2个下降沿之间的时间

void EX0_ISR (void) interrupt 0 //外部中断0服务函数

{

staticuchar i; //接收红外信号处理

static bitstartflag ; //是否开始处理标志位

if(startflag)

{

if(irtime<63&&irtime>=33) //引导码 TC9012的头码,9ms+4.5ms

i=0;

IRdata[i]=irtime;

//存储每个电平的持续时间,用于以后判断是0还是1

irtime=0;

i++;

if(i==33)

{IR_ok=1;i=0;}

}

else

{irtime=0;startflag=1;}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言常量

常量是固定值&#xff0c;在程序执行期间不会改变。这些固定的值&#xff0c;又叫做字面量。常量可以是任何的基本数据类型&#xff0c;比如整数常量、浮点常量、字符常量&#xff0c;或字符串字面值&#xff0c;也有枚举常量。常量就像是常规的变量&#xff0c;只不过常量的值…

OpenMMLAB AI实战营第一课笔记

计算机视觉的发展 计算机视觉是什么 计算机视觉是一门让计算机学会"看"的学科&#xff0c;研究如何自动理解图像和视频中的内容 计算机视觉的发展 早期萌芽&#xff08;1960-1980&#xff09; 统计机器学习与模式识别(1990-2000) ImageNet 大型数据库(2006) 斯坦…

ocelot+consul治理服务

consulConsul 是HashiCorp公司推出的开源工具&#xff0c;用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案相比&#xff0c;Consul的方案更“一站式”&#xff0c;内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方…

程序员副业接单做私活避坑指南

这篇文章系统的分享了对接单做私活这件事情的思考&#xff0c;也给出一些干货建议。希望让大家少走一些弯路&#xff0c;不要被坑。 先说结论 不建议大家在接单这个事情上投入太大精力&#xff0c;如果你“贼心不改”&#xff0c;建议大家以比较随缘的方式对待这件事情。 再说…

Linux云主机配置

Linux云主机配置 推荐环境&#xff1a; Mac 阿里云主机Linux 阿里云主机Windows Xshell 阿里云主机&#xff08;选择使用&#xff09;Windows 虚拟机 阿里云主机 1.云主机配置 选择配置的过程中&#xff0c;请注意选择操作系统版本为Ubuntu 16.04 64位 或 Ubuntu 18.04 6…

多位大厂专家鼎力推荐,44个微服务架构设计模式pdf,程序员福利

前言 本文的目标是让架构师和程序员学会使用微服务架构成功开发应用程序。 本文不仅讨论了微服务架构的好处&#xff0c;还描述了它们的弊端。读者将掌握如何在使用单体架构和使用微服务架构之间做出正确的权衡。 谁应该阅读本文&#xff1f; 本文的重点是架构和开发&#…

前端vue2实现头部组件(自定义背景icon+抽屉式使用指南展示)

一、文章引导 #mermaid-svg-Sqlx5Ih7pUPfo8rw {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Sqlx5Ih7pUPfo8rw .error-icon{fill:#552222;}#mermaid-svg-Sqlx5Ih7pUPfo8rw .error-text{fill:#552222;stroke:#55222…

Python多态及用法详解

Python 是弱类型语言&#xff0c;其最明显的特征是在使用变量时&#xff0c;无需为其指定具体的数据类型。这会导致一种情况&#xff0c;即同一变量可能会被先后赋值不同的类对象&#xff0c;例如&#xff1a;class CLanguage: defsay(self): print("赋值的是 CLanguage 类…

ElasticSearch从入门到出门【下】

文章目录数据聚合聚合的种类DSL实现聚合Bucket聚合语法聚合结果排序限定聚合范围Metric聚合语法RestAPI实现聚合API语法业务需求业务实现自动补全拼音分词器自定义分词器自动补全查询实现酒店搜索框自动补全修改酒店映射结构修改HotelDoc实体重新导入自动补全查询的JavaAPI实现…

阿里云领取免费2H2G云服务器&证书分享&个税抵扣:Apsara Clouder云计算专项技能认证:云服务器ECS入门

这个证书是你领服务器一个月内要考的&#xff0c;内容也不难。下面是90分左右的答案&#xff08;粗体&#xff09;&#xff0c;仅供参考……单选1&#xff0e;云服务器ECS以服务化的方式对客户提供&#xff0c;阿里云产品售后支持的时间段是&#xff1f;A.5*8B.7*8C.7*12D.7*24…

《MySQL高级篇》十四、多版本并发控制

文章目录1. 什么是MVCC2. 快照读与当前读2.1 快照读2.2 当前读3. 复习3.1 再谈隔离级别3.2 隐藏字段、Undo Log版本链4. MVCC实现原理之ReadView4.1 什么是ReadView4.2 设计思路4.3 ReadView的规则4.4 MVCC整体操作流程5. 举例说明5.1 READ COMMITTED隔离级别下5.2 REPEATABLE …

Gerrit3.4.1安装+its插件

环境依赖jdk11安装jdk11&#xff1a;下载&#xff1a; wget https://download.java.net/openjdk/jdk11/ri/openjdk-1128_linux-x64_bin.tar.gz解压&#xff1a; tar zxvf openjdk-1128_linux-x64_bin.tar.gzsudo update-alternatives --install /usr/bin/java java /home/jenki…

P问题、NP问题、NPC问题、NP-Hard问题

经常听到老师讲&#xff0c;某一个问题&#xff08;比如说&#xff0c;车辆路径规划问题Vehicle Routing Problem&#xff09;是一个NP-Hard问题,此外&#xff0c;我们在阅读文章的时候&#xff0c;也经常会读到某一个问题是NP-Hard问题的陈述&#xff0c;与此同时&#xff0c;…

Python程序设计-第3章Python函数与模块

第3章Python函数与模块一.预习笔记 3.1 函数定义&#xff1a;def 函数名称 (参数1&#xff0c;参数2 …)&#xff1a; 函数体 * 函数是某一个功能或者某一段程序代码的一个封装 * 函数名是用户自己定义的名称&#xff0c;与变量的命名规则相同&#xff0c;用字母开头&#x…

Java线程池个人整理笔记

一、线程池有哪些优点 总体来说&#xff0c;线程池有如下的优势&#xff1a; &#xff08;1&#xff09;降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 &#xff08;2&#xff09;提高响应速度。当任务到达时&#xff0c;任务可以不需要等到线程创建…

配置Linux18.04系统/解决无法安装vmwatools的问题

一、解决无法安装vmwatools的问题 1.关闭虚拟机中的Linux18.04系统 2.打开虚拟机设置 3.修改所有的CD/DVD 、软盘 连接为&#xff1a;使用物理驱动器->自动检测&#xff08;如下图&#xff09; 4.打开虚拟机&#xff0c;都点是&#xff1b; 5.解决解压桌面上的vmware-…

春节特献!一文纵览2022年全球量子计算行业要闻!

&#xff08;图片来源&#xff1a;网络&#xff09;岁聿云暮&#xff0c;一元复始。如果说2018年是量子计算技术变革元年&#xff0c;那么2022年全球量子计算已正式步入市场探索加速期。随着中国、美国、欧盟等国家相继出台各种量子信息相关战略纲要和旗舰计划&#xff0c;越来…

数据的解析的介绍(1)

1.xpath 注意&#xff1a;提前安装xpath插件 &#xff08;1&#xff09;打开chrome浏览器 &#xff08;2&#xff09;点击右上角小圆点 &#xff08;3&#xff09;更多工具 &#xff08;4&#xff09;扩展程序 &#xff08;5&#xff09;拖拽xpath插件到扩展程序中 &#xff0…

王道操作系统笔记(五)———— 经典同步问题

前言&#xff1a;PV 操作题目分析步骤 关系分析&#xff1a; 找出题目中描述的各个进程&#xff0c;分析它们之间的同步、互斥关系。整理思路&#xff1a; 根据各进程的操作流程确定 P、V 操作的大致顺序。设置信号量&#xff1a; 并根据题目条件确定信号量初值。&#xff08;…

数据结构与算法基础——栈和队列

栈只能在表尾进行插入删除操作 队列先进先出 队列和栈都是线性表&#xff0c;不过是插入和删除的 位置被限制了。 队列头进尾出