STC89C52单片机红外接收系统程序设计
需积分: 19 149 浏览量
更新于2024-07-23
收藏 36KB DOCX 举报
"该资源是关于基于STC89C52单片机设计的红外接收系统的程序代码,其中包含了多个库文件,如IR、lcd1602、DS18B20、ADC0832CO以及IROUT555等,用于实现红外信号的接收、显示和处理功能。程序涉及到日期和时间的显示,以及可能的温度测量和报警功能。"
在红外接收系统中,STC89C52单片机作为核心控制器,负责处理来自1383红外一体化接收头的信号。红外接收头能够捕捉到遥控器发出的红外信号,并将其转化为单片机可以解析的电信号。红外接收主板主程序包含了多个库文件,这些库文件用于不同的功能模块:
1. `<IR.h>`:这是红外解码库,用于解析接收到的红外信号,通常包含红外信号的编码和解码函数,如NEC、RC5等红外协议。
2. `<lcd1602.h>`:液晶显示屏驱动库,用于在LCD1602屏幕上显示日期、时间、温度等信息。
3. `<DS18B20.h>`:DS18B20是一颗数字温度传感器,其库文件提供了与传感器通信的函数,用于读取环境温度。
4. `<ADC0832CO.h>`:ADC0832是一款8位模拟数字转换器,用于将模拟信号(如温度传感器的输出)转换为数字值。
5. `<IROUT555.h>`:这可能是用于实现定时器或振荡器功能的库,555定时器常用于产生脉冲或者定时控制。
程序中定义了一系列字符数组,如`ucharcodedisk0`至`ucharcodedisk18`,这些数组可能用于在LCD1602屏幕上显示日期、时间、状态消息和提示信息。
此外,程序还涉及到了一些变量和函数,例如`ucharcounter,shi,ge,keynum,keynum1,funnum`等,它们分别用于计数、存储时间(小时、分钟、秒)、按键编号和功能选择。还有一些全局变量如`year, month, day, hour, min, sec`用于表示日期和时间,`hour1, min1, sec1`则可能是设置的闹钟时间。
`keysan_rili()`函数可能是处理按键输入和设置日期的函数,通过单片机的输入引脚读取按键状态,实现对时间的设定。
在中断服务函数中,可以看到`sbitOUT=P3^6;`这样的定义,这表明P3.6引脚可能用于某些输出功能,如驱动LCD1602的背光或者红外接收头的使能信号。另外,`sbitBUZZ=P3^7;`定义了蜂鸣器的输出,可能用于报警提示。
程序中的`intTP0=0,TP1=0,T=0;`可能是用来计时的变量,而`sbitzheng=P3^6;`和`sbitfan=P3^5;`可能分别用于控制某些外部设备,如电机或继电器的正反转。
这个红外接收系统程序集成了红外解码、时间显示、温度测量、按键交互和报警功能,是一个典型的嵌入式系统应用实例。
2010-05-30 上传
2021-10-04 上传
2013-09-05 上传
2015-05-01 上传
2013-10-09 上传
2022-09-22 上传
wangjiabin0310
- 粉丝: 1
- 资源: 2
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析