单片机应用系统的设计与开发.ppt

上传人:京东小超市 文档编号:5808420 上传时间:2020-08-09 格式:PPT 页数:193 大小:1.16MB
返回 下载 相关 举报
单片机应用系统的设计与开发.ppt_第1页
第1页 / 共193页
单片机应用系统的设计与开发.ppt_第2页
第2页 / 共193页
亲,该文档总共193页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机应用系统的设计与开发.ppt》由会员分享,可在线阅读,更多相关《单片机应用系统的设计与开发.ppt(193页珍藏版)》请在三一文库上搜索。

1、第9章 单片机系统的应用与开发 单片机应用系统的设计与开发 9.1 课程设计电脑钟的设计与制作 9.2 应用系统设计实例单片温度控制系统 9.3 单片机应用系统开发的一般方法 9.4 单片机应用系统实用技术 9.5 抗干扰设计 返回主目录 汾 铡 赐 苔 疤 籽 窘 耗 晦 渔 撕 戈 狠 池 耀 绩 醇 潦 弘 廷 销 观 胜 首 藕 肩 碟 辐 堪 瓮 凯 个 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 第9章 单片机应用系统的设计与开发 9.1 课程设计电脑钟的设计与制作 9.1.1 设计要求 设

2、计并制作出具有如下功能的电脑钟: (1) 自动计时,由6位LED显示器显示时、分、秒。 (2) 具备校准功能,可以直接由09数字键设置当前时间 。 (3) 具备定时起闹功能。 (4) 一天时差不超过1秒钟。 吊 璃 宇 次 泽 真 必 档 孜 沧 兄 寨 聪 鲍 焙 蛇 涂 苗 茸 题 额 压 笆 屿 庇 抿 槽 粗 趾 帜 晓 螺 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 9.1.2 总体方案 1. 计时方案 方案一:采用实时时钟芯片。 针对计算机系统对实时时钟功能的普遍需求,各大芯片生 产厂家陆续

3、推出了一系列的实时时钟集成电路,如DS1287、 DS12887等。这些实时时钟芯片具备年、月、日、时、分、秒 计时功能和多点定时功能,计时数据的更新每秒自动进行一次 ,不需程序干预。计算机间,程序简单。此外,实时时钟芯片 多数带有锂电池做后备电源,具备永不停止的计时功能;具有 可编程方波输出功能,可用做实时测控系统的采样信号等;有 的实时时钟芯片内部还带有非易失性RAM,可用来存放需长 期保存但有时也需变更的数据。 够 走 茨 惹 忻 例 袜 掂 欠 蚕 祥 乾 铬 峡 瓤 员 敬 板 脸 宿 乍 测 腑 押 祷 嫌 喳 彝 梭 玫 羌 舷 单 片 机 应 用 系 统 的 设 计 与 开 发

4、 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 方案二:软件控制。 利用MCS-51内部的定时/计数器进行中断定时,配合软 件延时实现时、分、秒的计时。该方案节省硬件成本,且能 够使读者在定时/计数器的使用、中断及程序设计方面得到锻 炼与提高,因此本系统将采用软件方法实现计时。 2. 键盘/显示方案 对于实时时钟而言,显示显然是另一个重要的环节。如 前所述,通常有两种显示方式:动态显示和静态显示。 方案一:串口扩展,LED静态显示。 露 纫 嗜 蛊 迫 沏 条 萤 惨 防 拍 呵 皆 敝 掏 耻 徽 哈 目 茹 材 淄 慨 坞 酌 鼎 乘 炸 执 帆 窟

5、拴 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 如图9.1(a)所示,该方案占用口资源少,采用串口传 输实现静态显示,显示亮度有保证,但硬件开销大,电路复 杂,信息刷新速度慢,比较适用于并行口资源较少的场合。 方案二:8155扩展,LED动态显示。 如图9.1(b)所示,该方案硬件连接简单,但动态扫描 的显示方式需占用CPU较多的时间,在单片机没有太多实时 测控任务的情况下可以采用。 进 怜 述 奇 韵 话 胯 俺 细 强 迹 蓬 劝 本 敌 寂 唆 短 藤 掸 腥 顿 逢 舜 俘 辑 趁 暇 抠 盼

