接口定时器与计数器实验定时器实验 下载本文

内容发布更新时间 : 2024/12/26 10:18:25星期一 下面是文章的全部内容请认真阅读。

同组同学学号: 同组同学姓名:

实验日期:2012 年 3月 26日 交报告日期:2012 年 5月 30日 实验(No. 1_1 )题目:定时器与计数器实验(8253)-- 8253定时器实验 实验目的及要求: 实验目的: 1、学习8253可编程定时器/计数器定时方法。 2、学习8253多级串联实现大时间常数的定时方法。 3、学习8088/86控制8253可编程定时器的方法。 实验要求: 用8253对标准脉冲信号进行计数,就可以实现定时功能。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。 实验电路及连线: 连线 1 2 3 4 5 6 7 连接孔1 8253_CS 8253_OUT0 8253_GATE0 8253_CLK0 8253_GATE1 8253_CLK1 4MHz 连接孔2 CS4 L0 VCC 8253_OUT1 VCC F/4(1M) Fin 实验说明: 1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。 2、由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0 的输出接到LED0。 1 / 6

实验框图: 主程序框图 源程序及分析: CONTROL equ 0c003h ;设置命令寄存器 COUNT0 equ 0c000h ;设置计数器0 COUNT1 equ 0c001h ;设置计数器1 COUNT2 equ 0c002h ;设置计数器2 code segment assume cs:code start proc near ;第一次定时器设定: mov al, 36h; ; 计数器0,16位,方式3,二进制 (00110110B=36h) mov dx, CONTROL out dx, al mov ax, 1000 2 / 6

mov dx, COUNT0 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 ;第二次定时器设定 mov al,01110110B; ; 计数器1,16位,方式3,二进制 mov dx, CONTROL out dx, al mov ax, 1000 mov dx, COUNT1 out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 jmp $ start endp code ends end start 实验(No. 1-2 )题目:定时器与计数器实验(8253)-- 8253计数器实验 实验目的及要求: 实验目的: 1、学习8088/86与8253的连接方法。 2、学习8088/86对8253的控制方法。 实验要求: 利用8088/86 外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。 3 / 6

实验电路及连线: 连线 1 2 3 4 实验说明: 连接孔1 8253_CS 8253_OUT0 8253_GATE0 8253_CLK0 连接孔2 CS0 L0 VCC 单脉冲 本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT脚输出一个高电平。实验时,可以将OUT0 接到LED上,观察计数器是否工作。 实验框图: 主程序框图 源程序及分析: CONTROL equ 08003h COUNT0 equ 08000h COUNT1 equ 08001h COUNT2 equ 08002h code segment assume cs:code start proc near mov al, 30h ; 通道0,方式0 mov dx, CONTROL out dx, al mov al, 5 ; 计数器初始值。 4 / 6

mov dx, COUNT0 out dx, al ; 低八位 mov al, 0 out dx, al ; 高八位 Again: mov al, 00000000B ; 锁存计数器值 mov dx, CONTROL out dx, al mov dx, COUNT0 in al, dx ; 读入计数值低八位 mov bl, al in al, dx ; 读入计数值高八位 mov ah, al mov al, bl jmp Again start endp code ends end start 实验心得: 通过本次实验我更加熟练的用8253对标准脉冲信号进行计数,并实现定时功能。并且学会了使用8253可编程定时器/计数器定时方法,多级串联实现大时间常数的定时方法和8088/86控制8253可编程定时器的方法。也是我对接口的软件编程有了初步的认识,使我对以后接口程序的设计奠定了基础。 教师评语: 成绩: 教师签字: 年 月 日

5 / 6