单片机系统设计

上传人:s9****2 文档编号:567373982 上传时间:2024-07-20 格式:PPT 页数:85 大小:521KB
返回 下载 相关 举报
单片机系统设计_第1页
第1页 / 共85页
单片机系统设计_第2页
第2页 / 共85页
单片机系统设计_第3页
第3页 / 共85页
单片机系统设计_第4页
第4页 / 共85页
单片机系统设计_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《单片机系统设计》由会员分享,可在线阅读,更多相关《单片机系统设计(85页珍藏版)》请在金锄头文库上搜索。

1、 系统设计系统设计(步骤步骤): 1、技术指标(功能设计): 为企业完成技术改造,企业会提出技术指标。 开发新产品则先行设计产品功能。 系统设计系统设计( (步骤步骤):): 1、技术指标(功能设计): 为企业完成技术改造,企业会提出技术指标。 开发新产品则先行设计产品功能。 例如开发一个新型电子钟,它的功能归纳为: 走时准确,能自动校时。 6位显示,能显示时、分、秒。 能手动校时。 能设定作息时间表。 系统设计系统设计( (步骤步骤):): 1、技术指标(功能设计): 为企业完成技术改造,企业会提出技术指标。 开发新产品则先行设计产品功能。 例如开发一个新型电子钟,它的功能归纳为: 走时准确

2、,能自动校时。 6位显示,能显示时、分、秒。 能手动校时。 能设定作息时间表。 2、操作手册设计。设计的依据是“技术指标”。 系统设计系统设计( (步骤步骤):): 1、技术指标(功能设计): 为企业完成技术改造,企业会提出技术指标。 开发新产品则先行设计产品功能。 例如开发一个新型电子钟,它的功能归纳为: 走时准确,能自动校时。 6位显示,能显示时、分、秒。 能手动校时。 能设定作息时间表。 2、操作手册设计。设计的依据是“技术指标”。 基本操作设计: 电子钟三个工作状态:时钟状态;校时状态;设时状态。 校时状态下的操作。校时对象选择;校准操作。 设时状态下的操作。设时对象选择:第i个作息时

3、间、时钟、分钟;设置作息时间的操作。 2、操作手册设计。设计的依据是“技术指标”。 基本操作设计: 电子钟三个工作状态:时钟状态;校时状态;设时状态。 校时状态下的操作。校时对象选择;校准操作。 设时状态下的操作。设时对象选择:第i个作息时间、时钟、分钟;设置作息时间的操作。 需要三个键k1、k2、k3实施基本操作: k1为状态键、k2为选择键、k3为操作键。 2、操作手册设计。设计的依据是“技术指标”。 基本操作设计: 电子钟三个工作状态:时钟状态;校时状态;设时状态。 校时状态下的操作。校时对象选择;校准操作。 设时状态下的操作。设时对象选择:第i个作息时间、时钟、分钟;设置作息时间的操作

4、。 需要三个键k1、k2、k3实施基本操作: k1为状态键、k2为选择键、k3为操作键。 操作手册 按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。 校时状态下也显示即时时钟,但“时钟”闪烁。 设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显示第i个作息时间的时和分。 2、操作手册设计。设计的依据是“技术指标”。 基本操作设计: 电子钟三个工作状态:时钟状态;校时状态;设时状态。 校时状态下的操作。校时对象选择;校准操作。 设时状态下的操作。设时对象选择:第i个作息时间、时钟、分钟;设置作息时间的操作。 需要三个键k1、k2、k3实

5、施基本操作: k1为状态键、k2为选择键、k3为操作键。 操作手册 按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。 校时状态下也显示即时时钟,但“时钟”闪烁。 设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显示第i个作息时间的时和分。 校时状态下进行校时。 设时状态下进行作息时间设定。 操作手册 按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。 校时状态下显示即时时钟,但“时钟”闪烁。 设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显示第i个作息时间的时和分。 校时状态

6、下对闪烁部分进行校准。 按K2切换校时对象:时钟、分钟、秒钟依次循环,选定的校时对象闪烁。 按k3修改校时对象:按k3一次,校时对象增值1。 按k1切换出校时状态。 操作手册 。 设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显示第i个作息时间的时和分。 校时状态下对闪烁部分进行校准。 按K2切换校时对象:时钟、分钟、秒钟依次循环,选定的校时对象闪烁。 按k3修改校时对象:按k3一次,校时对象增值1。 按k1切换出校时状态。 设时状态下对闪烁部分进行作息时间设定。 按K2切换“设时状态”下的操作对象:作息时间序号、作息时间的时钟、作息时间的分钟依次循环,选定的操作对象闪烁。

7、 按k3修改“设时状态”下的操作对象:按k3一次,操作对象增值1。 按k1切换出设时状态。 2、操作手册设计 按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。 校时状态下显示即时时钟,但“时钟”闪烁。 设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显示第i个作息时间的时和分。 校时状态下对闪烁部分进行校准。 按K2切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。 按k3修改校时对象:按k3一次,校时对象增值1。 按k1切换出校时状态。 设时状态下对闪烁部分进行作息时间设定。 按K2切换“设时状态”下的操作对象:作息时

8、间序号、作息时间的时、作息时间的分依次循环选择,选定的操作对象闪烁。 按k3修改“设时状态”下的操作对象:按k3一次,操作对象增值1。 按k1切换出设时状态。 系统设计系统设计(步骤步骤): 1、技术指标(功能设计): 走时准确,能自动校时。 6位显示,能显示时、分、秒。 能手动校时。 能设定作息时间表。 2、操作手册设计 3、硬件设计 总体设计 设计专门的“自动校时模块”确保走时准确;采用6位8段LED显示器动态显示以节省成本;用3个键实现电子钟的操作;扩展4KB程序存储器。 逻辑电路设计 电子钟逻辑电路图电子钟逻辑电路图电子钟逻辑电路图(左上)电子钟逻辑电路图(左上)k1为状态键;为状态键