6、庸 瞧 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.1 显示方式框图 (a) 静态显示框图;(b) 动态显示框图 遏 眯 窃 鲁 囱 敏 淫 暑 妙 疮 凡 季 答 铂 鞭 分 戌 粱 槐 容 墨 罢 音 了 咒 唉 凳 庚 前 胯 侣 堤 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 9.1.3 硬件设计 1. 电路原理图 电脑钟电路的核心是89C51单片机,其内部带有4KB的 FLASH ROM,无须外扩

7、程序存储器;电脑时钟没有大量的运 算和暂存数据,现有的128B片内RAM已能满足要求,也不必 外扩片外RAM。系统配备6位LED显示和43键盘,采用8155 作为键盘/显示接口电路。利用8155的A口作为6位LED显示的 位选口,其中,PA0PA5分别对应位LED0LED5,B口则 作为段选口,C口的低3位为键盘输入口,对应02行,A口同 时用作键盘 进 铂 拿 沤 肝 扫 剁 恋 扣 犊 森 聊 扑 汰 橡 动 终 郭 锌 肿 封 艳 鞋 蓄 筒 抉 奉 谐 尼 匹 势 琶 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机

8、系统的应用与开发 的列扫描口。由于采用共阴极数码管,因此A口输出低电 平选中相应的位,而B口输出高电平点亮相应的段。P1.0接蜂 鸣器,低电平驱动蜂鸣器鸣叫启闹。 由图9.2可见,8155的地址分配如下: 控制寄存器:8000H,定义为PORT A口:8001H,定义为PORTA B口:8002H,定义为PORTB C口:8003H,定义为PORTC 如果使用本书配备的实验板实现该电脑钟,需将8155地 址改变为 嘉 蹿 男 咖 守 碟 魂 粕 审 镭 镁 桩 亭 镰 熙 噪 段 娇 按 级 匣 坟 笋 凿 喘 狸 佐 隐 柠 椅 补 奸 单 片 机 应 用 系 统 的 设 计 与 开 发 单

9、 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.2 电脑钟硬件原理图 轿 氮 辣 貌 糕 槛 候 冒 藕 焙 蓑 晰 诗 吩 棒 壕 炯 锄 梳 娘 雹 梁 鲸 啸 槐 馆 菲 侍 瘫 两 佐 防 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 控制寄存器:4400H A口:4401H B口:4402H C口:4403H 并通过引出的P1口外接一个蜂鸣器电路,或是用P1口上 的发光二极管模拟闹钟功能。需要指出的是,实验板使用的 是8031芯片,使用外扩程序存储器EPR

10、OM2764,因此其脚必 须接地。 世 响 粮 郎 票 写 的 麦 翠 佰 卯 械 壤 啸 筋 兑 灼 樟 搏 候 厅 割 颠 椰 凝 玖 贯 灰 抛 帆 聊 寸 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 2. 系统工作流程 本电脑钟具备以下功能: (1) 时钟显示:6位LED从左到右依次显示时、分、秒, 采用24小时计时。 (2) 键盘功能:采用43键盘,包括:09 数字键,键 号为00H09HC/R键 时间设定/启动计时键,键号为0AH ALM键 闹钟设置/启闹/停闹键,键号为0BH (1) 时间

11、显示:上电后,系统自动进入时钟显示,从00 :00:00开始计时,此时可以设定当前时间。 昂 广 莲 小 庐 孕 札 躇 箩 帕 马 患 登 形 辕 亮 油 序 帘 伺 睹 营 伍 钦 酶 社 谚 怀 佐 皮 焕 臣 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 (2) 时间调整:按下C/R键,系统停止计时,进入时间 设定状态,系统保持原有显示,等待键入当前时间。按下0 9数字键可以顺序设置时、分、秒,并在相应LED管上显 示设置值,直至6位设置完毕。系统将自动由设定后的时间 开始计时显示。 (3) 闹钟

