东城区二手房-星美国际影城怎么了

空调遥控器设计
2023年10月5日发(作者:蔡焕宗)

青岛科技大学本科毕业论文

(设 计)

题目 空调遥控器设计

指导教师

辅导教师

学生姓名

学生学号

自动化系(学院)自动化专业

- 1 -

青岛科技大学本科毕业论文

空调遥控器设计

学位论文完成日期:

指导教师签字:

答辩委员会成员签字:

- 2 -

青岛科技大学本科毕业论文

空调遥控器设计

随着社会的发展,空调器在家庭中已经十分普及,与此同时,和空调器相

伴的空调遥控器的品种和产量不断提高。市场竞争日趋激烈,既要尽量减少设

计和生产周期,又要在批量生产时有较强的价格竞争力,这是空调遥控器设计

和生产厂商面临的一个问题。本文介绍的基于中颖公司SH6614单片机的空调遥

控器设计方案较好地解决了上述问题。

文章首先对空调遥控器的设计进行了可行性分析,之后提出了空调遥控器

的硬件和软件设计方案。在硬件设计方案中,首先详细论述了红外遥控的基本

原理并用实例进行了说明。然后,对空调遥控器常用硬件设备LCD和键盘的原

理和使用进行了讨论,并对设计中使用的SH6614单片机做了必要说明。在软件

设计方案中,文章对软件流程做了详细的解释并阐述了SH66系列单片机软件设

计的一般方法。最后,文章对空调遥控器设计的仿真和调试做了简单介绍。另

外,文章还对空调遥控器设计规格做了详细的描述,使整个设计过程更加清楚

详细。

关键字

空调遥控器 红外遥控原理 SH6614单片机

- 3 -

青岛科技大学本科毕业论文

AIR-CONDITION REMOTE

CONTROLLER DESIGN

ABSTRACT

With the development of society, air-condition have been widespread in houses.

Meanwhile, the air-condition remote controller, gets an uninterrupted enhance in

category and output. It is a critical problem for the designer and manufacturer to

reduce the design and manufacture cycle as well as the batch cost in the increasingly

competitive market. The project in the thesis based on MCU SH6614, which is

provided by sinowealth electron corporation, solves the problem satisfactorily.

The thesis makes the feasibility analysis of the air-condition remote controller

firstly, then raises the hardware and software project for the air-condition remote

controller. In hardware design project, the thesis starts with the basic theory of

infrared remote controller and interprets with examples. After that, the thesis

discusses the theory and application of the hardware that is in common use for

air-condition, LCD and key board and something about SH6614 as well. In software

design project, the thesis interprets the programming process detailed and the

common method in SH66 series MCU programming. At last, the thesis introduces

the simulation and debugging of air-condition remote controller design simply. In

addition, the thesis depicts the air-condition remote controller design specification

particularly to make the design process more clearly.

KEY WORDS air-condition infrared remote theory SH6614MCU

- 4 -

青岛科技大学本科毕业论文

1绪论

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„1

2空调遥控器技术要求

2.1 功能要求„„„„„„„„„„„„„„„„„„„„„„„„„2

2.2 关键字说明„„„„„„„„„„„„„„„„„„„„„„„„2

2.3 编码规范„„„„„„„„„„„„„„„„„„„„„„„„„3

2.4 波形规范„„„„„„„„„„„„„„„„„„„„„„„„„6

3空调遥控器硬件设计

3.1 单片机选型„„„„„„„„„„„„„„„„„„„„„„„„8

3.2 红外发射电路设计„„„„„„„„„„„„„„„„„„„„„11

3.2.1 红外遥控基本原理„„„„„„„„„„„„„„„„„„11

3.2.2 红外发射电路„„„„„„„„„„„„„„„„„„„„14

3.3 LCD 驱动电路设计„„„„„„„„„„„„„„„„„„„„„14

3.3.1 LCD 基本原理„„„„„„„„„„„„„„„„„„„„14

3.3.2 LCD 驱动电路„„„„„„„„„„„„„„„„„„„„17

3.4 键盘扫描电路设计„„„„„„„„„„„„„„„„„„„„„17

3.4.1 键盘基本原理„„„„„„„„„„„„„„„„„„„„17

青岛科技大学本科毕业论文

4.1.4 低高频转换程序设计„„„„„„„„„„„„„„„„„28

4.1.5 系统休眠程序设计„„„„„„„„„„„„„„„„„„28

4.2 软件主流程设计„„„„„„„„„„„„„„„„„„„„„„30

5系统仿真与软件调试

5.1 系统仿真„„„„„„„„„„„„„„„„„„„„„„„„„31

5.2 软件调试„„„„„„„„„„„„„„„„„„„„„„„„„32

结束语

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„33

参考文献

„„„„„„„„„„„„„„„„„„„„„„„„„„„„34

附录

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„35

致谢

„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„57

青岛科技大学本科毕业论文

1绪论

随着社会经济的发展,空调器已经成为现代家庭中不可缺少的家电设备,

因此空调遥控器也就成为日常生活中常用的遥控设备之一。目前,红外遥控一

直是遥控器设计采用的主要方式之一,它具有体积小,重量轻,简单易用等特

点,完全可以满足用户需要。

本文的空调遥控器设计,采用的是中颖电子公司生产的SH6614单片机。

款单片机具有8I/O输出口,可以作为键盘扫描电路的端口;系统的PA1

PA2可以作为声音发生器,对其进行编程则可以产生红外发射常用的38K载波,

满足红外发射的需要;该款单片机还自带LCD输出端口,可以对LCD 进行有效

驱动,无需外加辅助电路;系统提供的双晶振结构可以对系统时钟进行切换,

从而实现空调遥控器的节能设计。空调遥控器的显示界面采用由用户定义笔画

的定制LCD,键盘采用3×4矩阵键盘,不仅可以满足用户需求,而且能够很好

的与单片机进行协调工作。因此,这款单片机和选择的外围设备能够很好的满

足空调遥控器的设计要求。

本文从第二章开始介绍了空调遥控器的设计过程。第二章对空调遥控器的

技术要求进行了说明,技术参数是用户的要求,也是设计者进行设计的依据,

只有认真研究技术参数才能设计出满足用户要求的产品。第三章对空调遥控器

的硬件设计进行了详细的论述,对每一部分首先从一般原理上进行了研究,然

后根据设计要求提出了设计方案。第四章对空调遥控器的软件设计进行了必要

的说明,给出了详细的软件流程图并对关键部分进行了阐述。第五章描述了系

统仿真和调试过程。

- 7 -

青岛科技大学本科毕业论文

2空调遥控器设计技术要求

本章主要阐述了空调遥控器的设计任务,包括要求完成的功能,系统不同

工作模式的说明,系统要求的编码规范和发射波形规范等,这就为空调遥控器

的总体设计做出规定,为设计工作提出了基本要求。