9、;k2为选择键;为选择键;k3为操作键。为操作键。电子钟逻辑电路图(左下)电子钟逻辑电路图(左下)自动校时模块有两个输出:。一个在正点附近输出5个脉冲,即图中的Aotu- regulator input1另一个正点输出1个脉冲,即图中的Auto-regulator input2。 电子钟逻辑电路图(左下)电子钟逻辑电路图(左下)自动校时模块有两个输出:。一个在正点附近输出5个脉冲,即图中的Aotu- regulator input1另一个正点输出1个脉冲,即图中的Auto-regulator input2。 电子钟逻辑电子钟逻辑电路图电路图(中部)(中部)U3位图: .xx0000000000

10、0000.xx01111111111111U3地址: .0000H1FFFH电子钟逻辑电子钟逻辑电路图电路图(中部)(中部)简单接口DB译 码 ABWRRDU4位图: .x1xxxxxxxxxxxxxx电子钟逻辑电子钟逻辑电路图电路图(中部)(中部)简单接口DB译 码 ABWRRDU4位图: .x1xxxxxxxxxxxxxxU5位图: .1xxxxxxxxxxxxxxx电子钟逻辑电子钟逻辑电路图电路图(中部)(中部)简单接口DB译 码 ABWRRDU4位图: .x1xxxxxxxxxxxxxxU5位图: .1xxxxxxxxxxxxxxx综合考虑 ,U4地址: 。01xxxxxxxxxxxx

11、xxU5地址: 。10xxxxxxxxxxxxxx U4地址取4000HU5地址取8000H电子钟逻辑电子钟逻辑电路图电路图(右部)(右部) 6个8段共阳LED采用 动态显示:电阻用于限流,三极管用于扩展273的驱动能力。电子钟逻辑电子钟逻辑电路图电路图(右部)(右部)U4输出“字形码”。 U5输出“位选择码” 6个8段共阳LED采用 动态显示:电阻用于限流,三极管用于扩展273的驱动能力。 系统设计系统设计(步骤步骤): 1、技术指标、技术指标(功能设计功能设计): 2 2、操作手册设计操作手册设计 3 3、硬件设计、硬件设计 4、软件设计 整体设计: 主程序监控三个键工况,依工况转入各键的

12、功能程序,实现操作手册;T0中断服务程序实现实时时钟、作息时间报警;T1中断服务程序实现动态显示和“闪烁”;INT0中断服务程序判断是否临近正点,判断的依据是输入的5个脉冲的间隔严格固定;INT1中断服务程序实现正点校时。 数据关系图(数据流程图)设计 所有数据以BCD码的形式存在。 数据关系图以功能为核心绘出,数据关系图的集合即数据流程图。 比如K1键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 系统设计系统设计(步骤步骤): 1、技术指标、技术指标(功能设计功能设计): 2 2、操作手册设计操作手册设计 3 3、硬件设计、硬件设计 4、软件设计 整体设计

13、: 主程序监控三个键工况,依工况转入各键的功能程序,实现操作手册;T0中断服务程序实现实时时钟、作息时间报警;T1中断服务程序实现动态显示和“闪烁”;INT0中断服务程序判断是否临近正点,判断的依据是输入的5个脉冲的间隔严格固定;INT1中断服务程序实现正点校时。 数据关系图(数据流程图)设计 所有数据以BCD码的形式存在。 数据关系图以功能为核心绘出,数据关系图的集合即数据流程图。 比如K1键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 系统设计系统设计(步骤步骤): 1、技术指标、技术指标(功能设计功能设计): 2 2、操作手册设计操作手册设计 3 3、

14、硬件设计、硬件设计 4、软件设计 整体设计: 主程序监控三个键工况,依工况转入各键的功能程序,实现操作手册;T0中断服务程序实现实时时钟、作息时间报警;T1中断服务程序实现动态显示和“闪烁”;INT0中断服务程序判断是否临近正点,判断的依据是输入的5个脉冲的间隔严格固定;INT1中断服务程序实现正点校时。 数据关系图(数据流程图)设计 所有数据以BCD码的形式存在。 数据关系图以功能为核心绘出,数据关系图的集合即数据流程图。 比如K1键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 功能键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关系,再绘制数据

15、关系图。 按按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。时钟状态下显示即时时钟。 校时状态下显示即时时钟,但校时状态下显示即时时钟,但“时钟时钟”闪烁。闪烁。 设时状态下最高两位显示器显示作息时间序号设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显并且闪烁。其他四位显示器显示第示第i个作息时间的时和分个作息时间的时和分 K1键的功能程序 K1键被击工作状态 功能键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 按按k1切换电子钟工作状态:

16、时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。时钟状态下显示即时时钟。 校时状态下显示即时时钟,但校时状态下显示即时时钟,但“时钟时钟”闪烁。闪烁。 设时状态下最高两位显示器显示作息时间序号设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显并且闪烁。其他四位显示器显示第示第i个作息时间的时和分个作息时间的时和分 数据“库”设计: 用一个字节保存“工作状态”:0、1、2分别对应时钟、校时、设时三个状态。K1键的功能程序 K1键被击工作状态 功能键的功能程序数据关系图设计:先弄清其“功能”,再弄清其数据关

17、系,再绘制数据关系图。 按按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。时钟状态下显示即时时钟。 校时状态下显示即时时钟,但校时状态下显示即时时钟,但“时钟时钟”闪烁。闪烁。 设时状态下最高两位显示器显示作息时间序号设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显并且闪烁。其他四位显示器显示第示第i个作息时间的时和分。个作息时间的时和分。 T1中断服务程序的数据关系图 “闪烁”信息T1中断服务程序 XX 工作状态序号i作息时间即时时钟 功能键的功能程序数据关系图设计:先弄清