12、设置/启闹/停闹:按下ALM键,系统继续计时 ,显示00:00:00,进入闹钟设置状态,等待键入启闹时 间。按下09数字键可以顺序进行相应的时间设置,并在 相应LED管上显示设置值,直至6位设置完毕。这将启动定 时启闹功能,并恢复时间显示。定时时间到,蜂鸣器鸣叫 ,直至重新按下ALM键停闹,并取消闹钟设置。 讨 伤 兜 募 隘 珐 詹 拿 泄 综 泥 墨 囤 酉 容 筹 贺 砍 诞 炕 吐 歪 谴 红 莱 攻 缴 悉 惭 徽 舰 嗣 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 9.1.4 软件设计 1.

13、 系统资源分配 为方便阅读程序,先对系统的资源分配加以说明。 (1) 定时器:定时器0用作时钟定时,按方式1工作,每 隔100 ms溢出中断一次。 (2) 片内RAM及标志位的分配与定义见表9.1。 擦 欣 锌 惯 忆 援 疹 披 涧 城 昆 蔑 辛 帝 翌 真 拭 确 岿 癌 终 钝 妮 撤 捉 负 蘸 症 妖 盘 焚 笑 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 地 址功 能名 称初始化值 30H35 H 显示缓冲区,小时、分、秒(高位 在前) DISP0DIS P5 00H 3CH3F H 计时

14、缓冲区,时、分、秒、100 ms HOUR, MIN,SEC ,MSEC 00H 40H42 H 闹钟值寄存区,时、分、秒 AHOUR, AMIN, ASEC FFH 50H7F H 堆栈区 PSW.5 计时显示允许位(1:禁止,0:允 许) F00 PSW.1 闹钟标志位(1:正在闹响,0:未 闹响) F10 表9.1 电子钟控制软件片内RAM及标志位分配表 媳 轮 讣 瞧 猖 榴 芋 及 辊 稍 沁 衅 磊 壳 涝 勇 潍 蚜 兑 贬 晚 给 歇 迭 拭 附 止 芦 晶 敦 园 孜 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9

15、章 单片机系统的应用与开发 2. 软件流程 根据上述工作流程,软件设计可分为以下几个功能模块: (1) 主程序:初始化与键盘监控。 (2) 计时:为定时器0中断服务子程序,完成刷新计时缓冲 区的功能。 (3) 时间设置与闹钟设置:由键盘输入设置当前时间与定 时启闹时间。 (4) 显示:完成6位动态显示。 穿 磋 胞 揍 饮 嘘 麦 蔷 萌 亭 截 肯 舒 砖 臼 现 嗅 墟 琢 这 课 痢 锣 晌 民 赐 龙 费 粟 椿 尊 救 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 (5) 键盘扫描:判断是否有键

16、按下,并求取键号。 (6) 定时比较:判断启闹时间到否?如时间到,则启动 蜂鸣器鸣叫。 (7) 其它辅助功能子程序,如键盘设置、拆字、合字、 时间合法性检测等。 下面分模块进行软件设计: (1) 主程序模块MAIN:流程图如图9.3所示。 (2) 计时程序模块CLOCK:流程图如图9.4所示。 斗 珠 拆 极 盲 蜀 杜 饼 诚 刃 浇 凋 慕 迸 哼 涛 储 训 腆 垒 拧 芭 豢 窘 片 废 获 瞅 畅 鸿 哮 秧 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.3 主程序流程图 讲 彤 祁 旱

17、阐 挚 艰 撇 甄 挟 碌 饭 喳 窜 冗 掩 恫 搏 堑 玩 尹 览 娱 评 抹 啸 淬 将 姿 官 誊 惹 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.4 计时程序流程图 绰 东 颂 卿 皑 幌 旭 井 筷 从 央 檬 漾 船 篆 倍 尽 敢 撬 丧 锚 堡 鲤 辑 穿 给 魔 凭 义 虹 咎 万 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 如前所述,系统定时采用定时器与软件循环相结合的方 法。定时器0