2.1功能要求

空调遥控器是以单片机为核心,由键盘接收用户命令,通过发射编码对空

调进行操作并用LCD对当前状态进行显示,无操作状态下系统进入低功耗模式。

功能有:

1. 自动、制冷、制热、抽湿模式设定

2. 十二小时预约开机或关机功能

3. 温度设定范围:17ºC--32ºC

4. 低、中、高、自动四档风速设定

2.2关键字说明

2.2.1复位状态

2.2.1.1首次装上电池、刚接通电源,遥控器进入的状态称为复位状态。进入复

位状态后,液晶显示屏全部笔画点亮两秒钟,然后关闭全部笔画,显示默认设

置状态。遥控器的默认设置状态如下:

功能选择“模式” -- 自动 模式区显示自动图标

温度选择“温度” -- 24 温度区显示“24℃”字样

风速选择“风速” -- 自动 风速区显示自动图标

风向选择“风向” -- 自动 风向区显示自动图标

2.2.1.2复位后遥控器处在关机状态,即液晶显示器不显示任何信息。

2.2.1.3复位后,无定时开机或关机信息。若调整定时开、关时间,则第一次显

示时,定时开、关时间均为0.5小时。

- 8 -

青岛科技大学本科毕业论文

2.2.2开机状态

开机状态下,运行模式、风速、设定温度、定时开/关等信息在液晶相应区

域显示,并可调整。每次有效的按键操作,均有相应的信息编码以红外形式发

射。

2.2.3发射指示

发射指示图标是用来表示正在发射信号的符号。当有信号发射时,发射指

示点亮时间与实际发码时间相等。

2.2.4省电模式

当无按键输入五秒以后, 系统进入省电模式,减少遥控器功耗。

2.2.5正常运行模式

当芯片处于省电模式中,如果有按键输入,芯片将退出省电模式,进入正

常运行。

2.2.6定时设定模式

定时开:按“定时开”,进入定时开调整。LCD中显示“定时开”符号,并

且初次显示为0.5小时。

定时关:按“定时关”进入定时关调整。LCD中显示“定时关”符号,并且

初次显示为0.5小时。

在定时调整期间内,如果连续五秒没有键按下,则退出定时设置模式,定

时显示熄灭,遥控器处于进入此次定时设置前的状态。

2.3编码规范

2.3.1编码格式:

每次发码奖包含所有信息的编码发出。 L,A,A’,B,B’,C,C’,D,D,E,E

2.3.1.1第一帧与第二帧相同

2.3.1.2 L为引导码,S为分隔码,A为认别码(A=11110000=F0),A’为A的反

码,B’为B的反码,C’为C的反码

2.3.1.3 BCDE代表的含义:

2-1 B,C编码含义

Table 2-1 B,C code define

B C

B7 B6 B5 B4 B3 B2 B1 B0 C7 C6 C5 C4 C3 C2 C1 C0

- 9 -

青岛科技大学本科毕业论文

/关机 模式 温度 风速

见表2-3 见表2-4 见表2-5 见表2-6

2-2 D,E编码含义

Table 2-2 D,E code define

D E

D7 D6 D5 D4 D3 D2 D1 D0 E7 E6 E5 E4 E3 E2 E1 E0

定时开小时 定时开分钟 定时关分钟 定时关小时

见表2-7 见表2-8 见表2-8 见表2-7

2-3 /关机编码

Table 2-3 Open/Close code

/关机 B7 B6 B5 B4

0 0 0 0

1 1 1 1

2-4 模式编码

Table 2-4 Mode code

B3 B2 B1 B0

1 0 0 0

0 0 0 1

湿 0 0 1 0

0 1 0 0

2-5 温度编码

Table 2-5 Temperature code

C7 C6 C5 C4

17ºC 0 0 0 0

18ºC 0 0 0 1

19ºC 0 0 1 0

20ºC 0 0 1 1

- 10 -

青岛科技大学本科毕业论文

21ºC 0 1 0 0

22ºC 0 1 0 1

23ºC 0 1 1 0

24ºC 0 1 1 1

25ºC 1 0 0 0

26ºC 1 0 0 1

27ºC 1 0 1 0

28ºC 1 0 1 1

29ºC 1 1 0 0

30ºC 1 1 0 1

31ºC 1 1 1 0

32ºC 1 1 1 1

2-6 风速编码

Table 2-6 Wind code

B7 B6 B5 B4

1 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

2-7 定时时间小时编码

Table 2-7 Hour code for set time

小时 7 6 5 4

青岛科技大学本科毕业论文

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1

10 1 0 1 0

11 1 0 1 1

12 1 1 0 0

无定时信息 1 1 1 1

2-8 定时时间分钟编码

Table 2-8 Minute code for set time

分钟 3 2 1 0

30分钟 1 1 1 1

0分钟 0 0 0 0

2.4波形规范

在红外发射中只有发码和不发码两种状态,于是我们用这两种状态的不同

长短组合作为特定意义的编码,实现红外发射。各种编码定义如下:

2.4.1引导码:L

0.56ms

5.04ms

5.6ms

青岛科技大学本科毕业论文

2.4.3数据“0

2.4.4数据“1

0.56ms

1.68ms

0.56ms

0.56ms

青岛科技大学本科毕业论文

3空调遥控器硬件设计

本章主要阐述了空调遥控器硬件设计,包括单片机的选型、红外发射电路

设计、LCD驱动电路设计、键盘扫描电路设计和系统双时钟设计,详细阐述了各

部分的基本原理和设计过程。

空调遥控器硬件设计框图如图3-1

红外发射电路

双时钟电路

单片机

键盘扫描电路

LCD

3-1 空调遥控器硬件设计框图

Fig.3-1 Block diagram for air-condition

remote controllers hardware design

3.1 单片机选型

空调遥控器使用的单片机应该满足LCD驱动,键盘扫描,红外发射和系统低

功耗设计。中颖电子的SH66xx系列4位单片机是精简指令集单片机,所有指令

具有相同指令周期,具有速度快,功耗低,抗干扰能力强,结构简单易用,性

价比高等特点。SH6614是其中的一款具有双晶振及液晶驱动功能的单片机,

过编程PA1口可以发出38K载波供红外遥控发码时使用,I/OPAPB可作为

键盘接口,因此完全满足空调遥控器设计。它的基本功能如下:

程序存储器(ROM): 4096×16

数据存储器(RAM): 512×4

输入输出口:8

液晶驱动:30×834×4

其中Segment 1-30可以设置成输出口

- 14 -

青岛科技大学本科毕业论文

中断源:4

定时器:28

内置双通道可编程声音发生器(PSG)

高低频两组振荡器

另外,中颖电子亦可提供SH6614OTP版本的产品SH66P14,这样, 对于

小量试生产或交货周期短的空调遥控器可以采用SH66P14 进行生产,由于

