基于单片机的红外遥控窗帘设计论文(含C语言源程序) 下载本文

指示着哪一列有键按下,这样就由遥控接收、解码电路模拟了一次“按键”动作。接下来CPU对这个“按键”动作的响应、处理就和本机键盘完全一样了。 3.2.4解码程序

红外一开始发送一段13.5ms的引导码,引导码由9ms的高电平和4.5ms的低电平组成,跟着引导码是系统码,系统反码,按键码,按键反码,如果按着键不放,则遥控器则发送一段重复码,重复码由9ms的高电平,2.25ms的低电平,跟着是一个短脉冲。程序流程图下:

解码程序在比较器中断服务程序中实现。第一个下降沿表明编码输出开始,这时将时间记录为last_time,当比较器输出跳为高电平时,记录当前时间为current_time,并且记录脉冲宽(current_time-last_time)判断收到的是宽脉冲还是窄脉冲,如果是宽脉冲记录为0,窄脉冲记录为1。

每一组有效的编码由24为组成,因此程序中需要有一个脉冲计数变量来记录是否有24位码,只有确认收到24位码后,才认为这次按键有效。同时需要防止将用户的一次按键解释为多次按键,需要有去抖功能。可以设一个变量来记录同一个键值收到的次数,当它的记录小于某一预定的值时,表示用户在进行同一操作。完整的接收到一组编码后,在中断程序中将键值有效标志key_flag置1,主程序循环中如果查询到key_flag为1则保存这个键码,即完成一次解码操作。

10

4 单片机介绍

4.1单片机简介与接口技术

4.1.1主要功能

MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位单片微机,较原来

的MCS-48系列结构更为先进,功能增强,它包括51和52两个子系列。

在51系列中,主要有8031、8051、8751三种机型,它们的指令系统与芯片引脚完全兼容,仅片内ROM有所不同。51子系列的主要功能为: 18为CPU。 ○

2片内带振荡器,振荡频率fosc范围为1.2~12MHZ;可有时钟输出。 ○

3128个字节的片内数据存储器。 ○

44K字节的片内程序存储器(8031无) ○。 5程序存储器的寻址范围为64K字节。 ○

6片外数据存储器的寻址范围为64K字节。 ○

721个字节专用寄存器。 ○

84个8位并行I/O接口:P0、P1、P2、P3。 ○

91个全双工串行I/O接口,可多机通讯。 ○

102个16位定时/计数器。 ○

11中断系统有5个中断源,可编程为两个优先级。 ○

12111条指令,含乘法指令和除法指令。 ○

3有强的位寻址、位处理能力。 1○

14片内采用单总线结构。 ○

15用单一+5V电源。 ○

52子系列主要有8032、8052两种机型。与51子系列的不同在于:片内数据存储器增至256个字节;片内程序存储器增至8KB(8032无);有3个16位定时器/计数器;有6个

11

中断源。其他性能均与51子系列相同。 4.1.2内部结构

它含运算器、控制器、片内存储器、4个I/O接口、串行接口、定时器/计数器、中断系统、振荡器等功能器件。 4.1.3外部引脚说明

MCS-51系列单片机芯片有40个引。见图。用HMOS工艺制造的芯片采用双列直插式封

装。低功耗的、采用CHMOS工艺制造的机型(在型号中间家一“C”字作为识别,如80C31、80C51、87C51)也有用方型封装结构的。 现将各引脚分别说明如下: 1.主电源引脚

Vcc:接+5V电源正端。 Vss:接+5V电源地端。 2.外接晶体引脚

XTAL1:片内反相放大器输入端。

XTAL2:片内反相放大器输出端。外接晶体时,XTAL1与XTAL2各接警惕的一端,借外接晶体与片内反相放大器构成振荡器。 3.输入/输出引脚

P0.0~P0.7:P0口的8个引脚。在不接片外存储器与不扩展I/O接口时,可作为准双向输入/输出接口。在接有片外存储器或扩展I/O接口时,P0口分时复用为低8位地址总线和双向数据总线。

P1.0~P1.7:P1口的8个引脚。可作为准双向I/O接口使用。对于52子系列,P1.0与P1.1还有第二种功能:P1.0可作为定时器/计数器2的计数脉冲输入端T2;P1.1可作为定时器/计数器2的外部控制端T2EX。

P2.0~P2.7:P2口的8个引脚.一般可作为准双向I/O接口;在接有片外存储器或扩展I/O接口且寻址范围超过256字节时,P2口用为高8为地址总线。

P3.0~P3.7:P3口的8个引脚,除了作为准双向I/O接口使用外,还具有第二功能,具体如下:

P3.0:RXD (串行输入口) P3.1:TXD (串行输出口)

P3.2:INT0 (外部中断0请求输入端) P3.3:INT1 (外部中断1请求输入端)

P3.4:T0 (定时器/计数器0计数脉冲输入端) P3.5:T1 (定时器/计数器1计数脉冲输入端)

12