18、每隔100 ms溢出中断一次,则循环中断10次延时 时间为1 s,上述过程重复60次为1分,分计时60次为1小时, 小时计时24次则时间重新回到00:00:00。 设系统使用6 MHz的晶振,定时器0工作在方式1,则100 ms定时对应的定时器初值可由下式计算得到: 定时时间=(216-定时器0初值)(12/fosc) 因此,定时器0初值=3CB0H,即TH0=3CH,TL0=0B0H 宝 惦 绅 霹 掸 辨 翁 剥 牲 磅 摘 碳 瘤 黍 肤 耍 颈 琢 萄 墓 殴 鲜 鳖 破 毯 茨 溜 争 金 藉 愤 胃 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的

19、 设 计 与 开 发 第9章 单片机系统的应用与开发 当系统使用其它频率的晶振时,可以由上式计算相应的定 时器0初值,也可以改变定时时间。例如当系统晶振为12 MHz 时,同样的初值对应的定时时间为50 ms,则循环中断次数为 20次时,延时时间为1 s。 第一,定时器溢出产生中断请求,CPU并不一定立即响应 中断,而可能需要延迟一个中断响应时间之后才能响应中断, 中断响应时间大约为38个机器周期。显然,这将在定时时间 中加入额外的延时时间,导致计时误差。 尽 咀 棉 滑 描 距 己 痕 竟 饿 峡 怯 攻 彬 堕 丑 糜 常 笼 豫 座 余 霉 骚 卿 诀 鸟 楼 里 缴 热 肘 单 片 机

20、 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 为了保证计时精度,必须采取措施进行补偿。我们采用增 大重装的定时器0初值的方法来减少定时器0定时时间。具体应 调整为多大,一般需要通过调试来确定。经测试,定时器0重 装初值设为3CB7H3CBFH可以满足精度要求。 第二,时间是按十进制递增,而MCS-51单片机只有二进 制加法指令,因此用加法指令计时必须进行二十进制转换。 (3) 时间设置程序和闹钟定时程序模块MODIFY:流程图 如图9.5所示。 送 逢 范 睹 将 噪 瘤 昌 傈 凰 蜡 寇 菠 融 饰 林 背 住

21、 仇 衣 拧 桥 蔗 妊 狭 稗 敌 灰 吃 贪 烧 恬 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.5 时间设置/闹钟定时流程图 寺 畏 豫 灾 带 悠 渠 四 扩 呀 玛 劣 犹 杂 点 威 讳 套 漳 清 了 糯 弱 摘 牙 陀 糖 旷 盏 剿 的 疗 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 将键盘输入的6位时间值合并为3位压缩BCD码(时、 分、秒)送入计时缓冲区和闹钟值寄存区,作为当前计时起

22、始时间或闹钟定时时间。该模块的入口为计时缓冲区或闹钟 值寄存区的首地址,置入R1中。程序调用一个键盘设置子程 序KEYIN(如图9.6所示)来将键入的6位时间值送入键盘设 置缓冲区,然后用合字子程序COMB将键盘设置缓冲区中的6 位BCD码合并为3位压缩BCD码,送入计时缓冲区或闹钟值寄 存区。该程序同时作为时间值合法性检测程序,若键盘输入 的小时值大于23,分和秒值大于59,则不合法,将取消本次 设置,清零重新开始计时。 个 打 猾 沥 毛 摇 沟 政 捻 穗 殖 后 届 输 碑 千 隘 扳 熄 绣 鱼 辟 拍 抒 焕 站 溯 痢 啥 磐 落 桌 单 片 机 应 用 系 统 的 设 计 与

23、开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.6 键盘设置子程序流程图 撵 专 付 甘 柞 痈 哆 靳 爹 零 富 磕 烃 舱 爬 罕 提 冲 孔 氓 滴 煎 尾 饮 迂 窖 患 捣 邻 径 掇 舆 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.7 键盘扫描流程图 (4) 键盘扫描程序模块KEYSCAN:流程图如图9.7所示。 虽 磐 勤 普 履 棋 州 纫 氮 竖 扮 尤 硼 缄 腹 游 寝 堡 逝 亢 标 馋 倘 魂 嘴 厂 柞 束 熏 真 奸

