《微机原理及接口技术》课程设计
K13 K14 K15 L0 L1 L2 L3 L5 L6 L7 L13 L14 L15 AN1 复位按钮 数字键0 右移-> 设置 室内风机 压缩机 室外风机 四通换向阀 低速风显示 中速风显示 高速风显示 左右扫风 上下扫风 睡眠 改变室内温度 复位 4.2数据定义说明
4.2.1部分数据定义说明
(1)因为单片机复位后SP中的内容为07H,是堆栈实际从08H开始,但为了避免堆栈区与工作寄存区08H~1FH发生冲突,故初始化定义SP值为6FH。 (2)初始化定义TH1和TL1为00H,认为误差只来自于外部晶振。实时时钟实现1秒精确定时的基本思想是 9216=256×36 或=128×72 或=64×144 T1方式2定时时间设为(256×12÷11.0592)uS中断一次;
38H单元每(256×12÷11.0592)uS加1, 计满36次得10mS=0.01S=1/100秒; 39H单元每10mS加1,计满50次得0.5秒,计满100次得1秒;
第 16 页
《微机原理及接口技术》课程设计
第5章 局部程序设计说明
(各局部程序或各子模块程序功能原理论述:程序设计的思路与方案、程序原理说明,对少量特别且重要的程序代码可列举并详析) 5.1总初始化以及自检 功能描述
总初始化程序主要是在程序开始进入主流程时,设置定时器1中断服务子程序入口、中断对程序中用到的数据单元赋予初始值、开启定时中断、实现设备自检等。该程序段只在程序开始时执行一遍。 程序设计思路
当家用空调温度控制器开机进入工作状态后,立即进入自检以及总初始化,确保各软硬件的完好性,以便进行正常工作。 程序原理说明
首先稍加延时(40mS),以待各芯片均退出复位状态。接着蜂鸣器响1S后关蜂鸣器,然后P1口输出全‘0',所驱动的L0~L7指示灯全亮1S后熄灭。开中断总允许,初始化T1为定时方式2,T0为计数方式2。让其没256Tm产生一次中断,以实现精确计时。接着对数据单元赋予初始值 5.2主流程 5.2.1按键音模块 功能描述
使得按键按下时回馈短促的键音,以便判断是否按下按键 设计思路及方案
设置一个数据单元20H单元存放蜂鸣器是否响的数据,然后判断数据值。全0为响,响过之后全置为1,全1为不响。 程序原理说明
20H单元存放蜂鸣器是否响的数据,全0为响,全1为不响。判断是否为0,不为零就跳转出去并结束。是0就让蜂鸣器响,直到LCALL CLOCK时停止响;实现了蜂鸣器响,就可以让20H置全1。 5.2.2单按键消抖模块 功能描述
第 17 页
《微机原理及接口技术》课程设计
检测按钮是否被压下,以便判断是否触发相应的动作,有消抖措施 设计思路及方案
对PB按钮进行扫描,将电平变化量读取采集,并利用滚动滤波法消除抖动,确保去除抖动造成的误动作,并利用采集到的电平变化量进行判断按钮操作,并判断是否触发相应的动作 程序原理说明
对PB按钮电平变化量进行扫描,按钮扫描用到的接口芯片是8255A(U5),由于在总初始化已经对U5进行初始化,已经定义B口为输入口,故首先DPTR只想B口,接着把PB0~PB7电平值存放到29H单元,进过滚动滤波法消除抖动之后,将新状态存入2EH,旧状态存入2FH。滚动滤波法消除抖动单元为29H~2DH,只有在5个单元内容一致,才将扫描到的电平值送入新状态暂存单元。设置新态和旧态就是为了方便检测按钮前后状态,判断是否有压下,以便判断是否触发相应的动作。
5.2.3 PB按键功能模块
程序功能描述:
该模块的作用在于空调开启后对工作模式,风速模式,设定温度,左右扫风、上下扫风、睡眠等进行修改 程序设计思路及原理描述:
按下PB0按键则可改变空调的工作模式,具体顺序为自动模式,制冷模式,通风模式,制热模式。按下PB1按键则可依次改变风速模式,具体顺序为自动模式,高风速模式,中风速模式,低风速模式,循环而行。按下PB2按键则对设定温度减小1度,在自动模式下则减小2度。按下PB3按键则对设定温度增加1度,在自动模式下则增加2度。按下PB5按键则可控制空调是否左右扫风,按下PB6按键则可控制空调是否上下扫风,按下PB6按键则可控制是否空调进行睡眠模式、
程序设计具体实现如下:
①对PB按键进行检测,若在消抖后有按键按下,则实现对应的功能。 ②设置设定温度的初值并规定范围,在对应的各个模式下,对设定温度赋初
第 18 页
《微机原理及接口技术》课程设计
值和规定范围
5.2.4基本界面拆字模块
功能描述
在基本进程10H时钟显示进程下,将实时钟数据送去显示缓存并显示 程序原理说明
二位数字转换为两个单独的数字,依次屏蔽高四位和低四位,对于低四位可以直接送入,高四位需经过SWAP语句转换过后便可送入。拆字程序原理具体步骤如下:
①置显示缓冲单元首地址(对应于最右显示位)。
②取当前数据单元BCD码,依次保留该数据码的低4位和高4位,高四位经过SWAP命令处理,进而分别送入显示缓冲单元。
③利用循环,直到小时单元拆字结束为止。
5.2.5 4*4矩阵键盘模块
程序功能描述:
行列式键盘功能子模块用于实现对时间进行设置。 程序设计思路及原理描述:
通过对4*4矩阵键盘的按键判断,对实时钟的分或者时进行设置。
1 4 7 ←
程序具体实现方法如下:
2 5 8 0 3 6 9 定时 确定 撤消 → 设置 第 19 页