18、其“功能”,再弄清其数据关系,再绘制数据关系图。 按按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。时钟状态下显示即时时钟。 校时状态下显示即时时钟,但校时状态下显示即时时钟,但“时钟时钟”闪烁。闪烁。 设时状态下最高两位显示器显示作息时间序号设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示器显并且闪烁。其他四位显示器显示第示第i个作息时间的时和分。个作息时间的时和分。 T1中断服务程序的数据关系图“闪烁”信息T1中断服务程序 XX 工作状态序号i作息时间即时时钟 数据“库”设计

19、: 用一个字节保存“闪烁信息”: 0、1、2分别对应时闪烁、分闪烁、秒闪烁(校时)。 0、1、2分别对应序号闪烁、时闪烁、分闪烁(设时)。 “序号i作息时间”用三个字节: 一个字节保存作息时间序号i,两个字节保存第i个作息时间的时和分。 用三个字节保存即时时钟即时时钟:分别存放时、分、秒。“闪烁”信息: 0 1 2 校时状态下对闪烁部分进行校准。 按K2切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。 按k3修改校时对象:按k3一次,校时对象增值1。 按k1切换出校时状态。“闪烁”信息K2键的功能程序 K2键被击“闪烁”信息K3键的功能程序 K3键被击即时时钟 设时状态下对闪烁

20、部分进行作息时间设定。 按K2切换“设时状态”下的操作对象:作息时间序号、作息时间的时、作息时间的分依次循环选择,选定的操作对象闪烁。 按k3修改“设时状态”下的操作对象:按k3一次,操作对象增值1。 按k1切换出设时状态。 “闪烁”信息K2键的功能程序 K2键被击“闪烁”信息K3键的功能程序 K3键被击作息时间表序号i作息时间 两种状态下的K3键的数据关系图如上,合并后如下“闪烁”信息K3键的功能程序 K3键被击即时时钟“闪烁”信息K3键的功能程序 K3键被击作息时间表序号i作息时间工作状态即时时钟“闪烁”信息K3键的功能程序 K3键被击作息时间表序号i作息时间 “作息时间表作息时间表”设计

21、:设计:工作状态即时时钟“闪烁”信息K3键的功能程序 K3键被击作息时间表序号i作息时间 数据“库”设计: 用32个字节保存“作息时间表”,保存顺序: hour0,minute0,hour1,minute1,hour15,minute15。 序号 作息时间 0 hour0minute0 1 hour1minute1. 15 hour15minute15 数据关系图(数据流程图)设计 T0中断服务程序数据关系图 先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 T0T0中断服务程序实现实时时钟、作息时间报警;中断服务程序实现实时时钟、作息时间报警;T0中断服务程序作息时间表即时时钟报警输出

22、 数据关系图(数据流程图)设计 T0中断服务程序数据关系图 先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 INT0中断服务程序判断是否临近正点,判断的依据是输入的中断服务程序判断是否临近正点,判断的依据是输入的5个脉冲的间隔个脉冲的间隔严格固定;严格固定;INT1中断服务程序实现正点校时。中断服务程序实现正点校时。 INT0中断服务程序临近正点即时时钟INT1中断服务程序 数据关系图(数据流程图)设计 T0中断服务程序数据关系图 先弄清其“功能”,再弄清其数据关系,再绘制数据关系图。 INT0中断服务程序判断是否临近正点,判断的依据是输入的中断服务程序判断是否临近正点,判断的依据是输

23、入的5个脉冲的间隔个脉冲的间隔严格固定;严格固定;INT1中断服务程序实现正点校时。中断服务程序实现正点校时。 INT0中断服务程序临近正点即时时钟INT1中断服务程序 数据“库”设计: “临近正点”用位变量表示:1表示临近正点 信息系统流程图(数据关系图的集合)信息系统流程图(数据关系图的集合)INT0中断服务程序临近正点INT1中断服务程序T0中断服务程序即时时钟K3键的功能程序 K3键被击作息时间表K2键的功能程序 K2键被击T1中断服务程序 XX “闪烁”信息K1键的功能程序 K1键被击工作状态序号i作息时间报警输出 系统设计系统设计( (步骤步骤):): 1 1、技术指标、技术指标(

24、 (功能设计功能设计) ): 2 2、操作手册设计、操作手册设计 3 3、硬件设计、硬件设计 4 4、软件设计、软件设计 整体设计整体设计: 信息系统流程图设计信息系统流程图设计 数据数据“库库”设计设计 用一个字节保存工作状态工作状态:0、1、2分别对应时钟、校时、设时三个状态。 用一个字节保存闪烁信息闪烁信息: 0、1、2分别对应时闪烁、分闪烁、秒闪烁(校时)。 0、1、2分别对应序号闪烁、时闪烁、分闪烁(设时)。 用三个字节保存序号序号i作息时间作息时间 : 一个字节保存作息时间序号i,两个字节保存第i个作息时间的时和分。 用三个字节保存即时时钟即时时钟:分别存放时、分、秒。 用32个字

25、节保存作息时间表作息时间表,保存顺序: hour1,minute1,hour2,minute2,hour16,minute16 用位变量保存临近正点临近正点:1表示临近正点表示临近正点 依上列安排进行存存储设计储设计 ; 程序清单程序清单(存储设计);用ZIWEI输出显示器位选择码ZIWEI data 8000H;用ZIXING输出显示器字形码ZIXING data 4000H ; 程序清单程序清单(存储设计);用STATE保存 “工作状态”:0、1、2分别对应时钟、校时、设时三个状态。STATE equ 55H ;初始化为0;用SHSHUO保存“闪烁信息”:校时状态:0、1、2分别对应时闪烁

26、、分闪烁、秒闪烁;设时;状态:0、1、2分别对应序号i闪烁、时闪烁、分闪烁。SHSHUO equ 56H;初始化为0;用MO保存模加计算的模MO equ 57H;用三个字节保存“序号i作息时间” :;一个字节保存作息时间序号i,两个字节保存第i个作息时间的时和分。XUHAO equ 5AH ;保存i,仅当i大于15时初始化为0HOURI equ 5BH ;初始化时赋予作息时间表中与i对应的时钟值MINUTEI equ 5CH ;初始化时赋予作息时间表中与i对应的分钟值;用三个字节保存“即时时钟”:分别存放时、分、秒。HOUR equ 5DH;初始化时:hour23则hour0MINUTE eq