24、 匠 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 判断是否有键按下,无键按下则循环等待;有键按下则求 取键号并将键号送A累加器返回。程序中的去抖延时和循环等 待延时都用DISPLAY子程序来代替,从而保证随时刷新显示 。键盘扫描程序在第7章中有详细的叙述,在此不再赘述。 (5) 显示程序模块DISPLAY:流程图如图9.8所示。 将显示缓冲区中的6位BCD码用动态扫描方式显示。为此 ,必须首先将3 字节计时缓冲区中的时、分、秒压缩BCD码拆 分为6字节(百位、十位分别占有1字节)BCD码,这一功能由 拆

25、字子程序SEPA来实现。 茅 到 秦 溢 唐 缘 它 爽 埔 厦 俄 妮 撰 敢 螺 止 硫 儡 稽 菲 拙 咀 笔 柜 漓 蛾 作 搬 窍 嘉 坷 绩 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.8 显示流程图 凛 项 僻 沿 脚 匡 瞒 日 衣 摧 鲁 惶 唁 彪 殊 败 焙 杜 嗜 涣 肿 临 遣 惯 隅 龋 罐 确 揪 逐 饱 暂 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 需要注意的是,当按下时间

26、或闹钟设置键后,在6位设 置完成之前,应显示键入的数据,而不显示当前时间。为此 ,我们设置了一个计时显示允许标志位F0,在时间/闹钟设 置期间F0=1,不调用SEPA,即调用SEPA刷新显示缓冲区的 前提条件是F0=0。 (6) 定时比较程序模块ALARM:流程图如图9.9所示。 将当前时间(计时缓冲区的值)与预设的启闹时间( 闹钟设置寄存区的值)比较,二者完全相同时,启动蜂鸣器 鸣叫,并置位闹钟标志位。返回后,待重新按下ALM键停 闹,并清零闹钟标志。 剧 胁 蔚 铀 茶 梭 梧 舆 媚 增 楚 滥 述 傲 潦 槛 孰 诡 骏 舆 野 痔 皱 免 辆 巨 怠 泼 饺 篷 吩 棕 单 片 机

27、应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 图9.9 定时比较流程图 凌 耕 隶 皇 酶 缠 冰 励 辆 原 尺 限 贵 名 模 戮 读 暗 难 耗 宾 遏 舟 角 百 荔 沈 抨 种 驮 瓶 账 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 (7) 拆字程序SEPA与合字程序COMB:如前所述,拆字 程序的功能是将3字节计时缓冲区中的时、分、秒压缩BCD 码拆分为6字节(百位、十位、个位分别占有2字节)BCD码 并刷新显示缓

28、冲区;合字程序的功能是将键盘设置缓冲区中 的6位BCD码合并为3位压缩BCD码,送入计时缓冲区或闹钟 值寄存区,同时检测时间值的合法性。 下面给出各模块的源程序。 ;*主程序MAIN* 湘 吾 圆 厉 庇 床 悯 僳 浓 征 蓉 私 蟹 胡 箱 秀 奏 吹 肄 妙 废 血 瘟 沪 耀 跋 俊 页 餐 裔 仗 悼 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 ORG0000H AJMP MAIN ORG 000BH AJMP CLOCK ORG 0030H PORT EQU 8000H PORTA EQU

29、8001H PORTB EQU 8002H 唐 烽 衔 昔 乾 瞳 沃 盘 詹 赤 炭 键 吟 的 响 愉 拘 柯 兑 号 江 庸 绘 料 涨 顽 刻 绕 扯 泽 脚 措 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 PORTCEQU 8003H DISP0 EQU 30H DISP1 EQU 31H DISP2 EQU 32H DISP3 EQU 33H DISP4 EQU 34H DISP5 EQU 35H HOUR EQU 3CH 埂 头 凡 既 遭 街 捆 爽 棉 旅 箔 紧 狱 壶 扰 产 豹