SH6614SH66P14有很好的一致性.因此如果生产稳定或遇到成本压力时即可

顺利转为掩膜版的SH6614SH6614的功能框图和引脚图如图3-23-3

3-2 SH6614功能框图

Fig.3-2 Block diagram for SH6614s function

- 15 -

青岛科技大学本科毕业论文

PPSSSPPPP

BBBB

230123

R

EEEEE

SS

ET

T

VNNVVNVV

DAA

DGGG

CCC

T

2143

123

5544444444443333333

1098765432109876543

PA0SEG5

OSCXISEG6

OSCXOSEG7

GNDSEG8

OSCOSEG9

OSCISEG10

COM1SEG11

COM2SEG12

COM3SEG13

COM4SEG14

COM5SEG15

COM6SEG16

5232

5331

5430

5529

5628

5727

5826

5925

6024

6123

6222

6321

PA1SEG4

SH6614

9111111111112345678

0123456789

6420

NNN

CCC

SSSSSSSSSSSSSS

EEEEEEEEEEEEEE

GGGGGGGGGGGGGG

22322222222111

43098765210987

CC

OO

MM

78

3-3 SH6614引脚图

Fig.3-3 Pins diagram for SH6614

3-1 SH6614单片机各引脚定义

Table 3-1 Pins define for SH6614 MCU

引脚 功能

OSCOOSCI 低频晶振32.768KHz

/RESET 重启动

COM1COM8 LCDCOM

VCC 电源脚

GND 电源地脚

PA1 红外输出脚

PB0PB3 键盘读入脚

OSCXOOSCXI 高频晶振4MHz

SEG1SEG12 LCDSEGMENT

PA0PA1PA3 键盘输出脚

- 16 -

青岛科技大学本科毕业论文

3.2 红外发射电路设计

3.2.1红外遥控基本原理

3.2.1.1概述

人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、

蓝、紫。其中红光的波长范围为0.620.76μm;紫光的波长范围为0.38

0.46μm。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线,红外

线遥控就是利用波长为0.761.5μm之间的近红外线来传送控制信号的。

常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红

外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普

通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可

见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形

与普通发光二极管相同,只是颜色不同。接收部分的红外接收管是一种光敏二

极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即

红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红

外接收二极管一般有圆形和方形两种。

红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz晶振来

12

455kHz÷12≈37.9 kHz≈38kHz。也有一些遥控系统采用36kHz40kHz56kHz

等,一般由发射端晶振的振荡频率来决定。

多路控制的红外发射部分一般有许多按键,代表不同的控制功能。当发射端

按下某一按键时,相应地在接收端有不同的输出状态。接收端的输出状态大致

可分为脉冲、电平、自锁、互锁、数据五种形式。“脉冲”输出是当按发射端

按键时,接收端对应输出端输出一个“有效脉冲”,宽度一般在100ms左右。

“电平”输出是指发射端按下键时,接收端对应输出端输出“有效电平”,发

射端松开键时,接收端“有效电平”消失。此处的“有效脉冲”和“有效电

平”,可能是高、也可能是低,取决于相应输出脚的静态状况,如静态时为低,

则“高”为有效;如静态时为高,则“低”为有效。大多数情况下“高”为有

效。“自锁”输出是指发射端每按一次某一个键,接收端对应输出端改变一次

状态,即原来为高电平变为低电平,原来为低电平变为高电平。此种输出适合

用作电源开关、静音控制等。有时亦称这种输出形式为“反相”。“互锁”输

出是指多个输出互相清除,在同一时间内只有一个输出有效。电视机的选台就

- 17 -

青岛科技大学本科毕业论文

属此种情况,其它如调光、调速、音响的输入选择等。“数据”输出是指把一

些发射键编上号码,利用接收端的几个输出形成一个二进制数,来代表不同的

按键输入,这种输出形式一般用于与单片机或微机接口。 本文介绍的空调遥控

器设计就是采用这种编码。

3.2.1.2遥控指令编码规律

遥控器所发送的功能指令码一般采用多位二进制串行码,例如某彩色电视的

红外遥控码,其编码规律为:头脉冲、系统码、资料码、资料反码和结束位。

头脉冲用做一帧命令的起始位;系统码用于区别不同类的电器;资料码用于完

成命令功能;资料反码是将资料码按位取反的码。每次进行发送都是先发送脉

4510us周期2*4510us的头脉冲,然后连续发送两次系统码、接着发送资料

码及资料反码、最后发送结束位,波形见图3-4

3-4遥控指令编码图

Fig.3-4 Diagram for remote control instruction code

3.2.1.3数据脉冲编码

红外通讯数据采用脉冲编码,所谓脉冲编码,就是将每位数据信号用一个

脉冲来表示。例如红外编码以脉宽561us周期4*561us代表1以脉宽561us

周期2*561us代表“0”。脉冲信号都调制在占空比为1/3,频率为38kHz的载

波上再发送出去,调制后的信号“1”和“0”如图3-5所示。这样做有两点好

处:第一,减少了有效的发射时间,有利于降低平均功耗,这对于采用干电池

供电的发射器十分重要;第二,外部干扰信号多为缓变信号,有利于抗干扰。

- 18 -

青岛科技大学本科毕业论文

3-5 信号10

Fig.3-5 Signal 1 and 0

3.1.2.4程序设计流程图

红外发射程序流程图如图3-6所示。

3-6程序流程图

Fig.3-6 Program flow chat

- 19 -

青岛科技大学本科毕业论文

34

3.2.2红外发射电路