27、u 5EH;初始化时:minute59则minute0SECOND equ 5FH;初始化时:second59则second0;用32个字节保存“作息时间表”,60H作为第1字节地址。保存顺序:; hour1,minute1,hour2,minute2,hour16,minute16。BIAO equ 60H;初始化时,表中时大于23,或分大于59则赋予0 ; 程序清单程序清单(存储设计);用位变量ZHDIAN保存“临近正点”信息:1表示临近正点。ZHDIAN bit 00H ;初始化为0;用位变量ALARM输出报警信号,0有效。 ALARM bit P1.4 ;初始化为1;用位变量XIMIE

28、控制灯的闪烁,1对应半秒,0对应整秒,T0中断服务程序设置XIMIE bit 01H;初始化为0。;用位变量BANZJ控制显示半字节部分:BANZJ=1显示数据高半字节;否则显示低半字节BANZJ bit 02H;初始化为0 ;位变量ZHTBH为1表示STATE变化了一次:在K1分支置1,在T1中断服务程序中清0ZHTBH bit 03H;初始化为0 系统设计系统设计( (步骤步骤):): 1 1、技术指标、技术指标( (功能设计功能设计) ): 2 2、操作手册设计、操作手册设计 3 3、硬件设计、硬件设计 4 4、软件设计、软件设计 整体设计整体设计: 信息系统流程图设计信息系统流程图设计

29、 数据数据“库库”设计设计 程序流程程序流程图设计图设计(依(依数数据据关关系系图设计图设计之)之) 主程序流程图主程序流程图 START T0、T1、INT0、INT1初始化 数据“库”初始化ST1有键被击?ST2N 延时20msY有键被击?NY 保存“被击键” 击键释放?NY 延时20ms “被击键”=K1?YNK1 K1的功能程序 “被击键”=K2?YNK2 K2的功能程序K3 K3的功能程序ST3ST3ST2 主程序流程图主程序流程图 START T0、T1、INT0、INT1初始化 数据“库”初始化ST1有键被击?ST2N 延时20msY有键被击?NY 保存“被击键” 击键释放?NY

30、 延时20msST3START: . ST1:.ST2:.ST3: . ;功能:一字节BCD码加1计算(模加计算);入口参数:R0指向此字节,MO为模;出口参数:A中有计算结果,位Mbit=1表示本次计算和=模MOJ1:MOV A,R0ADD A,#1DA ACJNE A,MO,MOJ12 ;计算结果与模比较MOJ12: JC MOJ13 ;和小于模转,和即计算结果CLR A;和等于模,计算结果为0MOJ13: MOV R0,A ;保存计算结果RET; 程序清单程序清单(存储设计) .;MO保存模加计算的模MO EQU 57H ;用位变量Mbit为模加运算进位:1标识有进位,0标识无进位。Mb

31、it bit 02H START: .ST1:MOV R0,#BIAOMOV R2,#16ST11: MOV A,R0CJNE A,#24H,ST12ST12:JC ST13CLR AST13:MOV R0,AINC R0INC R0DJNZ R2,ST11 MOV R0,#BIAO+1MOV R2,#16ST14: MOV A,R0CJNE A,#60H,ST15ST15:JC ST16CLR AST16:MOV R0,AINC R0INC R0DJNZ R2,ST14ST160: BIAO: 作息时间表初始化时,表中时钟大作息时间表初始化时,表中时钟大于于23则赋予则赋予0,表中分钟大于表

32、中分钟大于59则赋则赋予予0 START: ST1:ST160: MOV A,HOURCJNE A,24H,ST161ST161:JC ST162MOV HOUR,#0ST162:MOV A,MINUTECJNE A,60H,ST163ST163:JC ST164MOV MINUTE,#0ST164MOV A,SECONDCJNE A,#60H,ST17ST17:JC ST18MOV SECOND,#00HST18:. .HOUR: 初始化时:初始化时:hour23则则hour0MINUTE: 初始化时:初始化时:minute59则则minute0SECOND: 初始化时:初始化时:secon

33、d59则则second0 存储设计存储设计STATE:初始化为初始化为0SHSHUO:初始化为初始化为0XUHAO:装有装有i i仅当其大于仅当其大于15时初始化化为时初始化化为0HOURI: 初始化时赋予与初始化时赋予与i对应的作息时间对应的作息时间MINUTEI: 初始化时赋予与初始化时赋予与i对应的作息时间对应的作息时间START: . ST1:.ST18:MOV STATE,#0MOV SHSHUO,#0MOV A,XUHAOCJNE A,#16,ST182ST182:JC ST183 MOV XUHAO,#0ST183:MOV A,#XUHAO RL A ;Ai*2 ADD A,#B

34、IAO ;BIAO=60H MOV R1,A MOV A,R1 ;A(60H+ i*2) MOV HOURI,A INC R1 MOV A,R1 MOV MINUTEI,A. START: . ST1:.ST18:MOV STATE,#0MOV SHSHUO,#0MOV A,XUHAOCJNE A,#16,ST182ST182:JC ST183 MOV XUHAO,#0ST183:MOV A,#XUHAO RL A ;Ai*2 ADD A,#BIAO ;BIAO=60H MOV R1,A MOV A,R1 ;A(60H+ i*2) MOV HOURI,A INC R1 MOV A,R1 MOV

35、 MINUTEI,ACLR ZHDIANCLR XIMIE;显示不“闪烁”CLR BANZJ;显示数据的低半字节CLR ZHTBH;状态无变化ST2:.ST3:.;用ZHDIAN保存“临近正点”信息:1表示临近正点。ZHDIAN bit 00H ;初始化为0;用位变量XIMIE控制灯的闪烁XIMIE bit 01H;初始化为0。;BANZJ=1显示数据高半字节;否则显示低半字节BANZJ bit 03H;初始化为0 ;位变量ZHTBH为1表示STATE变化了一次:在K1分支置1,在T1中断服务程序中清0ZHTBH bit 04H ;初始化为0START: . ST1:.ST2:MOV A,P1