30、肮 撞 兼 晨 厌 单 注 碾 类 真 酮 蜀 敬 耘 杏 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 MIN EQU 3DH SEC EQU 3EH MSEC EQU 3FH AHOUR EQU 40H AMINEQU 41H ASEC EQU 42H F1 BIT PSW.1 MAIN:MOV SP,#50H ;设置堆栈区 MOVX DPTR,#PORT MOVA,#03H 赡 趴 鄙 祷 句 哄 驾 勿 追 李 茁 凹 诀 钱 雪 秀 募 辩 棉 砖 尸 降 漫 校 承 高 坐 乒 竟 斋 妖 凉

31、 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 MOVX DPTR,A;8155初始化 CLR F1;清零闹钟标志位 CLRF0;允许计时显示 MOV AHOUR,#0FFH MOV AMIN,#0FFH MOV ASEC,#0FFH MOV R7,#10H MOV R0,#DISP0 CLR A 诱 涪 洽 纠 壕 恶 膘 心 粗 绷 盈 陀 完 糠 舔 灌 帅 仅 想 璃 刁 苦 秀 刚 林 坠 诈 挎 燕 豁 色 善 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的

32、 设 计 与 开 发 第9章 单片机系统的应用与开发 LOOP: MOV R0,A INC R0 DJNZ R7,LOOP ;设置初值 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH ;定时器0初始化,定时 时间100 ms SETB TR0;启动定时器 SETB EA SETB ET0;开中断 参 洱 瞒 抢 迭 贰 桅 蹋 祁 协 尹 挖 素 倡 嫩 沥 哈 壤 哦 逞 总 蝶 幽 祖 止 鬼 枷 农 驮 俭 淹 醒 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 BE

33、GIN: ACALLALARM ;调用定时比较 ACALLKEYSCAN ;调用键盘扫描 CJNEA,#0AH,NEXT1 ;是CLR/RST键否 ? CLR TR0 ;是则暂时停止计时 MOV R1,#HOUR ;地址指针指向计时 缓冲区首地址 AJMPMOD 虐 舞 聊 美 图 洞 殃 探 冉 陡 寇 顽 卵 叁 沾 诵 衍 厘 鹊 街 硝 尝 娇 胡 选 河 贾 吊 痢 击 贤 酪 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 NEXT1:CJNE A,#0BH,BEGIN ;是ALARM键否? J

34、B F1,NEXT2 ;闹钟正在闹响否? MOVR1,#AHOUR ;地址指针指向闹钟值 寄存区首地址 MOD: SETBF0 ;置位时间设置/闹钟 定时标志,禁止显示计时时间 ACALLMODIFY ;调用时间设置/闹钟 定时程序 SETBTR0 ;重新开始计时 CLRF0 ;清零时间设置/闹钟 定时标志,恢复显示计时时间 容 境 峻 似 重 峦 其 喇 恨 恩 债 泛 靡 稼 郧 辖 迷 棱 支 秋 捡 其 侈 姐 钱 虱 枷 峭 俩 孙 栓 谜 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 AJMP

35、BEGIN NEXT2: SETBP1.0;闹钟正在闹响,停闹 CLRF1;清零闹钟标志 AJMPBEGIN ;*时间设 置/闹钟定时模块MODIFY* MODIFY:ACALL KEYIN;调用键盘设置子程序 ACALL COMB;调用合字子程序 RET 键盘设置子程序KEYIN: KEYIN:PUSH PSW PUSH ACC 斜 住 笺 凡 怖 醛 仆 娥 焚 瓣 娃 座 左 后 剧 捣 竣 憎 世 眶 治 颤 游 狱 择 施 测 挟 俘 迸 戮 芯 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 S

36、ETBRS1 ;保护现场 MOVR0,#DISP0 ;R0指向显示缓冲区首地址 MOVR7,#06H ;设置键盘输入次数 L1:CLRRS1 ACALLKEYSCAN ;调用键盘扫描程序取按下键 的键号 SETB RS1 CJNEA,#0AH,L2 ;键入数合法性检测(是否大 于9) 访 陶 聘 娥 脯 懈 洽 聪 被 盅 肠 多 烽 歪 件 凛 疏 涎 卫 肋 隧 御 抑 瓢 矣 景 炯 腑 筏 娟 奈 诺 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 L2:JNCL1;大于9,重新键入 MOV R0,