常用的红外发光二极管(如SE303·PH303其外形和发光二极管LED相似,

发出红外光(近红外线约0.93μm 管压降约1.4V 工作电流一般小于20mA

为了适应不同的工作电压,回路中常串有限流电阻。

发射红外线去控制相应的受控装置时,其控制的距离与发射功率成正比。

为了增加红外线的控制距离,红外发光二极管工作于脉冲状态,因为脉动光(调

制光)的有效传送距离与脉冲的峰值电流成正比,只需尽量提高峰值电流 ,就

能增加红外光的发射距离。提高峰值电流的方法,是减小脉冲占空比,即压缩

脉冲的宽度。减小冲占空比还可使小功率红外发光二极管的发射距离大大增加。

要使红外发光二极管产生调制光,只需在驱动管上加上一定频率的脉冲电压。

红外发射电路如图3-7所示。

VDD

D

R3

2

PA1

R2

1K

8050

47uF/10V

C6

3-7 红外发射电路

Fig.3-7 Infrared sending circuit

3.3 LCD驱动电路设计

3.3.1 LCD基本原理

LCDLiquid Crystal Digit)具有耗电低,驱动电压低,结构空间小而有

效显示面积大、体薄物轻等优点,在各类电子产品中得到广泛应用。

LCD的基本结构及工作原理:

液晶显示器的结构如图3-8所示:

- 20 -

青岛科技大学本科毕业论文

下电极基板

电极

液晶材料

上偏振片

上电极基板

封接剂

反射板

3-8 液晶显示器基本结构

Fig.3-8 Configuration of LCD

Fig.3-8 Basic configuration of LCD display

在上、下两层电极之间封入向列型液晶材料,液晶分子平行排列,上、下扭

90º,在无外部电压状态下,外部入射光通过上偏振片后形成偏振光,该偏振

光通过平行排列的液晶材料后备旋转90º,再通过与上偏振片垂直的下偏振片,

被反射板反射回来,呈透明状态;当上、下电极加上一定的电压后,电极部分

的液晶分子转成垂直排列,失去旋光性,从上偏振片入射的偏振光不被旋转,

光无法通过下偏振片返回,因而呈黑色。根据需要将电极做成各种文字、数字、

图形,就可以获得各种状态显示。显示内容由引脚端和公共端共同决定,在应

用时,只要给相应引脚端写入信号,即可显示,LCD内部自带刷新电路,不必

重复写入。本文的空调遥控器设计中采用的是由厂家定制的一款LCDLCD

面板和引脚定义如图3-9和表3-2

自动

制热

制冷

温度指示

C

抽湿

风速

定时开

定时关

3-9 LCD面板图

Fig.3-9 Surface diagram of LCD

- 21 -

青岛科技大学本科毕业论文

3-2LCD的引脚定义进行了说明。设计中把SH6614设定为8个公共端,

30LCD引脚输出。如表中所示,SEG1COM1-COM4共同定义了“模式”笔画,

在程序中将其定义为SEG11LSEG2COM1-COM4共同定义了“风速”笔画,在

程序中将起定义为SEG12L其它可以以此类推。数码显示①-⑩用作温度和定时

时间的显示,分别由SEG3-SEG12COM1-COM8来定义。

3-2 LCD引脚定义

Table 3-2 Define of LCDs pins

SEG LCD COM4 COM3 COM2 COM1

SEG11L SEG1 Auto Warm Dry Cool

SEG12L SEG2 Auto Lwind Mwind Hwind

SEG1L SEG3 1.d 1.c 1.b 1.a

SEG2L SEG4 2.d 2.c 2.b 2.a

SEG3L SEG5 3.d 3.c 3.b 3.a

SEG4L SEG6 4.d 4.c 4.b 4.a

SEG5L SEG7 5.d 5.c 5.b 5.a

SEG6L SEG8 6.d 6.c 6.b 6.a

SEG7L SEG9 7d 7.c 7.b 7.a

SEG8L SEG10 8d 8.c 8.b 8.a

SEG9L SEG11 9.d 9.c 9.b 9.a

SEG10L SEG12 10.d 10.c 10.b 10.a

SEG LCD COM8 COM7 COM6 COM5

SEG11H SEG13 Pic-w ºC Code

SEG12H SEG14 Timeo : : Timec

SEG1H SEG15 1.g 1.f 1.e

SEG2H SEG16 2.g 2.f 2.e

SEG3H SEG17 3.g 3.f 3.e

SEG4H SEG18 4.g 4.f 4.e

SEG5H SEG19 5.g 5.f 5.e

SEG6H SEG20 6.g 6.f 6.e

SEG7H SEG21 7.g 7.f 7.e

SEG8H SEG22 8.g 8.f 8.e

- 22 -

青岛科技大学本科毕业论文

SEG9H SEG23 9.g 9.f 9.e

SEG10H SEG24 10.g 10.f 10.e

3.3.2 LCD驱动电路

SH6614单片机的LCD输出口可采用30×834×4两种方式,这里定义

$15Bit0=0,则采用的是30×8,即:8个公共端,30LCD输出引脚。这里

24-36引脚的LCD输出端,即SEG1-SEG12LCD驱动电路如图3-10所示。

L C D

SEGCOM

................

SS

EE

GG

12

CC

OO

MM

18

S

E

G

1

2

..... .....

VDDPB0

PB1

PB2

PB3OSCI

OSCO

OSCXIPA0

OSCXOPA2

RESETPA3

SH6614

G

N

D

P

A

1

SH6614

3-10 LCD驱动电路

Fig.3-10 LCD drive circuit

3.4 键盘扫描电路设计

3.4.1键盘基本原理

键盘系统一般分为非编码式键盘和编码式键盘,这里只讨论非编码式键盘。

1.键盘电路结构

由若干个按键组成的键盘,其电路结构可分为独立键结构和矩阵键盘结构。

- 23 -

青岛科技大学本科毕业论文

独立按键结构每个键单独占用一根I/O口线,每根I/O口线上的安键工作

状态不会影响其他I/O口线上的状态。

矩阵键盘结构按键排列为行列式矩阵结构,也称行列式键盘结构。44

列共16个键,只占用8I/O口线,故键数目较多时可节省I/O口线,但这种

结构的软件较繁。本文的空调遥控器设计就是采用3×4矩阵式键盘。

2.键盘工作方式

在无按键操作时,通常CPU在执行其他任务,只在有按键操作时才根据闭

合键执行相应的键处理任务。

键盘的工作方式可分为编程控制方式和中断控制方式。

CPU在一个工作周期内,利用完成其他任务的空余时间,调用键盘扫描子程

序。经程序查询,若无键操作,则返回;若有键操作,则进而判断是哪个键,

并执行相应的键处理程序。这种方式为编程扫描方式。

有时在正常工作中,并不会经常进行键操作,因而编程控制方式使CPU

常处于空查询状态。在CPU工作任务十分繁重的情况下,为提高CPU的效率,

可采用中断控制方式。只要有按键按下,便向CPU相应中断后,在中断服务程

序中进行键盘扫描、查键值与键处理等工作。

3.设计要点

非编码键盘系统基本任务如下:

监测有无键按下;

判断是哪个键按下;

完成键处理任务。

为快速可靠的实现按处理任务,还应从电路或软件角度妥善解决如下问题。

消除键抖动影响

键触点的闭合或断开瞬间,由于机械触点的弹性作用,会产生短暂的抖动

现象,其抖动时间长短与其机械特性有关,一般约为5-10ms,抖动过程引起电

平信号的波动,有可能令CPU误解为多次按键操作,而引起误处理。

消除键抖动影响的颖键方法是每个键增加一个R-S触发器,这种方法只适用

于键数目较少的情况。若键数目较多,通常采用软件延时的方法:当监测到有

键按下时,调用一个延时(一般5-20)子程序,然后在此监测到该键电平仍为

闭合状态,才确认该键已按下,并进行相应处理工作。这种消除键抖动影响的

软件措施是切实可行的。

采取串键保护措施

- 24 -

青岛科技大学本科毕业论文

345

串键是指同时有一个以上的键按下。串键会引起为机的错误相应。

通常用软件提供串键保护。当判断是一个以上的键被按下,则返回重新进行

监测。只有当监测到只有一个键被按下时,才去查键号、执行相应键处理工作。

为了防止误操作的不良影响,应从软件设计的角度着手设置保护。对于某些

设定参数的键,如果参数存在上、下限值要求,可采取软件限幅措施。对于某

些参数若存在非法数值,可由软件判断,必要时予以拒绝接收。

4.键盘扫描技术

键盘扫描技术可分为行扫描法、线反转法、状态矩阵法,这里仅简单介绍

下面将要用到的行扫描法。

行扫描法是在确认有键闭合之后,逐行(或逐列)置低电平,并读入列(或

行)状态,如果出现非全1状态,那么0状态的行、列交叉点就是被按下键。

例如,44列键盘,首先只使第一行为“0”电平,其余各行为“1”电平,然

后读入列状态,在进行键盘去抖动处理后再次读入列状态,比较两次读入结果,

如果相同则可确认按下有效键,并到键盘状态表中查找与已经储存信息相吻合

的键值,然后进入相应的键盘处理程序。

3.4.2键盘扫描电路

3.4.2.1键盘扫描电路如图3-11所示。

SS

EE

GG

12

CC

OO

MM

18

S

E

G

1

2

..... .....

VDDPB0

PB1

PB2

PB3OSCI

K10K7K4K1

OSCO

OSCXIPA0

OSCXOPA2

RESETPA3

SH6614K11K8K5K2

G

N

D

K12K9K6K3

P

A

1

SH6614

3-11 键盘扫描电路

Fig.3-11 Key board scan circuit

图中用PA0PA2PA3PB0PB1PB2PB3组成3×4矩阵键盘。其中

K1-K10为定义的按键,它们分别为:开机、关机、模式、温度、风速、温度+

- 25 -

青岛科技大学本科毕业论文

温度-、定时开、定时关、小时、分钟,按下按键则进入相应操作,具体含义和

操作步骤可以参看空调遥控器按键功能设计,K11K12在系统中没有定义,

以在以后修改设计增加功能时使用,在制作线路板时做出但不必做按键。

3.4.2.2 空调遥控器按键功能设计

1 ON

在关机状态下,按一下此键,发射指示点亮,LCD有显示,遥控器进入开机

状态,同时把当前设定的运行模式、温度值、风速、定时等信息按编码规范的

要求,发射信息。

2 OFF

在开机状态下,按一下此键,发射指示点亮一次,LCD熄灭,同时发射关机

信息。若已设定了定时开机、定时关机,遥控器进入关机状态之前,先取消以

上两种设定状态,然后发射关机信息。

3 MODE

在开机状态下,每按一次此键,液晶屏的模式区显示相应的模式,发射指

示点亮一次,同时把当前设定的运行模式、温度值、风速、定时等信息以红外

编码方式发射出去。

运行模式按如下顺序循环切换:自动、制冷、抽湿、制热

4 “+”/-”键

4.1在开机状态下,每按一次调整“+”键,设定温度递增一度,并发射相

应的红外信息。当温度增至32ºC,即使继续按此键,设定温度亦不再增加,但

有信号发射。

4.2在开机状态下,每按一次调整“-”键,设定温度递减一度,并发射相

应的红外信息。当温度增至17ºC,即使继续按此键,设定温度亦不再减少,但

有信号发射。

5 定时开、定时关键

高风中风

时间,定时关与此相同。

自动

低风

按定时开,进入定时开设定,定时开符号显示,然后按小时、分钟键调整

- 26 -

青岛科技大学本科毕业论文

34

6 小时、分钟键

按相应键,进入响应时间调整,只在定时开/定时关时有效。小时键每次增加

1小时,1-12小时循环;分钟键每次改变30分钟。

3.5 系统双时钟设计

SH6614单片机内部集成了双时钟,这就为空调遥控器的节能设计提供了方

便,在没有编码发射时系统采用32.768K晶振,维持系统的运行,在长期(超

5m)没有按键和发码操作则系统暂停工作,进一步节省能源;当有效按键按

下有编码发射时,系统时钟切换到455K,利用单片机中的PSG产生38K载波,

发射红外编码。系统时钟电路如图3-12所示。

SS

EE

GG

12

CC

OO

MM

18

S

E

G

1

2

..... .....

VDDPB0

PB1

PB2

PB3OSCI

PA0OSCXI

PA2OSCXO

PA3RESET

20pF

C1

OSC

32.768K

20pF

C2

OSCO

SH6614

G

N

D

P

A

1

SH6614

100pF

C3

100pF

C4

OSCX

455K

3-12 时钟电路

Fig.3-12 Clock circuit

青岛科技大学本科毕业论文

L C D

SEGCOM

................

VDD

SS

EE

GG

12

CC

OO

MM

18

VDDPB0

S

E

G

1

2

0.01uF

C5 ..... .....

20pF

C1

OSC

32.768K

20pFK12K9K6K3

C2

PB1

PB2

PB3OSCI

PA0OSCXI

PA2OSCXO

PA3RESET

K10K7K4K1

OSCO

SH6614K11K8K5K2

G

N

D

P

A

1

VDD

100pF

C3

100pF

C4

RESET8050

K0

47uF/10V

C6

VDD

R1

100K

OSCX

455K

D

R3

8

R2

1K

3-13 空调遥控器硬件电路图

Fig.3-13 Hardware circuit diagram

for air-condition remote controller

Title

23456

SizeNumberRev

B

空调遥控器的硬件设计,严格按照任务书的要求,进行了单片机的选型,

Date:23-Jun-2005Sheet of

File:C:Documents and Settingssboyer1Drawn By:MyDe

并以单片机为基础进行了红外发射电路、键盘扫描电路和LCD驱动电路的设计,

还针对空调遥控器通常为干电池供电的特点,在硬件电路中采用了双时钟,既

满足了发码时的要求,又满足了无编码发射时的低功耗设计,同时为软件的低

功耗设计奠定了基础。

4空调遥控器软件设计

- 28 -

青岛科技大学本科毕业论文

本章给出了软件设计的总流程图和各主要功能模块的流程图,并进行了详

细的说明,对主要部分还给出了源程序,并对SH6614单片机软件开发进行了必

要说明。

4.1 软件功能模块设计

4.1.1.系统初始化程序设计

系统初始化程序框图如图4-1

初始化系统寄存器:这是上电之后进入的第一个

程序模块,同时也是RESET进入的程序模块。在这个

程序模块中,系统首先对系统寄存器进行了初始设

置,包括:开中断,中断服务寄存器清零,TM0BTM

初始设置,定义PORTA为输入口、PORTB为输出口,

定义PA138K载波红外发射口并对PSG进行红外发

射初始化。

主要源程序代码:

LDI IE,00H ;关中断

LDI IRQ,00H ;清中断服务寄存器

LDI TM0,00H ;初始化TIMER0寄存器

LDI T0L,00H

LDI T0H,00H

LDI BTM,00H ;初始化BASE TIMER寄存器

LDI SPA,02H ;设置PORTA为输入,PA1为输出

LDI SPB,0FH ;设置PORTB为输出

LDI OSCX,00H ;设置OSC为系统时钟

LDI SETLCD,02H ;关闭LCD,LCD时钟为OSC/64

- 29 -

初始化系统寄存器

初始化用户寄存器

4-1 系统初始化程序框图

Fig.4-1 Block diagram of system

initialization program

青岛科技大学本科毕业论文

LDI SEGOUT,0CH ;设置LCDSEGMENT输出

LDI SETPORTS,0BH ;设置PA1为红外输出端

LDI PSG1L,0EH ;设置PSG为红外发生器,38K载波

LDI PSG1H,07H

LDI PSG21A,00H

LDI PSG22,00H

LDI PSG23,00H

LDI PSG24,00H

LDI PSGCTR1,0CH

LDI PSGCTR2,09H

初始化用户寄存器:大部分用户寄存器初始值为00H但也有少部分寄存器

要设置初始值。例如模式和风速寄存器初始值设位自动,温度显示寄存器设为

24ºC等,主要源程序代码如下:

LDI MODE,08H ;设置初始模式为自动

LDI WIND,08H ;设置初始风速为自动

LDI DATA_1,02H ;设置初始温度为24ºC,高位为02H

LDI DATA_2,04H ;低位为04H

初始化程序设计

LCD初始化程序包括清LCD和满屏显示2s程序。

里之所以把两个模块放在一起,是因为尽管在总的看来

这是两个模块,但实际上这两个模块公用了大段程序,

只是从不同的入口进入,而从相同的出口返回。主要源

程序如下:

CLOSE_ALL-LCD:

LDI TEMPT,00H ;关闭所有LCD笔画

JMP SETLCD

LDI TEMPT,0FH ;显示所有LCD笔画

SETLCD:

4-2 LCD

满屏显示程序框图

Fig.4-2 Clear LCD

and display all LCD

for 2s

满屏显示2s

LCD

DISPLAY_ALL_LCD:

- 30 -

青岛科技大学本科毕业论文

LDI SETLCD,00H ;打开LCD

LDA TEMPT

STA SEG1L,06H STA SEG2H,06H

STA SEG2L,06H STA SEG3H,06H

STA SEG3L,06H STA SEG4H,06H

STA SEG4L,06H STA SEG5H,06H

STA SEG5L,06H STA SEG6H,06H

STA SEG6L,06H STA SEG7H,06H

STA SEG7L,06H STA SEG8H,06H

STA SEG8L,06H STA SEG9H,06H

STA SEG9L,06H STA SEG10H,06H

STA SEG10L,06H STA SEG11H,06H

STA SEG11L,06H STA SEG12H,06H

STA SEG12L,06H RTN

STA SEG1H,06H

延时子程序采用的是软件延时,并在入口处设置延长时间,每次只要设置

PARM,就可以延长不同倍数的子程序时间,主要代码如下:

DELAY: SBIM PARM,01H ;判断PARM值是否大于0

BC $+2

RTNI ;回到主程序

LDI CT2,0AH

LDI CT1,0FH

LDI CT0,0FH

SBIM CT0,01H

BC $-1

SBIM CT1,01H

BC $-4

青岛科技大学本科毕业论文

在这个程序中,PB0-PB3送出扫描码,PA0,PA2,PA3负责接收,可以从扫描

码及接收码来判断哪一个键被按下,并将其值存储,然后转向键盘处理程序。

键盘扫描程序如图4-3

源代码如下:

KEYSCAN:

LDI PORTA,0FH ;置位PORTA高位

LDI PROTB,0FH ;置位PORTB高位

LDI S_CODE,01H ;置扫描码(第一个扫描码)

LDA S_CODE,00H

STA PORTB_B,00H

EORIM PORTB_B,0FH ;扫描码异或0FH

B

是否有

键按下?

Y

4-3 键盘扫描程序框图

Fig.4-3 Block diagram of

key board scanning

N

Y

结束

再次读取PORTA的值

扫描完成?

N

A

是否有

键按下?

查表读取键值

Y

延时20ms

更新扫描码

N

读取PORTA的值

两次是否

相同?

A

PORTB置扫描码

B

SCAN:

青岛科技大学本科毕业论文

STA PORTB,00H ;将扫描码输出到PORTB

LDA PORTA,00H ;从PORTA读键值

STA KEY1,00H ;判断是否有键按下

SBI KEY1,0FH

BAZ NT_CODE ;无键按下则跳转

LDI PARM,3 ;去抖动处理

CALL DELAY

LDA PORTA,00H ;再次读PORTA键值

STA KEY2,00H ;判断是否有键按下

SBI KEY2,0FH

BAZ NT_CODE ;无键按下则跳转

LDA KEY1,00H ;检查是否两键相同?

SUB KEY2,00H

BAZ PAB1 ;有效按键则跳转到PAB1

NT_CODE:

LDA S_CODE,00H ;扫描码左移一位

ADDM S_CODE,00H

BAZ R_SAN32 ;如果扫描码为0,则结束程序

JMP SCAN ;再次扫描

PAB1: LDI B_TBR,0FH

LDI B_AC,00H

PAB2: LDA B_TBR,00H

STA TBR,00H ;设置TJMP高位地址

LDA B_AC,00H ;得到TJMP低位地址

CALL 0700H ;取得表格数据

SUB KEY2,00H ;检查表格数据是否相同

青岛科技大学本科毕业论文

BAZ PAB4

JMP ADDAC1

STA KEY_NUM,00H

LDI KEY_F,01H

JMP R_SAN31

JMP PAB2

LDI KEY_NUM,00H ;清除键值寄存器

LDI KEY_F,00H ;清除键值缓冲器

RTNI

;保存键值 PAB4: LDA B_AC,00

ADIM B_AC,01H B_AC+1 ADDAC1:

R_SAN32:

R_SAN31:

4.1.4.低高频转换程序设计

低频转换到高频,在程序中应该先将高频打开,经过短暂时间后再切换,否则

可能单片机不能得到马上相应而出错,高频转换到低频由相同原则。

LOW_HIGH:

LDI OSCX,01H ;打开高频

LDI PARM,01H

CALL DELAY

;切换到高频 LDI OSCX,03H

RTNI

4.1.5.系统休眠程序设计

调用键盘扫描程序后,如果没有有效按键,则启动定时器进行5s内是否有

按键按下的判断。如果在定时中断之前有键按下,则重新进行键盘扫描;如果

没有键按下,则进入HALT模式,使系统进入省电模式,当有按键按下则系统退

HALT模式重新进行键盘扫描。

DELAY_5S LDI TM0,00H

LDI IE,05H LDI T0L,0EH

LDI IEQ,00H LDI T0H,0CH

- 34 -

青岛科技大学本科毕业论文

NOP

NOP

HALT

INTB: RTNI

LDI IE,00H

青岛科技大学本科毕业论文

4.2 软件主流设计

转入低频模式

发射编码

4-4 软件主流程图

Fig.4-4 Main program

flow chat

LCD屏幕显示

键处理程序

有键

按下?

读取键值

HALT

转入高频模式

有无按

键?

判断5s内是

否有动作?

转入低频模式

键盘扫描

显示初始画面

满屏显示2s

青岛科技大学本科毕业论文

5系统仿真与软件调试

本章简单介绍了空调遥控器设计的最后一步——系统仿真与软件调试,简述

了仿真器USB RICE66的使用并介绍了软件调试过程和方法。

5.1 系统仿真

5.1.1 USB RICE66单片机仿真器

USB RICE66是一款单片机硬件实时仿真器,支持windows 98/ 2000

windows XP操作系统。能实时、清晰地实现对SH6610系列的四位元单片机的

仿真。仿真器集成的烧写器能烧写中颖公司全系列OTP产品。仿真器的硬件电

路及软件程序支持在线更新功能。

功能特性:

· 实时在线仿真

· 支持基于SH6610系列的单片机产品

· 内嵌汇编编译器

· 支持在线升级功能

· 适用于windows 98/2000windows XP

· 源代码级调试

· USB通讯接口

· 附带OTP烧写器

仿真器有两种使用模式——STAND_ALONEICE MODE前者仿真器SH6614EVB

可单独供电,但需要外接EPROM;后者SH6614EVB通过SH66xxICEPC机相连,

通过USB线供电,无需接EPROM。两种接法如图5-15-2

5-1 STAND_ALONE模式

Fig.5-1 STAND_ALONG Mode

- 37 -

青岛科技大学本科毕业论文

5-2 ICE MODE模式

Fig.5-2 ICE Mode

5.2 软件调试

软件编程完成之后要进行调试。将系统硬件如图5-2接好,对程序进行

COMPILE&DOWNLOAD之后,仿真软件自动给出错误和警告列表,供用户查找错误

进行修改。将程序修改之后可以运行程序,并可以显示内存和寄存器的使用情况,

软件调试节面如图5-3所示。

5-3 软件调试界面

Fig.5-3 Program debugging surface

- 38 -

青岛科技大学本科毕业论文

结束语

青岛科技大学本科毕业论文

参考文献

[1]何立民:《MCS-51单片机应用系统设计》,北京航空航天大学出版社

[2]赵新民,王祁:《智能仪器设计基础》,哈尔滨工业大学出版社

[3]童诗白,华成英:《模拟电子技术基础》,高等教育出版社

[4]老虎工作室:《电路设计与制版Protel99入门与提高》

[5]中颖电子股份有限公司:

SH66xx Assembler User's Guide V1.02

SH66 Series programming Notice

SH66 series instruction Guide

SH66xxProgrammingGuide

SH6614V2.2

青岛科技大学本科毕业论文

附录

软件源程序

;********************************************************

;* Qingdao University of Science&Technology *

;* File Name: *

;* Description:remote controller of Air Conditioning *

;* Version: V1.0 *

;* Author: sboyer *

;* MCU: SH6614 *

;* LCD: SEG1-SEG12 *

;* CLOCK: 32.768KHz,455KHz *

;********************************************************

;**************************************

; SYSTEM REGISTER DEFINE

;**************************************

LIST P=6614

ROMSIZE=4096

IE EQU 00H ;interupt enable flags

IRQ EQU 01H ;interupt request flags

TM0 EQU 02H ;Timer0 Mode register

BTM EQU 03H ;Base Timer Mode register

TL0 EQU 04H ;Timer0 load/counter register low digit

05H ;Timer0 load/counter register high digit TH0 EQU

08H ;PortA PORTA EQU

PORTB EQU 09H ;PortB

SPA EQU 0BH ;Set PORTA to be output or

SPB EQU 0CH ;Set PORTB to be output or

TBR EQU 0EH ;Table Branch Register

INX EQU 0FH ;Index register

DPL EQU 10H ;Data pointer for INX low nibble

DPM EQU 11H ;Data pointer for INX middle nibble

;input port,1=output,0=input

;Data pointer for INX high nibble DPH EQU 12H

;Bit0:Heavy load mode,Bit1,2:PA.1&PA.2 SETPORTS EQU 13H

;as PSG output or I/O PORT,Bit3:Port pull

;Bit0:Turn on OSCX oscillator,Bit1:CPU clocks OSCX EQU 14H

; input port,1=output,0=input

;high enable control

;select(1:OSCX/0:OSC),Bit3:OSCX

;type selection

SETLCD EQU 15H ;Bit0:Select LCD DUTY,Bit1:LCD off,

;Bit2,3:LCD frequency control

- 41 -

青岛科技大学本科毕业论文

SEGOUT EQU 16H ;Bit2:Set LCD segment as output,Bit3:LCD

PSG1L EQU 17H ;PSG channel1 low nibble

PSG1H EQU 18H ;PSG channel1 high nibble,Bit3:

PSG21A EQU 19H ;PSG channel2 nibble1 or alarm output

PSG22 EQU 1AH ;PSG channel2 nibble2

PSG23 EQU 1BH ;PSG channel2 nibble3

PSG24 EQU 1CH ;PSG channel2 nibble4,Bit3:channel2

PSGCTR1 EQU 1DH ;Bit0,Bit1:channel1,2 enable,

PSGCTR2 EQU 1EH ;Bit0,1:PSG1,PSG2 mode control,

;********************************

;LCD REGISTER DEFINE

;********************************

SEG1L EQU 00H

SEG2L EQU 01H

SEG3L EQU 02H

SEG4L EQU 03H

SEG5L EQU 04H

SEG6L EQU 05H

SEG7L EQU 06H

SEG8L EQU 07H

SEG9L EQU 08H

SEG10L EQU 09H

SEG11L EQU 0AH

SEG12L EQU 0BH

SEG1H EQU 28H

SEG2H EQU 29H

SEG3H EQU 2AH

SEG4H EQU 2BH

SEG5H EQU 2CH

SEG6H EQU 2DH

SEG7H EQU 2EH

SEG8H EQU 2FH

SEG9H EQU 30H

青岛科技大学本科毕业论文

;********************************

TEMPT EQU 20H ;variable register

CT0 EQU 21H ;variable 0 register

CT1 EQU 22H ;variable 1 register

CT2 EQU 23H ;variable 2 register

PARM EQU 24H ;parmeter register

KEY1 EQU 25H ;key variable register

EQU 26H ;key flag register KEY_F

EQU 27H ;key number register KEY_NUM

EQU 28H ;scan code register S_CODE

EQU 29H ;ac buffer register B_AC

EQU 2AH ;tbr buffer register B_TBR

EQU 2BH ;portb buffer register PORTB_B

EQU 2CH ;key variable register KEY2

EQU 2DH ;key register for display and deal with KEYREG

EQU 2EH ;mode information register MODE

2FH ;available when open CON_OPEN EQU

30H ;wind information register WIND EQU

31H ;open and close time register OCTIME EQU

32H ;data used for temperature high nibble DATA_1 EQU

33H ;data used for temperature low nibble DATA_2 EQU

青岛科技大学本科毕业论文

JMP RESET

NOP

JMP TIMER0

NOP

JMP INTB

;********************************

RESET:

CALL INITIAL_SYSTEM_REGISTER ;system initial

CALL INITIAL_USER_REGISTER ;user register initial

CALL CLOSE_ALL_LCD

CALL DISPLAY_ALL_LCD

CALL DELAY_2S

;JMP $

CALL DISPLAY_LCD

CALL_KEYSCAN:

CALL KEYSCAN ;call keyscan program

LDA KEY_F,00H ;if key flag=1,that key is hit

BAZ DELAY_5S

LDA KEY_NUM

STA KEYREG

CALL LOW_HIGH ;low frequency to high frequency

;jump to key display and deal with

青岛科技大学本科毕业论文

CALL DISPLAY_LCD

LDI SEG11H,0EH ;light the code segment

CALL CODESEND

LDI SEG11H,0CH ;unlight the code segment

INITIAL_SYSTEM_REGISTER

;initial interrupt

LDI IE,00H ;close all interupt

LDI IRQ,00H ;clear IRQ

;initial timer0

LDI TM0,00H

LDI TL0,00H

LDI TH0,00H

;initial basetimer

LDI BTM,00H

;initial port

LDI PORTA,00H

LDI PORTB,00H

青岛科技大学本科毕业论文

;initial user register

INITIAL_USER_REGISTER:

LDI MODE,08H ;mode=auto

LDI CON_OPEN,0CH ;wind flag and celsius flag

LDI WIND,08H ;wind=auto

LDI OCTIME,00H

LDI DATA_1,02H ;temperature high nibble=2

LDI DATA_2,04H ;temperature low nibble=4

LDI DATA_3,00H

LDI DATA_4,00H

LDI DATA_5,00H

LDI DATA_6,00H

LDI DATA_7,00H

青岛科技大学本科毕业论文

STA SEG6L

STA SEG7L

STA SEG8L

STA SEG9L

STA SEG10L

STA SEG11L

STA SEG12L

STA SEG1H

STA SEG2H

STA SEG3H

STA SEG4H

青岛科技大学本科毕业论文

LDI TBR,0EH

LDA DATA_1

CALL 200H

STA SEG1L

LDA TBR

STA SEG1H

LDI TBR,0EH

LDA DATA_2

青岛科技大学本科毕业论文

CALL 200H

STA SEG7L

LDA TBR

STA SEG7H

LDI TBR,0EH

LDA DATA_8

CALL 200H

STA SEG8L

LDA TBR

STA SEG8H

LDI TBR,0EH

LDA DATA_9

CALL 200H

STA SEG9L

LDA TBR

STA SEG9H

青岛科技大学本科毕业论文

LDA KEY1,00H ;check whether two key is the same?

SUB KEY2,00H

BAZ PAB1 ;key is really hit

NT_CODE:

LDA S_CODE,00H ;scan code left 1 bit

ADDM S_CODE,00H

BAZ R_SAN32 ;if scan code=0,that scan is over

JMP SCAN ;scan again

PAB1:

LDI B_TBR,0FH

LDI B_AC,00H

PAB2:

LDA B_TBR,00H

STA TBR,00H ;set TJMP address high nibble

LDA B_AC,00H ;get TJMPaddress low nibble

CALL 0200H ;to get table data

SUB KEY2,00H ;check whether table data is the same

BAZ PAB3 ;to scan code

青岛科技大学本科毕业论文

BC $-1

SBIM CT1,01H

BC $-4

SBIM CT2,01H

BC $-7

JMP DELAY

青岛科技大学本科毕业论文

LOW_HIGH:

LDI OSCX,01H ;turn on oscx

LDI PARM,01H

CALL DELAY

LDI OSCX,03H ;low to high frequency

RTNI

;**********************************

;key display and deal with

;**********************************

KEY0_OPEN:

LDI SETLCD,02H ;turn on lcd

青岛科技大学本科毕业论文

JMP CALLDISP

WIND_SET1:

LDI TEMPT,01H

ADDM WIND,00H

LDA WIND

STA CODECL

JMP CALLDISP

KEY4_ADD:

SBI CODECH,0FH ;already max,jump out

BAZ KEY4_ADD_1

ADIM CODECH,01H

ADIM DATA_2,01H

DAA DATA_2

LDI TEMPT,00H

ADCM DATA_1

青岛科技大学本科毕业论文

KEY7_TIMECL_1

ANDIM OCTIME,0011B

JMP CALLDISP

KEY8_HOUR:

LDA TIMEOP

BA0 TOPHOUR ;when time open is on

LDA TIMECL

BA0 TCLHOUR ;when time close is on

JMP CALLDISP

TOPHOUR:

SBI CODEDH,0CH

BAZ TOPHOUR0

ADIM CODEDH,01H

JMP TOPHOUR01

青岛科技大学本科毕业论文

LDI CODEDH,00H

TCLHOUR01:SBI DATA_8,02H

BAZ TCLHOUR1

JMP TCLHOUR2

TCLHOUR1:

SBI DATA_7,01H

BAZ TCLHOUR4

TCLHOUR2:

ADIM DATA_8,01H

DAA DATA_8

BC TCLHOUR3

JMP CALLDISP

青岛科技大学本科毕业论文

LDI CODEEL,0FH

JMP CALLDISP

;**********************************

;code send

青岛科技大学本科毕业论文

ANDIM IE,0100B

JMP $

NOP

LDI PSGCTR1,0DH

LDI TM0,03H

青岛科技大学本科毕业论文

STA CODE

CALL CODESEND_BCDE

LDA CODEEL

STA CODE

CALL CODESEND_BCDE

RTNI

CODESEND_BCDE:

青岛科技大学本科毕业论文

LDI PSGCTR1,0CH

LDI TM0,03H

LDI TL0,0EH

LDI TH0,0FH

ANDIM IRQ,0000B

ANDIM IE,0100B

JMP $

青岛科技大学本科毕业论文

NOP

NOP

HALT

NOP

INTB: RTNI

LDI IE,00H

LDI IRQ,00H

JMP CALL_KEYSCAN

青岛科技大学本科毕业论文

致谢

- 61 -

主语城-碧桂园股票

空调遥控器设计

更多推荐

空调遥控器