8253计数器/定时器实验

本文介绍了如何利用8253定时器配合单脉冲按钮,通过工作方式3实现LED灯的5次亮灭切换。首先设置了两个计数通道,一个计数50000次对应0.01秒周期,另一个计数1000次对应10秒周期。然后,通过单脉冲信号触发计数,当达到预设次数时改变LED状态。
摘要由CSDN通过智能技术生成

实验题目一:完成计时功能(定时灯的亮灭)

题目:编程实现LED灯每隔5秒明暗交替(即LED亮5秒后暗5秒,往复交替)。

分析:

  1. 1. 由交替往复可得知使用工作方式3进行
  2. 2. 由方式3的OUT波形可知,要想实现5秒亮灭的转换,需要实现输出周期为10秒(OUT方波5秒为高电平,5秒为低电平)
  3. 3. 要实现输出周期为10秒(0.1Hz)的方波,需要计数5M Hz / 0.1Hz = 5*106 Hz / 0.1Hz = 5*107 = 50,000,000次。由于每个计数通道最多可以计数65,536次,因此必须采用计数通道级联使用。
  4. 4. 级联即使用通道一先计算5000次,再使用通道2计算1000次,相当于双重for循环,则可实现50000次的计数操作

代码:

CODE  SEGMENT
 ASSUME  CS : CODE
; 通道1初始化,先高后低,方式3,二进制计数
START: MOV  AL , 01110110B  
    MOV  DX , 323h
    OUT  DX , AL

; 通道2初始化,先高后低,方式3,二进制计数
MOV  AL , 10110110B 
    MOV  DX , 323h
    OUT  DX , AL

AGAIN: MOV  AX , 50000 ;通道1初值50000,OUT1输出信号周期为0.01秒
    MOV  DX , 321H 
    OUT  DX , AL
    MOV  AL , AH
    OUT  DX , AL
    
MOV  AX , 1000 ; 通道2送初值1000,OUT2输出方波周期为10秒
    MOV  DX , 322H    ; 10秒方波=5秒高电平+5秒低电平
    OUT  DX , AL
    MOV AL , AH
    OUT  DX , AL
    
JMP  AGAIN
    
CODE  ENDS
END  START 

 

实验题目二:完成计数器功能(输入固定个数的单脉冲信号实现灯的亮灭)

题目:

8253 的端口地址范围为300H—303H,计数通道1的GATE1引脚连接 +5V电源, CLK1引脚连接单脉冲按钮,每按下一次按钮就输入一个单脉冲信号,OUT1引脚连接发光二极管 L0。要求:编写完整汇编语言程序,实现每按5次单脉冲按钮,改变1次发光二极管的亮灭。

分析:

  1. 1. 使用工作方式3完成循环往复的灯亮灭操作
  2. 2. 由于接收到的是随机的单脉冲信号,不是有准确时间规律的信号,因此8053完成的是计数功能,而不是计时功能
  3. 3. 计数5次改变1次灯的亮灭,则设置计数初值为10次

代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值