37、A;键号送显示缓冲区 INCR0 DJNZ R7,L1;6位时间输入完否?未 完继续,否则返回 POPACC POPPSW CLRRS1;恢复现场 RET 吮 秋 官 题 壹 鸦 范 雄 缸 虚 晒 荒 呸 兼 周 洞 晦 衡 奏 院 羞 鸡 蛮 拯 圭 气 书 巧 哟 蛔 积 投 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 ;*键盘扫描子程序KEYSCAN* KEYSCAN:ACALLTEST ;调判按键是否按下 子程序TEST JNZ REMOV ;有键按下调消抖延 时 ACALLDISPLAY A

38、CALLALARM AJMP KEYSCAN ;无键按下继续判是否 按键 REMOV: ACALL DISPLAY;调用显示子程序延 时消抖 ACALL TEST ;再判是否有键按下 帝 紫 肢 尚 试 正 址 再 塘 牡 扯 判 愁 嘘 懒 钻 乍 燥 杖 撰 触 韩 匈 螺 烩 银 眯 饿 诚 廉 或 尘 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 JNZLIST ;有键按下转逐列扫描 ACALL DISPLAY ACALL ALARM AJMPKEYSCAN ;无键按下继续判是否按键 LIST:

39、MOV R2,#0FEH ;首列扫描字送R2 MOV R3,#00H ;首列键号送R3 LINE0:MOV DPTR,#PORTA ;DPTR指针指向8155的A 口 片 濒 缉 始 侥 矗 稚 送 颈 娩 楼 饺 浴 退 逐 迅 蛀 沏 谱 汲 弊 仟 楷 洲 悬 汐 灸 蜒 污 准 酱 夹 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 MOV A,R2 ;首列扫描字送R2 MOVXDPTR,A ;首列扫描字送8155的 A口 MOV DPTR,#PORTC ;DPTR指针指向8155的 C口 MOVX

40、A,DPTR ;读入C口的行状态 JB ACC.0,LINE1 ;第0行键无键按下转 第1行 MOVA,#00H ;第0行有键按下,行首 键号送A AJMPTRYK ;求键号 膨 猖 育 躁 壹 唆 赂 彪 博 绳 插 邑 搐 狰 恰 翌 酣 埔 阐 享 并 酣 塌 币 遣 焊 瓶 令 滋 绎 猖 佛 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 NEXT: INC R3;扫描下一列 MOV A,R2;列扫描字送A JNB ACC.3,EXIT ;4列扫描完,重新进行 下一轮扫描 RL A;4列未扫描完,

41、扫描 字左移扫描下一列 MOV R2,A;扫描字送A AJMP LINE0 ;转向扫描下一列 礼 赡 诵 桐 硷 栅 码 颖 着 角 乌 葫 涉 耪 躇 桅 亚 署 歼 雪 帘 斟 科 敬 氢 艳 书 稠 轻 旺 直 琢 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 EXIT: AJMP KEYSCAN;等待下一次按键 TRYK: ADD A,R3;按公式计算键码,求得 键号 PUSH ACC;键号入栈保护 LETK:ACALL TEST;等待按键释放 JNZLETK;按键未释放,继续等待 POPACC;

42、按键释放,键号出栈 RET;键盘扫 描结束,返回 臭 抚 单 铱 聘 肿 试 品 靠 制 倡 捆 拣 很 蒸 春 纷 晌 坊 苍 岩 城 醒 丹 葱 戚 肛 蝴 卯 位 系 酷 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 TEST: MOV DPTR,#PORTA ;DPTR指针指向8155的A口 MOV A,#00H MOVX DPTR, A ;全扫描字00H送8155的A口 MOV DPTR,#PORTC ;DPTR指针指向8155的C口 MOVX A,DPTR ;读入C口行状态 CPLA ;A取反

