长安大学汇编课设实现9-0S的秒表计数(西安唐都仪器实验箱)

这篇博客详细介绍了如何利用8254定时/计数器、8255接口和拨码开关设计一个能够显示9-0秒并带有LED闪烁功能的数码显示定时器。程序通过读取拨码开关状态控制计数开始和结束,数码管显示通过8255单元实现位选和段选,8254单元产生1s时延。当计数到0时,LED闪烁报警,再次检测拨码开关状态以确定程序是否结束。
摘要由CSDN通过智能技术生成

题目:数码显示定时器

本程序主要功能是用一个由八段共阴极LED显示器组成的显示装置和一个外接CLK=1.8432MHz的8254定时/计数器,组成一个用于显示9-0s的计数器,当计数结束时使LED闪烁,利用拨码开关控制计数开始和程序结束。
本程序主要设计步骤如下:
1.利用拨码开关控制计数开始和程序结束,利用8255单元进行拨码开关状态的输入,通过拨码开关的状态判断是否开始计数,计数完成再次判断拨码开关状态是否结束程序。
2.利用8255单元实现数码管的位选和段选来显示数字9-0。
3.利用8254单元产生所需要的时钟信号,使数字变化的时间接近1s。
4.计数值为0时,通过8255单元控制LED灯进行闪烁。
**

每个模块的功能利用简述

**
1拨码开关的控制功能的实现
将8255单元端口A中的PA7引脚与开关及LED显示单元中的K7相连接,初始化8255单元时, 将8255的A口设置为输入端,CPU读8255 A口即可获得当前拨码开关的状态。该位为‘1’表示拨码开关K7打开,计数开始。该位为‘0’表示拨码开关关闭,CPU继续进行对拨码开关状态的监测。
2 数码管数字显示的实现
将8255单元中的B端口和数码管显示单元的A-DP引脚进行连接,A端口中的PA0-PA5和数码管显示单元的X1-X6引脚连接。初始化8255单元。每次调用显示程序的时候通过写入0DFH到A口进行数码管的位选让最右端数码管使能,其他的数码管不使能。通过事先定义的数码管段选表,将数字转化为相应的数码管段选二进制形式,再通过对B端口的写入进行数字显示。
3 1s时延的实现
将8254单元中的CLK0接口和实验箱上1.8432MHz的时钟源进行连接,OUT0端口与MIR7端口相连,8259加载MIR7中断向量,初始化8254,设置控制字为计数器0和方式3,并设置合理的计数初值,每次8254计数完毕OUT0端口即产生一个上升沿的脉冲信号触发MIR7中断,一个计数器时延远小于1s,通过程序控制中断的次数实现时间的累加使时延达到1s。

这个实验的接线图如下

在这里插入图片描述

如见流程如下:

1.程序开始后,装入中断程序,初始化8254、8259、8255三个接口芯片,LED灯及开关控制单元都是关闭的,并且屏蔽了IR7中断。
2.接下来进入主程序,CPU读8255A口,提取最低位获得拨码开关状态,该位为0表示这个时候还没有按下开关,反之则按下了开关,此时就开始计数和进行数码管的数字显示功能。
3.每次8254单元计数完毕之后就会产生一次脉冲触发MIR7中断,然后程序中初始设计的计数值就减一,在这个时候判断MIR7中断的次数是否达到初始设置的上限值,如果达到了上限值,那么就进行下一秒的显示。在进行下一秒的显示的时候也判断当前是否计数值为0,若这个时候计数值为0,那么就会跳转到EEE子程序。
4.在EEE子程序中进行LED灯闪烁的控制,LED灯的状态通过FFH和00H实现LED灯状态的转换,每次状态的改变的时候都通过软件延时一段时间,让灯亮的时间或者灭的时候持续一段时间,实现LED闪烁。
5.在LED灯的显示中,通过8255单元对K7拨码开光状态的检测,此时若按下了K7拨码开关,说明用户已经知道计时结束,退出整个程序。
程序的流程图以及中断程序的流程图如图5.1和图5.2所示。

在这里插入图片描述

系统的源码设计如下:



IOY1         EQU  0640H        	;IOY1起始地址
IOY2		 EQU  0680H

;SPK 		EQU IOY2

;8254
A8254    EQU  IOY1+00H*8
B8254    EQU  IOY1+01H*8
C8254    EQU  IOY1+02H*8
CON8254  EQU  IOY1+03H*8

IOY0         EQU   0600H          ;片选IOY0对应的端口始地址

MY8255_A     EQU   IOY0+00H*
  • 3
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
汇编语言课设 设计时钟 实现整点报时,实测没有错误。掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;n 掌握实时处理程序的编制和调试方法。实验要求:设计一个定时显示装置,用实验仪的八个LED数码管显示时间,时间显示格式为24小时制,如14-35-45。具体完成如下几个功能:1) 通过键盘设置时间。2) 整点报时功能。分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。3) 设置闹钟功能。闹钟时间到,蜂鸣器开始鸣叫,鸣叫时间最长半分钟。可通过按键停止蜂鸣。 键盘控制时钟的启停和时间的设置,键的定义参见上图。F键(启停键)—— 程序启动后,按下该键时钟启动;再次按下该键,暂停计时,显示当前时间。C键(设置键)—— 按下C键后,为时钟设置时、分、秒初始值。D键(设置键)—— 按下D键后,设置闹钟的时、分初始值。E键(闹钟控制键)——闹钟响的时候,按下该键,闹钟停止。实验设备:8255系列模块;8253模块;8259模块。实验提示: (1)硬件连线键盘的控制、LED显示模块——用8255控制;时间的精确定时——用8253定时器1s的中断信号;整点报时控制—— (2)软件编程程序中设置一个启停标志stop,当stop值为0时启动时钟;stop值为0FFH时,暂停时钟。当时间的分秒值为59分55秒时,用8255控制8253的GATE1,设置为1,启动定时器1工作,报时。时间到整点后,GATE1清0。程序由以下模块组成: 主程序模块:对8253、8259A等芯片进行初始化,设置中断向量,扫描键盘,根据按键值作相应的处理。流程图参见下图。注意:设置初始时间时要考虑边界,时间的最大值为23:59:59,不能超出此范围。8253中断服务程序:刷新一遍数码管,计时时间到一秒,修改当前时间,整点报时。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值