实验十、微机接口综合实验:简单计时器

本文介绍了使用STM32进行微机接口综合实验,设计了一个秒为单位的计时器。实验中利用8254定时器产生1秒中断,数码管显示计时,键盘控制启动、暂停、退出等功能。实验涉及8254的中断模式配置、状态管理以及中断服务子程序的编写。计时结束时数码管闪烁提示,同时支持在运行过程中暂停和恢复计时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验十、 微机接口综合实验

1、实验目的

本实验集成了前面几个实验的内容,是一次综合的复习和提高。

2、实验内容

编写程序实现一个以秒为单位的计时器。
要求:计时时间显示在数码管上;用8254、8259和系统时钟产生周期为1秒的计时中断;将键盘进行编号,记作 0 ~ F ,用来输入计时初值,并控制计时器工作。具体功能如下:

  1. 初始状态:无显示,此时通过数字键0~9输入计时初值,范围为1~99分钟,显示在数码管1和2上。
  2. A键(启动/取消):初值设置完成后按A键,从计时初值开始倒计时,数码管1和2显示分,数码管3和4显示秒;计时过程中按A键,停止倒计时,回到初始状态。
  3. B键(暂停/继续):计时过程中按B键,暂停倒计时,显示停止时间;再次按B键,从停止时间继续倒计时。
  4. 计时结束:倒计时至“0000”时,闪烁三次后回到初始状态。
  5. C键(退出):任何时刻按C键,熄灭数码管,程序退出。
3、实验记录

1、按键控制:基于键盘扫描实验的代码,增加 if - else 分支结构实现 ABC 键的不同功能操作。

2、定时器中断:本次实验采用了 8254 的计数器0,将 8254 的 OUT0 端口接到 MIR6 中断,使用方式3产生周期性方波来定时触发中断。

3、状态变量:本次实验要求的计时器有3种状态:初始无显示状态、正在倒计时状态、暂停倒计时状态。另外的退出程序状态和计时结束状态不用考虑(计时结束状态与初始无显示状态可以合并)。

状态转移图

4、代码记录:代码量过多,不会在每个地方都作详解。

A8254 EQU 0600H          	;8254的计数器0地址 
M8254 EQU 0606H      		;8254的控制寄存器地址 
A8255 EQU 0640H				;8255相关地址
B8255 EQU 0642H
C8255 EQU 0644H
M8255 EQU 0646H

DATA SEGMENT
TAB:
	DB 3FH,06H,5BH,4FH 
	DB 66H,6DH,7DH,07H 
	DB 7FH,6FH,77H,7CH 
	DB 39H,5EH,79H,71H,00H
TAB2:
	T6	DB 10H
	T5	DB 10H
	T4
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值