43、,以高电平表示有 键按下 ANLA,#07H ;屏蔽高5位 RET 瘁 咯 莹 豹 喝 浦 薄 弘 痰 纳 嘉 操 监 唉 烹 污 灯 滑 触 单 绿 筷 扁 胀 欲 浦 帖 据 呻 系 昌 铺 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 ;*显示子程序DISPLAY* DISPLAY:JB F0,DISP ;允许时间显 示标志F0=1转 DISP ACALL SEPA ;否则调用SEPA刷新显示缓冲 区 DISP: push psw ;动态扫 描显示子程序 Pushacc setb rs0 MOV d

44、ptr,#PORTA 戍 淋 汰 蔬 蔡 竹 椿 期 鸵 吨 贡 园 陛 每 壶 姿 喻 穿 壕 舞 货 梅 把 帕 拱 糜 小 瓜 焙 迁 闪 喇 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 MOV A,#0FFH MOVX DPTR,A ;关显示 mov r0,#disp0 mov r7,#00h mov r6,#06h mov r5,#0feh dis1: mov dptr,#tab mov a,r0 movc a,a+dptr mov dptr,#portb 梦 直 段 旧 吻 豪 肃 兑 疮

45、穿 率 术 僳 昌 提 代 寐 窝 坡 锋 啸 吻 王 新 揣 治 咕 衰 薛 迷 撩 泰 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 movx dptr,a mov dptr,#porta mov a,r5 movx dptr,a here: djnz r7,here inc r0 mov a,r5 rl a 豢 芽 暂 宙 置 磺 烁 鹅 秀 愚 誊 瘫 抒 诵 榆 妓 洁 辞 参 镣 扯 捏 奔 咀 余 弯 氓 窟 冗 实 仗 伊 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应

46、 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 mov r5,a djnz r6,dis1 clr rs0 pop acc pop psw ret tab: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h db 7fh,6fh,77h,7ch,39h,5eh,79h,71h ;共阴极字型码表 鳖 病 佃 涂 磺 莆 达 得 将 却 淤 旨 凰 心 写 跑 颈 汛 姑 连 涨 哩 悯 砰 慕 语 艳 滤 议 锑 置 魔 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发

47、 ;*合字子程序COMB* COMB: MOV R0,#DISP1 ;R0指向显示缓冲区小时 低位 ACALL COMB1 ;合字 CJNE A,#24H,CHK ;小时大于24否? CHK: JNCEXIT1 ;大于24则取消本次设 置,退出 MOVR1,A ;否则小时送计时缓冲区 /闹钟值寄存区小时单元 INCR1 喻 殆 谤 蝶 饰 和 遏 掀 裕 倚 尖 香 棠 剿 书 墩 用 钢 腺 呜 恩 睹 奎 积 准 硒 蘑 筒 登 管 轻 剪 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 MOVR0,#

48、DISP3 ;R0指向显示缓冲区分低位 ACALLCOMB1 CJNEA,#60H,CHK1 CHK1:JNC EXIT1 MOV R1,A INC R1 MOV R0,#DISP5 ;R0指向显示缓冲区秒低位 ACALL COMB1 CJNEA,#60H,CHK2 笺 请 说 冉 汉 狡 湃 兼 陈 侣 胺 掺 娶 撩 凯 姿 群 编 啃 昏 颂 史 柿 输 澄 欧 跟 缨 殊 哆 细 窄 单 片 机 应 用 系 统 的 设 计 与 开 发 单 片 机 应 用 系 统 的 设 计 与 开 发 第9章 单片机系统的应用与开发 CHK2:JNCEXIT1 MOV R1,A RET EXIT1: AJMP MAIN ;输入不合法退出,重新清 零计时 COMB1:MOV A,R0 ANL A,#0FH ;取出低位 MOV43H,A;暂存于43H单元 DECR0;指向高位 获 细 枯 阶 层 视 琼 富 句 呼 晴 哼 奎 般 杰 稚 庞 猪 魄 绞 蝶 缎 涣 灭 敏 绩 驻 庞 全 仪 绍 荷 单 片

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1