36、ANL A,#07H; 07H=00000111B XOR A,#07H; A非0即“有键被击” JZ ST2 LCALL DELAY ;延时20msMOV A,P1ANL A,#07HXOR A,#07HJZ ST2MOV R3,P1 ;保存保存“被击键被击键”于于R3ST21:MOV A,P1ANL A,#07H; 07H=00000111B XOR A,#07H; A非0即键未释放 JNZ ST21 LCALL DELAY ;延时20msST3:. START T0、T1、INT0、INT1初始化 数据“库”初始化ST1有键被击?ST2N 延时20msY有键被击?NY 保存“被击键” 击

37、键释放?NY 延时20msST3START: . ST1:.ST2:MOV A,P1ANL A,#07H; 07H=00000111B XOR A,#07H; A非0即“有键被击” JZ ST2 LCALL DELAY ;延时20msMOV A,P1ANL A,#07HXOR A,#07HJZ ST2MOV R3,P1 ;保存保存“被击键被击键”于于R3ST21:MOV A,P1ANL A,#07H; 07H=00000111B XOR A,#07H; A非0即键未释放 JNZ ST21 LCALL DELAY ;延时20msST3:. “被击键”=K1?YNK1 K1的功能程序 “被击键”=

38、K2?YNK2 K2的功能程序K3 K3的功能程序ST3ST2K3:. LJMP ST2K1:. LJMP ST2K2: .LJMP ST2START: .ST1:.ST2:.MOV R3,P1 ;保存“被击键”于R3 .ST3:MOV A,R3JNB ACC.2,K1 ;K1被击转K1分支JNB ACC.1,K2 ;K2被击转K2分支;K1分支:始于标号K1,终于标号ST2;K2分支:始于标号K2,终于标号ST2;K3分支:始于标号K3,终于标号ST2 START T0、T1、INT0、INT1初始化 数据“库”初始化ST1有键被击?ST2N 延时20msY有键被击?NY 保存“被击键” 击

39、键释放?NY 延时20ms “被击键”=K1?YNK1 K1的功能程序 “被击键”=K2?YNK2 K2的功能程序K3 K3的功能程序ST3ST3ST2K1键的功能程序 K1键被击工作状态STATE:初始化为初始化为0 ; 0、1、2分别对应时钟、校时、设时三个状态。分别对应时钟、校时、设时三个状态。 操作手操作手册册 按按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 ;K1分支:始于标号分支:始于标号K1,终于标号终于标号ST2K1键的功能程序 K1键被击工作状态STATE:初始化为初始化为0 ; 0、1、2分别对应

40、时钟、校时、设时三个状态。分别对应时钟、校时、设时三个状态。K1:SETB ZHTBH ;标识STATE变化,在T1INT中清0MOV A,STATEINC ACJNE A,#3,K11MOV STATE,#0LJMP ST2K11:MOV STATE,ALJMP ST2 操作手操作手册册 按按k1切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。 设时状态下最高两位显示器显示作息时间序号设时状态下最高两位显示器显示作息时间序号i并且闪烁。其他四位显示并且闪烁。其他四位显示器显示第器显示第i个作息时间的时和分。个作息时间的时和分

41、。 ;位变量ZHTBH为1表示STATE变化了一次:在K1分支置1,在T1中断服务程序中清0ZHTBH bit 04H;初始化为0 操作手册操作手册 校时状态下对闪烁部分进行校准。校时状态下对闪烁部分进行校准。 按按K2K2切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。 设时状态下对闪烁部分进行作息时间设定。设时状态下对闪烁部分进行作息时间设定。 按按K2切换切换“设时状态设时状态”下的操作对象:作息时间序号、作息时间的时、作息下的操作对象:作息时间序号、作息时间的时、作息时间的分依次循环选择,选定的操作对象闪烁。

42、时间的分依次循环选择,选定的操作对象闪烁。 .;用用SHSHUO保存保存“闪烁信息闪烁信息”。;校时状态:校时状态:0、1、2分别对应时闪烁、分闪烁、秒闪烁分别对应时闪烁、分闪烁、秒闪烁;设时状态:设时状态:0、1、2分别对应序号分别对应序号i闪烁闪烁,时闪烁时闪烁,分闪烁分闪烁SHSHUO EQU 58H;初始化为初始化为0“闪烁”信息K2键的功能程序 K2键被击 操作手册操作手册 校时状态下对闪烁部分进行校准。校时状态下对闪烁部分进行校准。 按按K2K2切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。 设时状态下

43、对闪烁部分进行作息时间设定。设时状态下对闪烁部分进行作息时间设定。 按按K2切换切换“设时状态设时状态”下的操作对象:作息时间序号、作息时间的时、作息下的操作对象:作息时间序号、作息时间的时、作息时间的分依次循环选择,选定的操作对象闪烁。时间的分依次循环选择,选定的操作对象闪烁。 .;用用SHSHUO保存保存“闪烁信息闪烁信息”。;校时状态:校时状态:0、1、2分别对应时闪烁、分闪烁、秒闪烁分别对应时闪烁、分闪烁、秒闪烁;设时状态:设时状态:0、1、2分别对应序号分别对应序号i闪烁闪烁,时闪烁时闪烁,分闪烁分闪烁SHSHUO EQU 58H;初始化为初始化为0“闪烁”信息K2键的功能程序 K2

44、键被击K2:MOV A,STATE CJNE A,#0,K21LJMP ST2K21:MOV A,SHSHUOINC A CJNE A,#3,K22 MOV A,#0K22:MOV SHSHUO,ALJMP ST2K2分支始于标号分支始于标号K2,终于,终于ST2 操作手操作手册册 校时状态下对闪烁部分进行校准。校时状态下对闪烁部分进行校准。 按按K2K2切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。切换校时对象:时钟、分钟、秒钟依次循环选择,选定的校时对象闪烁。 按按k3k3修改校时对象:按修改校时对象:按k3k3一次,校时对象增值一次,校时对象增值1 1。 设时状态下对闪

