接口实验 实验四—8253/4 定时/计数器

一、实验目的

  1. 熟悉 8253/4 在系统中的电路接法

  2. 掌握 8253/4 的工作方式及应用编程

二、实验设备、材料

  • 上位机:A86集成环境软件

  • 下位机:微机接口设备80486DX

  • 数根单根线

  • 实验箱如下图

三、实验内容

  • 实验接线图如下(下图中O表示接线柱,红色线为实验需要接的线)

 

  • 3 个计数/定时通道的引脚说明
    1)CLK0-CLK2:计数脉冲信号输入,若CLK 为频率精确的时钟脉冲,则通道可作为定时器。
    定时时间T=时钟脉冲周期t*计数初值N(1s=1MHz*N,1MHz=10^-6,故推出N=10^6)

  • 2)GATE0~GATE2:门控信号输入引脚。
    3)OUT0~OUT2:输出引脚。其形式取决于工作方式。

  • 方式三 可重复计数的方波发生器(N写入后在下一个时钟的下降沿开始计数,方式3计数到达一半时N/2=2变成下降沿,N依次减1直到变成0后再装入4,之后依次重复该操作)

 

  • 控制字(由之前公式算出N=10^6,而计数方式只有BCD计数和二进制计数两种方式。二进制计数最大计数范围:0~65536,二进制计数时8253的每个计数器为16位,因此最大计数值为 2^16=65536,初始值可设置为1~65535,计数器从初始值递减至0,共计数65536次。
    BCD计数最大计数范围:0~10000,BCD计数时8253的16位计数器被分成4位一组,每组表示1位十进制数(0~9)。初始值可设置为 1~9999(若写入 0,实际按 10000 处理),计数器从初始值递减至 0,共完成 10000 次计数。而N此时的值超过了BCD计数和二进制计数的最大值,故需要进行级联,将N分成100*10000一个进行二进制一个进行BCD)

 

  •  实验要求:使用8253/4 两个计数通道级连,采用定时方式工作,周期性的点亮及熄灭发光二极管,周期为 1秒。
    各通道工作方式:
    计数器0工作方式3,初值为 10000;
    计数器1工作方式3,初值100;

  • 补充
    8253控制寄存器地址  203H
    计数器0地址   200H
    计数器1地址   201H
    计数器2地址   202H

代码如下

.486

IO_ADDRESS EQU 200H     ;8254基址值,CS0的起始地址

data segment d1 dw ?

data ends

CODE     SEGMENT

ASSUME CS:CODE,ds:data

START:

             mov ax, data

             mov ds,ax

             MOV DX, IO _ADDRESS+3    ;DX此时是203H,8253控制寄存器地址

             MOV AL, 00110111B    ;计数器0方式3,BCD码计数,先读写低字节再读写高字节

             OUT DX, AL    

             MOV DX, IO_ADDRESS    ;计数器0设置初值

             MOV AL, 0

             OUT DX, AL

             OUT DX, AL    ;写初值10000

             MOV DX, IO_ADDRESS+3

             MOV AL, 01010110B   ;计数器1方式3,二进制计数

             OUT DX, AL    ;只输出低字节

             MOV DX, IO_ADDRESS    ;200H,通道0

              INC DX   ;自增1,201H,通道1

              MOV AL, 100    ;写初值100

ddd:        OUT DX, AL     ;产生1S定时周期脉冲

            nор

            jmp ddd

           HLT

CODE  ENDS

         END START

  • 8254适用于要求更高的场合,更高频率、更稳定的操作,精度更高,有读回功能;8253适用于低频、简单的定时/计数需求。8254与8253引脚相同,24个引脚双列直插式封装。

 四、实验步骤

  1. 运行软件,根据实验内容的描述,编写实验程序。
    在已有实验程序的情况下选择:打开一>工程一>8253/4 定时/计数器(文件目录)一>.project (工程)

  2. 双击 〝8253/4 定时/计数器”(文件名),屏幕显示源文件内容。使用“生成”菜单中“构建或重新构建” 选项,对实验程序进行汇编、连接。

  3. 选“启动调试〞,在状态栏显示程序编译、连接、传送整个过程的相关信息,汇编连接、传送无误的话光标移至源文件中的 START(程序的开始位置)。

  4. 在“调试”菜单中点击“开始调试”。进入调试环境,根据自己的要求选择调试操作,观察调试过程中,指令执行情况,包括各寄存器及数据区内容的变化。我们选择“继续”操作,就是连续的运行程序

  5. 此时,K1 置高电平,然后L1指示灯1秒钟闪烁一次。

五、实验现象以及结论分析

  1. 1s内灯周期性的点亮和和熄灭

  2. 在实验过程中,想要产生想要的实验现象,注意在实验时打开门控信号开关

  3. 由于上述举例周期仅为1s,级联时二进制只用低8位,不需要拆成高字节和低字节。当周期达到3s及以上时使用二进制时会达到300及以上,次数超过了2^8=256需要拆成低8位和高8位来实现需要达到的数值。低8位能表达的最大的数为11111111=255,以300为例需要将高8位的最后一位置为1使数值达到256,再使低8位值达到300-256=44,故需要先读写低字节再读写高字节。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值