45、烁部分进行作息时间设定。设时状态下对闪烁部分进行作息时间设定。 按按K2切换切换“设时状态设时状态”下的操作对象:作息时间序号、作息时间的时、作息下的操作对象:作息时间序号、作息时间的时、作息时间的分依次循环选择,选定的操作对象闪烁。时间的分依次循环选择,选定的操作对象闪烁。 按按k3修改修改“设时状态设时状态”下的操作对象:按下的操作对象:按k3一次,操作对象增值一次,操作对象增值1。当前是时钟状态当前是时钟状态? Y ST2当前是校时状态当前是校时状态? Y NSHSHUO? ST2SHSHUO? HOURHOUR增值增值1 1XSH k3 MINUTEMINUTE增值增值1 1 HOUR

46、IHOURI增值增值1 1 SECONDSECOND增值增值1 1 XUHAO增值1;由作息表读入HOURI,MINUTEI MINUTEIMINUTEI增值增值1 1012012SSH将此作息时间存入作息时间表 CUNBK3:MOV A,STATEJNZ K31LJMP ST2K31:JNB ACC.0,SSHXSH:MOV A,SHSHUOCJNE A,#1,K32XSH1:MOV R0,#MINUTEMOV MO,#60HLCALL MOJ1 LJMP ST2K32:JNC XSH2XSH0:MOV R1,#HOURMOV MO,#24HLCALL MOJ1 LJMP ST2XSH2:M

47、OV R1,#SECOND MOV MO,#60HLCALL MOJ1 LJMP ST2 当前是时钟状态当前是时钟状态? Y ST2当前是校时状态当前是校时状态? Y NSHSHUO? ST2SHSHUO? HOURHOUR增值增值1 1XSH k3 MINUTEMINUTE增值增值1 1 HOURIHOURI增值增值1 1 SECONDSECOND增值增值1 1 XUHAO增值1;由作息表读入HOURI,MINUTEI MINUTEIMINUTEI增值增值1 1012012SSH将此作息时间存入作息时间表 CUNBSSH: MOV A,SHSHUO ; CJNE A,#1,SSHFSSH1:

48、 MOV R0,#HOURIMOV MO,#24HLCALL MOJ1SJMP CUNBSSHF:JC SSH0SSH2:MOVR0,#MINUTEIMOV MO,#60HLCALL MOJ1SJMP CUNBSSH0:MOV R0,#XUHAO当前是时钟状态当前是时钟状态? Y ST2当前是校时状态当前是校时状态? Y NSHSHUO? ST2SHSHUO?HOURHOUR增值增值1 1XSH k3MINUTEMINUTE增值增值1 1 HOURIHOURI增值增值1 1 SECONDSECOND增值增值1 1 XUHAO增值1;由作息表读入HOURI,MINUTEI MINUTEIMINU

49、TEI增值增值1 1012012SSH将此作息时间存入作息时间表 CUNB MOV MO,#16HLCALL MOJ1RL A ;Ai*2ADD A,#BIAO ;BIAO=60HMOV R1,AMOV A,R1 ;A(60H+ i*2)MOV HOURI,A INC R1MOV A,R1MOV MINUTEI,ACUNB: CUNB:MOV A,XUHAO ;A=i RL A ;A=2*i ADD A,#BIAOMOV R0,A ;R0指向作息表第i项MOV A,HOURIMOV R0,A ;作息时间i的时入表INC R0 MOV A,MINUTEIMOV R0,A ;作息时间i分入表LJM

50、P ST2BIAO EQU 60H ;32字节作息时间表首地址当前是时钟状态当前是时钟状态? Y ST2当前是校时状态当前是校时状态? Y NSHSHUO? ST2SHSHUO? HOURHOUR增值增值1 1XSH k3 MINUTEMINUTE增值增值1 1 HOURIHOURI增值增值1 1 SECONDSECOND增值增值1 1 XUHAO增值1;由作息表读入HOURI,MINUTEI MINUTEIMINUTEI增值增值1 1012012SSH将此作息时间存入作息时间表 CUNB 系统软件体系结构主程序T0中断服务程序INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监

51、控三个键工况,依工况转入各键的功能程序,实现操作手册; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点 。INT1中断服务程序实现正点校时 。 为避免寄存器冲突,必须分配工作寄存器区 系统软件体系结构主程序T0中断服务程序INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监控三个键工况和光敏模块输入,依工况转入各键的功能程序,实现操作手册、依光敏模块输入控制显示与否; ; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点

52、 。INT1中断服务程序实现正点校时 。 RS1 RS0主程序用0区寄存器: 0 0T0程序用1区寄存器:0 1T1程序用2区寄存器:1 0外中断用3区寄存器: 1 1 为避免寄存器冲突,必须分配工作寄存器区 系统软件体系结构主程序T0中断服务程序INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监控三个键工况和光敏模块输入,依工况转入各键的功能程序,实现操作手册、依光敏模块输入控制显示与否; ; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点 。INT1中断服务程序实现正点校时 。 RS1 RS0

53、主程序用0区寄存器: 0 0T0程序用1区寄存器:0 1T1程序用2区寄存器:1 0外中断用3区寄存器: 1 1 必须程序安排堆栈区: 估计堆栈区大小:程序几重嵌套?是否用了PUSH指令? 确定栈底:SP为多少? 为避免寄存器冲突,必须分配工作寄存器区 系统软件体系结构主程序T0中断服务程序INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监控三个键工况和光敏模块输入,依工况转入各键的功能程序,实现操作手册、依光敏模块输入控制显示与否; ; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点 。INT1

54、中断服务程序实现正点校时 。 外部中断触发方式采用边沿触发:TCON之IT1、IT0应置1 系统软件体系结构主程序T0中断服务程序INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监控三个键工况和光敏模块输入,依工况转入各键的功能程序,实现操作手册、依光敏模块输入控制显示与否; ; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点 。INT1中断服务程序实现正点校时 。 外部中断触发方式采用边沿触发:TCON之IT1、IT0应置1 开中断:IE1xx01111b 系统软件体系结构主程序T0中断服务程序

55、INT0中断服务程序INT1中断服务程序T1中断服务程序 主程序监控三个键工况和光敏模块输入,依工况转入各键的功能程序,实现操作手册、依光敏模块输入控制显示与否; ; T0中断服务程序实现实时时钟、作息时间报警 ; T1中断服务程序实现动态显示和“闪烁” ; INT0中断服务程序判断是否临近正点 。INT1中断服务程序实现正点校时 。 外部中断触发方式采用边沿触发:TCON之IT1、IT0应置1 开中断:IE1xx01111b 中断优先级安排: 外部中断为高优先级,其他为低优先级:IPxxx00101b T0中断服务程序实现实时时钟、作息时间报警 ; 设单片机晶振频率为12MHz 1)关于T0

56、: 1s=50000us*20=T0定时*软件计数。 用T0以方式1定时50000us,用R7做软件计数器 ,初值为20。 TMOD= xxxx0001 计数初值X0 X0=最大计数值-欲计的数=65536-50000us/1us =0000H-C350H=3CB0H TH03CH,TL00B0H R7初值=20; T1中断服务程序实现动态显示和“闪烁” ; 2)关于T1 T1定时2ms*623则hour0MINUTE EQU 5FH;初始化时:minute59则minute0SECOND EQU 5DH;初始化时:second59则second0;用32个字节保存“作息时间表”,60H作为第

57、1字节地址。保存顺序:; hour1,minute1,hour2,minute2,hour16,minute16。BIAO EQU 60H;初始化时,表中时大于23或分大于59则赋予0T0中断服务程序作息时间表即时时钟报警输出;用位变量XIMIE控制灯的闪烁:1熄灭,0亮。1对应半秒,0对应整秒。在T0中断服务程序中设置。XIMIE BIT 01H ;初始化为0。 T0INT 保护现场,确定寄存器区,重赋T0初值 半秒钟到?Y报警YR720 SECOND+1 XIMIE0 1分钟到?N MINUTE增值1 报警时间到?Y HOUR增值1 1小时到?中断返回T0EBJ 1秒钟到?Y XIMIE1

58、 恢复现场YNT0INT:PUSH PSWPUSH MOV TH0,#3CHMOV TL0,#0B0HCLR RS1SETB RS0CJNE R7,#10,T01SETB XIMIE ; 半秒标识置1T01:DJNZ R7,T0EMOV R7,#20CLR XIMIE ;半秒标识清0MOV R0,#SECONDMOV MO,#60HLCALL MOJ1JC T0E ;和模转移MOV R0,#MINUTEMOV MO,#60HLCALL MOJ1 JC BJ ;和模转移MOV R0,#HOURMOV MO,#24HLCALL MOJ1BJ: . BJ: MOV R2,#16MOV R0,#BIA

59、ODQ1:MOV A,R0INC R0CJNE A,HOUR,DQ11MOV A,R0CJNE A,MINUTE,DQ12CLR ALARM ;相等则报警 NOP SETB ALARMSJMP T0EDQ11:JNC T0E ;“表中时即时时”转 INC R0DJNZ R2,DQ1T0E:POPPOP PSWRETIHOUR EQU 5EH;即时时钟之时MINUTE EQU 5FH;即时时钟之分SECOND EQU 5DH;即时时钟之秒BIAO EQU 60H;32字节作息时间表首地址;用位变量ALARM输出报警信号,0有效。 ALARM bit P1.4 ;初始化为1T1INT 显示要闪烁吗

60、?N第i位显示器显示 Y 是熄灭显示器的半秒吗?YN 第i位要闪烁吗?NYRETIT1INT STATE0?N第i位显示器显示 Y XIMIE=1?YN 第i位要闪烁吗?NYRETI位选择码 SHSHUO00000001 000000010 0 00000100 1 00001000 1 00010000 200100000 2 R3 用位变量XIMIE控制灯的闪烁:1熄灭,0亮。半秒取反XIMIE一次。在T0中断服务程序中设置。初始化为0. 位选择码 SHSHUO00000001 000000010 0 00000100 1 00001000 1 00010000 200100000 2 R

61、3 用位变量XIMIE控制灯的闪烁:1熄灭,0亮。半秒取反XIMIE一次。在T0中断服务程序中设置。初始化为0. T1INT STATE0?N第i位显示器显示 Y XIMIE=1?YNNYRETI SHSHUO=?0 CR3.0R3.1 CR3.2R3.3CR3.4R3.512 C=1?YNXSHbitT1INT STATE0?N第i位显示器显示 Y XIMIE=1?YNNYRETI SHSHUO=?0 CR3.0R3.1 CR3.2R3.3CR3.4R3.512 C=1?YNXSHbit 工作状态变化了吗?Y“显示”的初始化NT1INT STATE0?N第i位显示器显示 Y XIMIE=1?

62、YNNYRETI SHSHUO=?0 CR3.0R3.1 CR3.2R3.3CR3.4R3.512 C=1?YNXSHbit 工作状态变化了吗?Y“显示”的初始化N始于标号:T1INT 终于标号:XSHbit 按按k1切换电子钟工作状态:时钟状切换电子钟工作状态:时钟状态、校时状态、设时状态依次循环。态、校时状态、设时状态依次循环。 时钟状态下显示即时时钟。时钟状态下显示即时时钟。 校时状态下显示即时时钟,但要闪烁校时状态下显示即时时钟,但要闪烁 设时状态显示作息时间序号设时状态显示作息时间序号i,第第i个作个作息时间的时和分。也要闪烁息时间的时和分。也要闪烁 T1INT 保护现场;确定寄存器

63、区;重赋T1初值 ZHTBH=1?NZHTBH0 R0#XUHAOR3#01H R4#XUHAO 状态为设时状态吗?NYZHTBH0 R0#HOURR3#01H R4#HOURXSHbit STATE=0?NY 工作工作状状态的改的改变,显示示内内容可能容可能变化化, ,显示有示有关关的寄存器的寄存器R0,R3,R4R0,R3,R4必必须初始化初始化 位变量ZHTBH为1表示工作状态变化了一次:在K1分支置1,在T1中断服务程序中清0ZHTBH bit 04H ;初始化为0;用三个字节保存及第i个作息时间:i,时,分。XUHAO equ 5AH HOURI equ 5BH MINUTEI eq

64、u 5CH ;用三个字节保存“即时时钟”:分别存放时、分、秒。HOUR equ 5DH MINUTE equ 5EH SECOND equ 5FH STATE0?N第i位显示器显示 Y XIMIE=1?YNNYRETI SHSHUO=?0 CR3.0R3.1 CR3.2R3.3CR3.4R3.512 C=1?YNXSHbit T1INT 保护现场;确定寄存器区;重赋T1初值 ZHTBH=1?NZHTBH0,R0#XUHAOR3#01H,R4#XUHAO 状态为设时状态吗?NYZHTBH0,R0#HOURR3#01H, R4#HOUR恢复现场XSHb;程序功能:第i位显示器显示;入口参数:(R3

65、)位选择码,初始化为01H;(R0)=(R4)=待显示数据的第一字节地址;BANZJ=1显示;数据高半字节,否则显示低半字节,初始化时已设置好为0。;出口参数:无XSHb:MOV A,R3 MOV DPTR,#ZIWEI MOVX DPTR,A MOV A,R0JNB BANZJ,XSH0 ;本次显示低半字节转XSH0CLR BANZJ;下次显示低半字节SWAP A;本次显示高半字节SJMP XSH1XSH0:SETB BANZJ;下次显示高半字节XSH1: ANL A,#0FHMOV DPTR,#DSEG MOVC A,A+DPTR MOV DPTR,#ZXING DIRI:MOVX DPT

66、R,A;改变i,为下一次显示作准备 DSEG: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H位选择码 “待显示数”00000001 第1字节L00000010 第1字节H 00000100 第2字节L 00001000 第2字节H 00010000 第3字节L 00100000 第3字节H R3 R0;程序功能:器第i位显示显示;入口参数:(R3)位选择码,初始化为01H;(R0)=(R4)=待显示数据的第一字节地址;BANZJ=1显示数据;高半字节,否则显示低半字节,初始化时已设置好为0。;出口参数:无XSHb:位选择码 “待显示数”0

67、0000001 第1字节L00000010 第1字节H 00000100 第2字节L 00001000 第2字节H 00010000 第3字节L 00100000 第3字节H R3 R0;改变i,为下一次显示作准备 MOV A,R3JB ACC.5,LDI ;是否显示到第5位显示器?RL A ;为显示第i1显示器,准备“位选择码”MOV R3,A;“位选择码”暂存R3 JB BANZJ,XSHIE;下次显示高半字节转XSHIEINC R0 ;刚显示高半字节,R0指向待显数据下一个字节地址SJMP XSHIELDI:MOV R3,#01H ;为显示第0位显示器,“位选择码”暂存R3MOV A,R

68、4MOV R0,A ;为显示第0位显示器,R0指向显示数据第一字节地址CLR BANZJ;准备显示数据的低半字节XSHIE: POP APOP PSWRETIDSEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,84HXSHb:MOV A,R3 MOV DPTR,#ZIWEI MOVX DPTR,A MOV A,R0JNB BANZJ,XSH0CLR BANZJSWAP ASJMP XSH1XSH0:SETB BANZJXSH1: ANL A,#0FHMOV DPTR,#DSEG MOVC

69、A,A+DPTR MOV DPTR,#ZXING DIRI:MOVX DPTR,A;程序功能:显示器第i位显示;入口参数:(R3)位选择码;(R0)=(R4)=待显示数据的第一字节地址;BANZJ=1显示数据高半字节,否则显示低半;字节。初始化时BANZJ设置为0。位选择码 “待显示数”00000001 第1字节L00000010 第1字节H 00000100 第2字节L 00001000 第2字节H 00010000 第3字节L 00100000 第3字节H R3 R0MOV A,R3JB ACC.5,LDI ;是否显示到第5位显示器?RL A ;为显示第i1显示器,准备“位选择码”MOV

70、R3,A;“位选择码”暂存R3 JB BANZJ,XSHIE;下次显示高半字节转XSHIEINC R0 ;刚显示高半字节,R0指向待显数据下一个字节地址SJMP XSHIELDI:MOV R3,#01H ;为显示第0位显示器,“位选择码”暂存R3MOV A,R4MOV R0,A ;为显示第0位显示器,R0指向显示数据第一字节地址CLR BANZJ;准备显示数据的低半字节XSHIE: .DSEG: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,84H T1INT: PUSH PSWPUSH MOV

71、 TH1,#0F8HMOV TL1,#30HCLR RS0SETB RS1JNB ZHTBH,XSHbitMOV A,STATECJNE A,#1,ZHT1MOV R0,#XUHAO MOV R4,#XUHAOMOV R3,#01HSJMP XSHbitZHT1:MOV R0,#HOUR MOV R4,#HOUR MOV R3,#01HXSHbit:.T1INT:.XSHbit: MOV A,STATEJNZ XSHbJNB XIMIE,XSHbMOV A,SHSHUOCJNE A,#1,EQU02EQU1:MOV A,R3MOV C,ACC.2ORL C,ACC.3SJMP PDCEQU02: JNC EQU2EQU0:MOV A,R3MOV C,ACC.0ORL C,ACC.1SJMP PDCEQU2: MOV A,R3MOV C,ACC.4ORL C,ACC.5PDC:JNC XSHbPOP APOP PSWRETIXSHb:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号