当前位置:文档之家› 第九章 定时器计数器 8253

第九章 定时器计数器 8253

第九章 定时器计数器 8253
第九章 定时器计数器 8253

第十章可编程定时器/计数器接口芯片8253内容提要:

1.8253的内部结构;

2.8253的引脚功能;

3.8253的工作方式;

4.8253的编程;

5.8253的应用举例。

6.8253应用实验

学习目标:

1.掌握8253的工作方式和编程;

2.掌握8253的编程结构及其引脚功能;

3.掌握8253的应用。

难点:

8253的工作方式异同。

学时:5

实验学时:0

作业:

一、单项选择题

1.8253有个独立的计数器。

A)2 B)3 C)4 D)6

2.当写入计数初值相同,8253的方式0和方式1不同之处为。

A)输出波形不同 B)门控信号方式0为低电平而方式1为高电平

C)方式0为写入后即触发而方式1为GATE的上升边触发

D)输出信号周期相同但一个为高电平一个为低电平。

3.如果计数初值N=9,8253工作在方式3,则高电平的周期为个CLK。

A)5 B)6 C)3 D)4

4.8253的控制信号为CS=0、RD=0、WR=1、A1=0、A0=0表示。

A)读计数器1 B)读计数器0 C)装入计数器1 D)装入计数器0 5.与8253工作方式4输出波形、相同的是。

A)方式1 B)方式3 C)方式2 D)方式5

二、多项选择题

1.8253计数器工作在方式时,GATE的上升沿启动计数。

A)0 B)1 C)2 D)3 E)4 F)5

2.当8253的GATE信号由高变低时,方式停止计数。

A)0 B)1 C)2 D)3 E)4 F)5 G)以上都不是3.8253计数器的计数值可以为。

A)二进制数 B)BCD数 C)八进制数 D)ASCII码4.8253六种工作方式中具有自动加载功能的是。

A)方式0 B)方式1 C)方式2

D)方式3 E)方式4 F)方式5

三、填空题

1.实时定时和计数有和两种实现方法。

2.硬件定时分为和两种方法。

四、应用题

某系统利用8253-5定时器/计数器通道产生1KHZ重复方波,问通道0应工作在什么工作方式?若CLK0=2MHZ,试写出通道0的初始化程序。设8253-5端口地址为2F0H、2F2H、2F4H、2F6H。

一、8253的内部结构

1. 数据总线缓冲器

是8253与CPU DB连接的8位双向三态缓冲器,CPU通过它向8253写方式控制字到控制字寄存器中,写计数初值到计数通道,读取计数通道的当前计数值。

2. 读/写控制逻辑

无效,8253的DB处于高阻状态,当有效,和A1、

控制8253内部操作。当

A0、

注意点:CPU对控制字寄存器只能写,不能读;

CPU对计数通道写的是计数初值,读的是当前计数值。

3. 控制字寄存器

8253初始化编程时,CPU写控制字到控制字寄存器,以选择计数通道及相应的工作方式。

4. 数通道0~2

8253内部包括3个功能完全相同和操作完全独立的计数通道,每个计数通道由16位减法计数器、16位计数初值寄存器和16位计数值锁存器组成。初始化时,向计数通道装入的

计数初值,先送到计数初值寄存器中保存,然后送到减法计数器。计数器启动后,减法计数器对CLK的下降沿进行减1计数,在未锁定时把结果送入16位计数值锁存器中。当计数值减到0时,输出OUT信号,一次计数结束。计数初值寄存器的内容,在计数过程中保持不变。计数初值寄存器和计数值锁存器占用一个端口地址(即该计数通道口地址),CPU读取计数通道的当前计数值来自计数值锁存器。

各通道可工作在计数器方式,此时被计数的事件以脉冲方式从CLK输入;

各通道可工作在定时器方式,此时确定频率的时钟脉冲从CLK输入。

计数初值=定时时间÷CLK周期

各通道的启动、禁止、允许计数与门控信号GA TE有关,GATE的作用OUT的输出波形随各通道工作方式不同而不同。

二、8253的引脚功能

1. 与CPU相连的引脚

D7~D0:双向三态DB;

:写,低电平有效;

:读,

A1A0:片内端口选择。

2. 计数通道引脚

CLK2~CLK0:计数脉冲输入;

OUT2~OUT0:当计数值减到0时,OUT有输出,输出波形取决于通道工作方式;

GA TE2~GATE0:门控信号输入,是控制计数器工作的一个外部信号,它的作用是用来禁止、允许或启动计数过程的。每个计数通道均有6种不同工作方式,GATE信号的控制作用不同。GATE信号总是在CLK的上升沿被采样。

三、8253的工作方式

Intel 8253的每个计数通道都有6种工作方式可供选用。这6种工作方式主要有5点不

同。一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GA TE对计数操作的影响不同;三是OUT输出波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程不同。上述五点不同,有相互关联,学习时应灵活运用。

1. 方式0—计数结束时中断

当写入控制字后,OUT立即变为低电平;启动计数方式:软启动。即仅当GA TE为高电平时,在写入计数初值后的第一个CLK下降沿到来时,计数初值寄存器的内容装入到减法计数器中,此后减法计数器对每一个CLK下降沿作减法计数,直到计数结束。在计数过程中,OUT一直维持低电平,直至减法计数器减到0时,OUT变高。见图10.1~10.3。

具有以下特点:

1)计数器只计一遍。当计到0时,减法计数器不恢复计数初值,不开始重新计数,且OUT保持高电平。只有重新写入计数初值后,OUT才变低,开始新的计数;

2)启动计数方式:软启动。

3)GATE为低电平时,计数暂停,当GATE变高后就接着计数。在计数过程中,GATE 的变化不影响OUT的状态。

4)计数过程中可重新写入计数初值。如果是8位计数初值,在写入新的计数初值后,计数器将按新的计数初值重新开始计数;如果是16位计数初值,在写入第一个字节后,计数器停止计数,在写入第二个字节后,计数器按照新的计数初值开始计数。

5)8253没有中断控制电路,也没有专用中断请求线。若要中断,则可用OUT的正跳变作为中断请求信号。

2. 方式1—可编程序的单拍负脉冲

当写入控制字后,OUT立即变高,计数初值写入后,计数器并不开始计数,启动计数方式是硬启动。即要有GA TE上升沿触发,在GATE信号上升沿之后的第一个CLK下降沿到来时将计数初值装入减法计数器,OUT立即变低,然后开始减1计数过程。在整个计数过程中,OUT维持低电平,直至计到0,OUT变高。因此OUT输出一个单拍负脉冲。若想再输出一个单拍负脉冲,必须再次用GA TE上升沿触发,否则OUT维持高电平。见图10.4~10.6。

具有以下特点:

1)启动计数方式是硬启动。

2)若初值为N,则OUT输出的单负脉冲低电平宽度为N个CLK周期;

3)当计到0后,可再次有GA TE触动启动计数器计数,输出一个同样宽度的单负脉冲,而不必再次送计数初值;

4)在计数过程中,若计数器没有减到0,又有GA TE上升沿触发,则OUT仍为低,计数器重新计数,直至计到0,OUT变高,其作用使OUT输出的单负脉冲宽度加宽。

5)在计数过程中,若写入一个新的计数初值,这时计数过程不受影响,要等GA TE再次触发后,才按新的计数初值重新开始计数。

3. 方式2—频率发生器

当写入控制字后,OUT立即变高,写入计数初值后,如果GATE为高,则计数器立即开始计数。在计数过程中,OUT维持高电平,对每个计数脉冲作减2计数直至计到1时,OUT由高变低,经过一个CLK周期,OUT恢复为高,若GATE仍为高,计数器又开始重新计数。见图10.7。

具有以下特点:

1)启动计数方式是硬启动或软启动。

2)能够连续工作。若CLK为一定频率的时钟脉冲,计数初值为N,只要保持GATE 为高电平,则OUT输出波形的周期为N个CLK周期,其中高电平宽度为N-1个CLK周期,低电平宽度为1个CLK周期,见图10.7。

3)若在计数过程中,GA TE变为低电平,则计数器立即停止计数。在GATE变为高后的下一个CLK使减1计数器恢复计数初值,重新开始计数。

4)在计数期间,如果向计数器写入新的计数初值,这对正在进行的计数过程没有影响,但在计到1输出一个CLK宽度的负脉冲后,计数器将按新的计数初值开始计数。

4. 方式3—方波发生器

与方式2基本相同,也具有自动装入计数初值的能力,OUT输出波形也是周期性的,唯一不同的是OUT输出波形占空比不同。若初值N为偶数,在装入计数初值后,每一个CLK使减法计数器减2,当减到0,一方面OUT输出改变状态,另一方面又重新装入计数初值开始新的计数,OUT输出波形为方波,其重复周期为N个CLK周期;若初值N为奇数,则在装入计数初值后,第一个CLK使减法计数器减1,以后每个CLK使计数器减2,当计到0,OUT输出改变状态,同时重新装入计数初值,这以后第一个CLK使计数器减3,以后每一个CLK使计数器仍减2,直至计到0,OUT恢复高电平,重复上述过程。OUT输出波形重复周期为N个CLK周期,其中高电平宽度为(N+1)/2个CLK周期,低电平宽度为(N-1)/2个CLK周期。见图10.8、10.9。

具有以下特点:

和方式2类似,唯一不同的是OUT输出重复波形占空比不同。

5. 方式4—软件触发

当写入控制字后,OUT立即变为高电平,启动计数方式是软启动,启动计数后则计数器开始减1计数,当计到0时,OUT变低,经过一个CLK周期,OUT输出一个宽度为一个CLK周期的负脉冲,见图10.10。

具有如下特点:

1)启动计数为软启动;

2)计数初值一次有效,只有再次输入计数初值,才开始新的计数;

3)在计数过程中,若GATE变低,则停止计数,待GA TE变高后,不是继续计数,而是恢复计数初值重新计数,GATE不影响OUT;

4)若在计数过程中,写入一个新的计数初值,对本次计数过程无影响,而是等到计数过程结束,新初值才装入到减法计数器,使下一次计数按新的初值进行。

6. 方式5—硬件触发

当写入控制字后,OUT立即变为高电平,启动计数为硬启动,启动计数后,作减1计数,当计到0时,OUT变低,经过一个CLK周期,OUT又变高,停止计数,待到下一次GA TE触发,才能再次从初值开始计数。见图10.11。

具有以下特点:

1)启动计数为硬启动;

2)输出波形与方式4相同;

3)在计数过程中,若有GATE触发,则计数器重新从初值开始计数,但不影响OUT;

4)在计数过程中,若写入一个新的计数初值,只要没有GA TE触发,不影响计数过程。现行计数计到0后,若有GA TE触发,则按新的计数初值开始计数。但在计数过程中,若写入一个新的计数初值后,有GA TE触发,则立即按新的计数初值重新开始计数。

四、8253的编程

方式控制字:写到控制字寄存器。

格式:D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

SC1 SC0:计数器选择,00:计数通道0;

01:计数通道1;

10:计数通道2;

11:非法。

RL1RL0:规定CPU向计数通道写入的计数初值格式或规定CPU读取计数通道锁存器当前计数值格式。

计数器可写入8位数据,也可写入16位数据,而写入的8位数据又可分为两种格式:仅写低8位,则高8位自动置0,或仅写高8位,则低8位自动置0。写入16位数据时,应先写入低8位,后写入高8位。

若RL1 RL0=00,锁存计数器当前值,使锁存器不随计数器值变化而变化;

RL1 RL0=01,只读/写低8位数据;

RL1 RL0=10,只读/写高8位数据;

RL1 RL0=11,读/写16位数据,先读/写低8位,后读/写高8位。

M2M1M0:工作方式选择

若M2M1M0=000,方式0;

M2M1M0=001,方式1;

M2M1M0=×10,方式2;

M2M1M0=×11,方式3;

M2M1M0=100,方式4;

M2M1M0=101,方式5。

BCD:BCD=1,计数器按BCD计数,计数初值0000~9999;

BCD=0,计数器按二进制计数,计数初值0000~FFFFH。

计数初值为0000时最大,对于BCD计数,0000代表10000;

计数初值为0000时最大,对于二进制计数,0000代表10000H。

计数初值必须跟在控制字之后,即先写控制字,后写计数初值。

五、8253的应用举例

例10. 1 用8253监视一个生产流水线,每通过100个工件。蜂鸣器响6s。频率为1000HZ。

① 硬件连接:硬件接口示意图如图10. 12所示,工件从光源与光敏电阻之间通过时,在晶体管的发射极上会产生一个脉冲,此脉冲作为8253计数通道0的计数脉冲,当通道0计数满100后,由OUT0输出负脉冲,经反相后作为8259A 的一个中断请求信号,在中断服务程序中,启动8253计数通道1工作,由OUT1连续输出1000HZ的方波,持续6s后停止输出。

② 控制字设置:通道0计数器工作于方式2,采用BCD计数,因计数初值为100,采用RL1RL0=10(读/写计数器的高8位),则方式控制字为00100101B。

通道1计数器工作于方式3,CLK1接2MHZ时钟,要求产生1000HZ的方波,则计数初值应为2000000÷1000=2000,采用RL1RL0=10(只读/写高8位),BCD 计数,则方式控制字为01100111B。

③ 程序编制:假设8253通道0的地址为40H,通道1的地址为42H,控制口地址为46H。8255A的A口地址为80H,工作于方式0输出。

则主程序为:

MOV AL,25H ;通道0初始化

OUT 46H,AL

MOV AL,01H ;计数初值高8位,低8位自动清零 OUT 40H,AL

STI ;开中断

LOP: HLT ;等待中断

JMP LOP

中断服务程序为:

MOV AL,01H ;通道1的GATE1置1,启动计数 OUT 80H,AL

MOV AL,67H ;通道1初始化

OUT 46H,AL

MOV AL,20H ;计数初值高8位,低8位自动清零 OUT 42H,AL

CALL DL6s ;延时6s

MOV AL,00H ;通道1的GATE1置0,停止计数 OUT 80H,AL

┇ ;向8259A发中断结束命令 IRET

六、8253定时/计数器应用实验

微机接口 8253定时器实验报告剖析

浙江工业大学计算机学院实验报告 实验名称 8253定时器实验 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 计数器方式2实验:将8253芯片的计数器0的工作方式设置为方式2,计数器初值为N,用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用TPC-USB平台上的LED 灯观察OUT0电平变化(当输入第N倍数个脉冲后OUT0变低电平,LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态)。 计数器方式3实验:将计数器0、计数器1的工作方式分别设置为方式3,计数初值设为1000,并同时用TPC-USB平台上的LED灯观察OUT1电平变化(频率1Hz)。 1.2 实验要求 (1)具有一定的汇编编程的基础,能编写一些基本语句来实现实验。实验前根据实验流程 图,写出对应代码; (2)要了解8253定时/计数器芯片内部结构和外部引脚,了解芯片的硬件连接方法、时序关 系、各种模式的编程及应用,能熟练地对其进行编程; (3)熟悉实验平台TPC-USB了解各个接口的名称与功能,进行实验时能快速并正确地连接 好实验电路; (4)计数器方式2实验:连接PC与TPC-USB平台,用微机实验软件运行程序,用手动开 关逐个输入单脉冲,在屏幕上能一次显示计数值,当输入第N倍数个脉冲后OUT0变低电平,TPC-USB平台上的LED灯由亮变灭,其余脉冲OUT0都是高电平,LED灯都处于亮状态; (5)计数器方式3实验:连接PC与TPC-USB平台,用微机实验软件运行程序,TPC-USB 平台上的LED灯能周期性地亮灭,频率为1Hz。 二、实验原理与硬件连线 2.1 实验原理 1、8253定时/计数器芯片的内部结构:

8253定时器、计数器仿真实验报告

实验名称8253定时器/计数器仿真实验学生姓名 学生学号 专业班级 指导老师 2014-12-31

实验五8253定时器/计数器仿真实验 一、实验目的 1.针对特定的芯片,学会用Proteus ISIS设计仿真电路图; 2.掌握8253工作原理,对8253进行仿真; 3.了解电路一般仿真方法。 二、实验内容 1.配置Proteus仿真环境; 2.根据电路图,用合适的代码对其进行仿真。 三、实验步骤 1.安装Proteus和masm32编译器; 2.在Proteus里配置masm32编译器。配置过程如下: 图1 添加/移除代码生成工具(1) a)把masm32.bat 复制到c:\masm32\bin 里面(c:\masm32 为你自己安 装masm32的路径);

b)启动Proteus ISIS 后,选择菜单源代码——>设定代码生成工具。 打开如图1所示; c)点击“新建”,然后选择c:\masm32\bin\masm32.bat文件,就出现图 2; 图2 添加/移除代码生成工具(2) d)图中红圈位置分别填上ASM 和EXE。然后点确定。使用masm32 编 译器就配置好了。 3.在画好电路图后,选择菜单源代码——>添加/删除源文件。出现图3; 图3 添加/移除源代码(3) 4.代码生成工具选择masm32,然后点新建,创建自己的源代码。比如 8253.asm,点确定; 5.接下来点击源代码——>1.8253.asm,编辑自己的代码。完成后保存; 6.点击源代码——>全部编译。出现图4表示编译成功,表示程序可以执

行。 图4 代码成功编译 7.点击Proteus中的调试菜单的相应功能,完成仿真。 四、实验结果 1.仿真电路图如图5所示; 图5 8253仿真电路图

8253定时器(微机原理)1

接口实验三 8253定时器 / 计数器 一、实验目的 ⒈学会8253芯片和微机接口的原理和方法。 ⒉. 掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1. 用8253的0通道产生周期为30毫秒的方波,去控制发光二极管的亮和灭。 2.用8253的0通道和1通道级联的工作方式,产生周期为20秒的方波,去控制发光二极管的亮和灭。 3. 用8253的0通道产生1、2、3、4、5、6、7、8(1的高音)这八个音阶频率的方波信号,送到小喇叭去控制其发声。 三、实验接线图 图1

图2 图3 图6-5 四、实验原理 对8253编程,使OUT1输出周期为2MHZ(周期为0.5μS)的时钟直接加到CLK1,则OUT1输出的脉冲周期最大只有0.5μS*65536=32768μS=32.768MS,达不到20秒的延时要求,为此,需用几个通道级连的方案来解决这个问题。 设N0=5000,工作于方式2,则从OUT0端可得到序列负脉冲,频率为2MHZ/5000=400HZ,周期为2.5MS。再把该信号连到CLK1,并使通道1工作于方式3,使OUT1输出周期为20秒(频率为1/20=0.05HZ)的方波即可,应取时间常数N1=400HZ/0.05HZ=8000。

分频电路由一片74LS393组成, T0-T7为分频输出插孔。该计数器在加电时由RESET信号清零。当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。 五、编程指南 ⒈8253芯片介绍 8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。 8253的功能用途: ⑴延时中断⑸实时时钟 ⑵可编程频率发生器⑹数字单稳 ⑶事件计数器⑺复杂的电机控制器 ⑷二进制倍频器 2,8253的六种工作方式: ⑴方式0:计数结束中断⑷方式3:方波频率发生器 ⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号 ⑶方式2:频率发生器⑹方式5:硬件触发的选通信号 六、实验程序框图 七、实验步骤 ⒈按图1连好实验线路 ⑴8253的GATE0接+5V。

8253计数器定时器接口实验

微机原理实验报告 实验五 8253计数器/定时器接口实验 1.实验目的 1)学会通过PC总线、驱动器、译码器等在PC机外部扩充为新的芯片; 2)了解8253计数器/定时器的工作原理; 3)掌握8253初始化的程序设计; 4)掌握8253方式0的计数方式的使用方法和方式3方波产生的方法。 2.实验内容 将实验装置上的1片8253定时器/计数器接入系统,具体做两个内容的实验。 1)实验一:将8253的计数器0设置为工作于方式0,设定一个计数初值,用手 动逐个输入单脉冲,观察OUT0的电平变化。 硬件连接:断开电源,按图2-1将8253接入系统。具体包括: (1)将8253的CS接I/O地址输出端280H-287H; (2)将8253的计数器0的CLK0与单脉冲信号相连,以用来对单脉冲进行计数; (3)将8253的GATE0用专用导线接向+5V,以允许计数器0工作; (4)将8253的OUT0接到LED发光二极管,以显示8253计数器0的输出OUT0的 状态。 图2-1 8253实验一的连线图 2)实验二:将8253的计数器0、1均设置为工作于方式3(方波),按图2-2重 新接线。要求是当CLK0接1MHz时,OUT1输出1Hz的方波,OUT的输出由LED 显示出来。将计数器0与计数器1串联使用,计数器0的输出脉冲OUT0作为计数器1的时钟输入CLK1。

图2-2 8253实验二的连线图3.程序及框图 1)程序框图 图4-1给出了8253实验一的流程图。 图4-1 程序流程图 图4-2给出了8253实验二的流程图。 2)程序代码 实验一程序代码: CTRL EQU 283H TIME0 EQU 280H TIME1 EQU 281H DATA SEGMENT MESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDS CODE SEGMENT

接口定时器与计数器实验定时器实验

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

实验框图: 主程序框图 源程序及分析: 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

实验电路及连线: 连线连接孔1 连接孔2 1 8253_CS CS0 2 8253_OUT0L0 3 8253_GATE0VCC 4 8253_CLK0单脉冲 实验说明: 本实验中计数器按方式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 ; 计数器初始值。

可编程定时器计数器(8253) 实验报告

实验名称可编程定时器/计数器(8253)学生姓名 学生学号 专业班级 指导老师 2015-1-7

实验六可编程定时器/计数器(8253) 一、实验目的 掌握8253芯片和微机接口原理和方法,掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1.设计8253定时器/技术器仿真电路图; 2.根据仿真电路图,编写代码,对8253定时器/计数器进行仿真。 三、实验要求 1.要求计数器2工作于模式1(暂稳态触发器),计数初值为1250; 2.计数器0工作于方式3(方波模式),输出一个1KHz的方波,8253的 输入时钟为1MHz,计数初始值格式为BCD。 3.8253与系统的连接如图1所示。 图1计数器8253与8086连接原理图

注:实验过程中,发现图1有误。应将8253定时器/计数器右边部分的电阻R2与按钮交换位置。 四、实验原理 8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。 8253的工作方式3被称作方波发生器。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。 进入工作方式3,OUTi输出低电平,装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。 8253定时器/计数器控制字决定这定时器0,1,2的工作模式。一旦CPU对控制字进行写操作,且对相应的定时器有效,则相应定时器改变工作模式,可能准备接收计时初值。控制字的格式如图2所示。

实验三 8253定时器

实验三8253定时器/计数器实验 姓名:张朗学号:11121535 一、实验目的 1. 学会8255芯片与微机接口的原理和方法。 2. 掌握8255定时器/计数器的工作原理和编程方法。 二、实验内容 编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。 1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。 2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。 3.上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。 三、实验区域电路连接图

CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1; GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元) 四、程序框图 五、编程

1.T=1.48s CODE SEGMENT ASSUME CS:CODE ORG 1200H START: CLI MOV DX, 0043H MOV AL, 34H OUT DX, AL MOV DX, 0040H MOV AL, 0EEH OUT DX, AL MOV AL, 02H OUT DX, AL MOV DX, 0043H MOV AL, 76H ;01110110设置计数器1,方式3,16位二进制计数OUT DX, AL MOV DX, 0041H MOV AL, 0E8H OUT DX, AL MOV AL, 03H OUT DX, AL JMP $ ;8253自行控制led灯 CODE ENDS END START

实验一 8253方波实验

实验一8253方波实验 一、实验目的 (1)学会8253芯片和微机接口原理和方法。 (2)掌握8253定时器/计数器的工作方式和编程原理。 二、实验仪器 示波器教学机电脑 三、实验内容 8253的0通常工作在方式3,产生方波。 四、程序框图 五、实验电路 六、编程提示 8253芯片介绍 ,用+5V 8253是一种可编程定/计数器,有三个十六位计数器,其计数频率范围为0~2MH Z 单电源供电。 8253的功能用途: (1)延时中断 (2)可编程频率发生器 (3)事件计数器 (4)二进制倍频器 (5)实时时钟 (6)数字单稳 (7)复杂的电机控制器 8253的六种工作方式: (1)方式0:计数结束中断 (2)方式1:可编程频率发生 (3)方式2:频率发生器 (4)方式3:方波频率发生器 (5)方式4:软件触发的选通信号 (6)方式5:硬件触发的选通信号

8253的0号通道工作在方式3,产生方波。 七、程序清单 通道0工作在方式3:00110110H=36H 计数器0:0FFE0H 控制计数器:0FFE3H code segment assume cs:code,ds:code,es:code org 3000H start: MOV DX,0FFE3H MOV AL,36H OUT DX,AL MOV DX,0FFE0H MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL JMP $ code ends end start 八、实验步骤 (1)按实验电路图连接线路: ①8253的GATE0接+5V。 (已 ②8253的CLK0插孔接分频器74LS393的T2插孔,分频器的频率源为:4.9152MH z 连好)。 ③8253的CS孔与138译码器的Y0孔相连。 ④对一体机而言,将SIO区D0~D7用排线与BUS区D0~D7相连。 (2)运行实验程序 (3)用示波器测量8253的OUT0输出插孔有方波产生。 九、实验数据及结果 当程序清单中MOV AL 10H 时,其频率为149.9HZ,T=6.7ms 当程序清单中MOV AL 15H 时,其频率为114.3HZ,T=8.7ms

8253定时

8253定时/计数器实验 一、实验目的 了解8253定时器的硬件连接方法及时序关系,掌握8253工作方式以及编程方法。二、实验内容 编程将8253定时器0设定为方式3,定时器1设定在方式2,定时器2设定在方式2,定时器0输出作为定时器1的输入,定时器1的输出作为定时器2的输入,定时器2的输出接在一个LED上,运行后可观察到该LED在不停闪烁。 1.8253是一种可编程计数器/定时器,它是用软、硬技术结合的方法实现定时和计数控制。其主要有以下特点: ①有3个独立的16位计数器,每个计数器均以减法计数。 ②每个计数器都可按二进制计数或十进制(BCD码)计数。 ③每个计数器都可由程序设置6种工作方式。 ④每个计数器计数速度可以达2MHz。 ⑤所有I/O都可与TTL兼容 2.8253部分管脚的功能简介: D0-D7——数据总线缓冲器 A0-A7——地址输入线,用来选择3个计数器和控制寄存器中的一个。 CLK——时钟脉冲输入端。计数脉冲加到CLK输入端,可进行二进制或十进制减1的计数。 GATE——门控脉冲输入,用以控制计数或复位。通常当其为低电平时,禁止计数器的工作,即此输入信号即可完成外部触发启动定时作用,又可用于中止计数或定时作用。 OUT——计数到零或定时时间到脉冲输出。当预置的数值减到零时,从OUT输出端输出一信号,在不同的方式下,可输出不同形式的信号。可以用作中断请求,也可用作周期性的负脉冲或方波输出。 三、实验内容及步骤 本实验需要用到单片机最小应用系统CPU模块(F1区)、8253模块(H3区)、时钟发生电路模块(C4区)和计数器/频率计(A4区)。 1.用导线单片机最小应用系统P 2.0、P2.1、P2.7、RD、WR分别接8253的A0、A1、CS-8253、RD、WR;单片机最小应用系统的P0口JD4F接8253模块的D0-7口JD0H,时钟发生电路模块的250kHz接8253模块的CLK0; GATE0接+5V,OUT0接计数器/频率计(A4区)的F IN 。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH20_8253.ASM”,进行编译,直到编译无误。 4.进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。 5.从计数器/频率计可以看到OUT0输出的频率是CLKO的256分频(大约=970Hz)。 四、源程序(见光盘中的程序文件夹) 五、思考题 1.比较8253的六种工作方式的异同,并列表分析。 2.分析如何根据实验电路确定8253的端口地址? 六、实验电路

实验六 8255和8253可编程芯片编程实验

实验六 8255/8253可编程芯片综合实验 一、实验目的 1.了解8255、8253芯片结构及接口方式。 2.掌握8255、8253的编程方法。 二、实验内容 1、以8253的计数器1,通过CLK1对300Hz的信号进行计数定时,采用方式2,要求定时时间为2S; 2、将计数器1的输出OUT1接到计数器2的CLK2上,用计数器2对其计数4次,采用方式3产生方波信号; 3、利用8255的A口工作于方式0输出控制LED灯、B口工作于方式0的输入, OUT2接到PB0上,查询PB0的状态,若PB0==0,则从A口输出00001111,若PB1==1,则从A口输出11110000。 三、实验预习要求 学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。 四、实验步骤 1)系统各跳线器处在初始设置状态。 将8位LED灯接到8255的A口,CS_8255接200H,则8255 状态/命令口地址为203H,PA口地址为200H,PB口地址为201H。 将CS-8253接208H,则8253计数器0地址为208H,计数器1地址为209H,计数器2地址为20AH,控制口地址为20BH。 CLK1接时钟信号源上的300Hz信号,OUT1接到CLK2上,OUT2接到8255的PB0上,GATE1和GATE2都接到+5V上。 2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 五、实验要求 1)根据实验内容编写一个程序,并在实验仪上调试和验证,记录程序。 2)观察发光二极管的亮灭变化情况和时间的关系。 3)不改程序,将CLK1接到150Hz信号源上观察有什么变化,接到900Hz信号源上又有什么变化,想想为什么?

8253计数器实验

一、实验目的 1、学习8088/86与8253的连接方法。 2、学习8088/86对8253的控制方法。 二、实验器材 计算机,汇编相关程序,WA VE6000实验仿真器 三、实验原理 利用8088/86外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT 脚输出一个高电平。实验时,可以将OUT0接到LED 上, 四、实验步骤 (1) 在实验箱断电的情况下连好线。 (2) 输入程序并检查,保存程序。 (3) “编译”程序。 (4) “全速执行”程序。 (5) 记录实验结果及分析。 五、实验数据 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 ; 计数器初始值。 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 六、实验结果分析 电路连接后按下试验箱左侧开关,L0灯亮。因为选择输入的单脉冲为高电平。程序编译后全速执行,观察到L0灯灭了。因为单脉冲信号进入,写信号有效时向计数器写入控制字CW,之后其输出端OUT就变低电平,所以灯灭。按下单脉冲开关第六次后,L0灯重新亮起。原因是本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT脚输出一个高电平。所以灯又亮了。由此看来应该是第五次就亮的,那为什么是第六次灯才亮,是因为有一个软件误差,软件启动在CPU用输出指令向计数器写入初值后就启动计数。但事实上,CPU写入的计数初值只是写到了计数器内部的处置寄存器中,计数过程并未真正开始。写入初值后的第一个CLK信号将初值寄存器中的内容送到计数器中,而从第二个CLK脉冲的下降沿开始,计数器才真正进行减1计数。之后,每来一个CLK脉冲都会使计数器减1,直到减到零时在OUT端输出一个信号。因此,从CPU执行输出指令写入计数初值到计数结束,实际的CLK脉冲个数比编程写入的计数初值5要多一个,即6个。只要用软件启动计数,这个误差是不可避免的; 若要修改初值,可以在指令“MOV AL,5”修改,值得注意的是,由于有一个软件误差,所以每次输入的初值要比自己本来要的初值(N)多1,即(N+1)个脉冲

proteus实验例子8253计时器

proteus实验例子8253计时器 篇一:实验八可编程定时计数器8253的Proteus仿真实验实验八可编程定时/计数器8253的Proteus仿真实验 一、实验要求 利用 8086 外接8253 可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086 与8253 的连接方法。 2、学习8253 的控制方法。 3、掌握8253 定时器/计数器的工作方式和编程原理 三、实验电路及连线 1、Proteus 实验电路 2、硬件验证实验 硬件连接表 四、实验说明 1、8253 芯片介绍 8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V 单电源供电。 2、8253的功能用途: (1)延时中断 (2)可编程频率发生器 (3)事件计数器

(4)二进制倍频器 (5)实时时钟 (6)数字单稳 (7)复杂的电机控制器 3、8253 的六种工作方式: (1)方式0:计数结束中断 (2)方式l:可编程频率发生 (3)方式2:频率发生器 (4)方式3:方波频率发生器 (5)方式4:软件触发的选通信号 (6)方式5:硬件触发的选通信号 五、实验程序流程图 六、实验步骤 1、Proteus 仿真 a.在 Proteus 中打开设计文档“8253_STM.DSN”; b.建立实验程序并编译,仿真; c.如不能正常工作,打开调试窗口进行调试。 参考程序: CODE SEGMENT;H8253.ASM ASSUME CS:CODE START: JMP TCONT

TCONTROEQU0A06H TCON0 EQU0A00H TCON1 EQU0A02H TCON2 EQU0A04H TCONT: MOV DX,TCONTRO MOV AL,16H ;计数器0,只写计算值低8 位,方式3,二进制计数 OUT DX,AL MOV DX,TCON0 MOV AX,20 ;时钟为1MHZ,计数时间=1us*20=20us,输出频率50KHZ OUT DX,AL JMP $ CODE ENDS END START 2、实验板验证 a.通过USB 线连接实验箱 b.按连接表连接电路 c.运行PROTEUS 仿真,检查验证结果 篇二:基于Proteus的单片机计时器设计 基于Proteus的单片机计时器设计 和丽花 :《电子世界》20XX年第15期

实验三 定时计数器、8253方波实验

实验三定时/计数器、8253方波实验 一、实验目的 1.学会8253芯片和微机接口原理和方法。 2.掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 8253的0通常工作在方式3,产生方波。 三、电路原理图 1.程序流程 2.实验电路图 四、程序清单 CODE SEGMENT ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3490H H9: MOV DX,0FFE3H MOV AL,36H OUT DX,AL MOV DX,0FFE0H

MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL JMP $ CODE ENDS END H9 五、编程提示 8253芯片介绍 8253是一种可编程定/计数器,有三个十六位计数器,其计数频率范围为0~2MHZ,用+5V单电源供电。 8253的功能用途: ⑴延时中断 ⑵可编程频率发生器 ⑶事件计数器 ⑷二进制倍频器 ⑸实时时钟 ⑹数字单稳 ⑺复杂的电机控制器 8253的六种工作方式: ⑴方式0:计数结束中断 ⑵方式1:可编程频率发生 ⑶方式2:频率发生器 ⑷方式3:方波频率发生器 ⑸方式4:软件触发的选通信号 ⑹方式5:硬件触发的选通信号 8253的0号通道工作在方式3,产生方波。 六、实验步骤 1、实验连线 ⑴连接138译码输入端A.B.C,其中A连A2,B连A3,C连A4,138使能控制输入端G与总线单元上方的GS相连。 ⑵定时计数单元CLK0与分频单元T2相连,GATE0与5V相连,8253CS与译码单元Y0相连。

⑶用8芯扁平电缆将8251串行通信单元的数据总线插座与数据总线单元任一插座相连。 2、LED环境 (1)在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。 (2)在“P.”状态下键入3490,然后按“EXEC”进入实验项目的运行。 3、PC环境 在与PC联机状态下,编译、连接、下载PH88.asm,用连续方式运行程序。 4、观察运行结果 以连续方式运行程序,用示波器观察OUT0应有方波输出。 5、终止运行 按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出该程序的运行返回监控状态。 七、实验心得 本次实验学会了8253芯片和微机接口原理和方法,掌握了8253定时器/计数器的工作方式和编程原理。

8253定时器计数器实验

洛阳理工学院实验报告

(1)、连接实验电路 连线: 8253 CS ------ 端口地址 300CS PACK IMS ----- 393 1A 393 1QD ------ 8253 CLK1 8253 OUT1 ---- 8253 CLK2 8253 OUT2 ---- 发光二极管 L15 8253 GATE1 -- (A10)+5V 8253 GATE2 -- (A10)+5V 结果如下图所示: (2)、实验程序如下所示: CS8253 EQU 0303H COUNT0 EQU 0300H COUNT1 EQU 0301H COUNT2 EQU 0302H CODE SEGMENT ASSUME CS:CODE START PROC NEAR MOV DX,CS8253 MOV AL,01110110B OUT DX,AL

MOV DX,COUNT1 MOV AX,307 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,CS8253 MOV AL,10110110B OUT DX,AL MOV DX,COUNT2 MOV AX,1000 OUT DX,AL MOV AL,AH OUT DX,AL JMP $ START ENDP CODE ENDS (3)、经编译、链接无语法错误后装载到实验系统,全速运行程序,观察发光二极管L15,应有周期为1s的点亮、熄灭。结果如下图所示: 一秒后又熄灭,如此往复。 (4)、做完实验后,应按暂停命令中止程序的运行。 二、8253计数器实验 验证8253的工作方式3,CLK1每输入5个单脉冲信号,改变一次OUT1状态。 实验电路: DATA BUS D7~D0 D0 8 OUT0 10 D1 7 GATE0 11 D2 6 CLK0 9 D3 5 D4 4 D5 3 D6 2 OUT1 13 D7 1 GATE1 14 CLK1 15 CS 21 RD 22 WR 23 OUT2 17 A0 19 GATE2 16 A1 20 CLK2 18 8253 /CS 300CS IOR IOW A0 A1 VCC 1.8432MHz OUT0 GATE1 CLK1 OUT1 OUT2 CLK2 GATE2 +5V SP单次正脉冲 L15发光二极管显示

实验八 可编程定时计数器8253的Proteus仿真实验

实验八可编程定时/计数器8253的Proteus仿真实验一、实验要求 利用8086 外接8253 可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086 与8253 的连接方法。 2、学习8253 的控制方法。 3、掌握8253 定时器/计数器的工作方式和编程原理 三、实验电路及连线 1、Proteus 实验电路 2、硬件验证实验 硬件连接表 四、实验说明

1、8253 芯片介绍 8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V 单电源供电。 2、8253的功能用途: (1)延时中断 (2)可编程频率发生器 (3)事件计数器 (4)二进制倍频器 (5)实时时钟 (6)数字单稳 (7)复杂的电机控制器 3、8253 的六种工作方式: (1)方式0:计数结束中断 (2)方式l:可编程频率发生 (3)方式2:频率发生器 (4)方式3:方波频率发生器 (5)方式4:软件触发的选通信号 (6)方式5:硬件触发的选通信号 五、实验程序流程图

六、实验步骤 1、Proteus 仿真 a.在 Proteus 中打开设计文档“8253_STM.DSN”; b.建立实验程序并编译,仿真; c.如不能正常工作,打开调试窗口进行调试。 参考程序: CODE SEGMENT;H8253.ASM ASSUME CS:CODE START: JMP TCONT TCONTROEQU0A06H TCON0 EQU0A00H TCON1 EQU0A02H TCON2 EQU0A04H TCONT: MOV DX,TCONTRO

8253定时计数器实验

8253定时器/计数器实验 一、实验目的: 1、进一步了解可编程定时/计数器8253的特点与功能; 2、掌握8253定时/计数器的应用、编程方法。 二、实验设备: MUT—Ⅲ型实验箱、8086CPU模块、示波器。 三、实验内容: 用定时/计数器8253的计数器0、计数器1级联实现1秒的定时。使OUT1端所接发光二极管每隔1S闪烁一次,模拟电子秒表或信号报警器。 两个计数器皆工作于方式3(输出方波),CLK0端接频率为750KHz的时钟。 四、实验电路: 本实验用到两部分电路:时钟脉冲发生器(脉冲产生电路)(见附录)、8253定时器/计数器(1片)。电路原理图如图1所示。 图1:8253定时/计数器实验电路 五、实验步骤: (1)实验连线: CS0连CS8253,8253CLK0连时钟脉冲发生电路的CLK3,OUT0连8253CLK1,OUT1连LED1。如图2所示。注意:GATE信号线、数据线、地址线、读写控制信号线均已接好。 图2:线路连接示意图

(2)输入以下程序,编译、链接后,全速运行,观察实验结果。 ;8253初始化参考程序 CODE SEGMENT ASSUME CS:CODE ORG 0100H START: MOV DX,04A6H ;控制寄存器地址 MOV AL,00110110B ;计数器0控制字:方式3,二进制计数 OUT DX,AL MOV DX,04A0H ;计数器0的口地址 MOV AL,0EEH ;写计数初值低8位 OUT DX,AL MOV AL,02H ;写计数初值高8位 OUT DX,AL MOV DX,04A6H ;控制寄存器地址 MOV AL,01110110B ;计数器1控制字:方式3,二进制计数 OUT DX,AL MOV DX,04A2H ;计数器1的口地址 MOV AL,0E8H ;计数初值低8位 OUT DX,AL MOV AL,03H ;计数值高8位 OUT DX,AL NEXT: NOP JMP NEXT ;CPU在此循环执行空操作,说明8253独立工作。 CODE ENDS END START 实验说明: 实验中,计数器0的时钟由时钟发生器的CLK3提供,其频率为750KHz。程序中,计数器0的计数初值设为750,计数器1的计数初值设为1000。计数器0的OUT0输出的方波频率为:750KHz/750=1000Hz,即为CLK1的输入频率。则计数器2的UT0的输出方波的周期为:1000/1000Hz=1秒。可见,采用计数器级联后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。 实验结果: 程序全速运行后,LED1闪烁(周期为1s)。(可用示波器观察8253的CLK0、OUT0及OUT1的波形) 六、作业题 1、不改变电路连接,修改程序,使计数器0和计数器1都按BCD码计数使LED1每隔1秒闪烁一次,模拟电子秒表或信号报警器。 2、不改变电路连接,修改程序,使发光二极管LED1每隔2S闪亮一次,模拟信号报警器。

8253定时器计数器接口实验

计算机与通信工程学院 试 验 报 告 书 课程名称:微机原理及应用 设计题目:8253定时器/计数器接口实验实验类型:验证性 授课老师: 实验日期:2013.11.12 班级:通信1102(移动方向) 学号: 姓名: 成绩:

一、实验目的 (1)掌握8253定时器的编程原理及其工作原理. (2)掌握编写中断服务程序是的方法 (3)掌握初始化中断向量的方法 二、实验设备 MUT—III型实验箱、8086CPU、示波器 三、实验内容 8253计数器0、1、2工作于方波方式,观察其输出波形. 四、实验原理介绍 本实验用到两部分电路:脉冲产生电路,8253定时器/计数器电路五、实验程序框图 六、实验步骤 (1)实验接线 CS0?CS8253 OUTO?8253CLK2 OUT2?LED1

示波器?OUT1 CLK3?8253CLK0 CLK3?8253CLK1 (2)编译调试程序 (3)全速运行程序,拨动某一电平开关,观察LED的亮灭情况。 七、实验提示 (1)、8253是计算机系统中经常使用的可编程定时器/计数器.其内部有三个相互独立的计数器,分别成为T0,T1,T2,8253有多种工作方式,其中方式3为方波方式. (2)、当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一般输出低电平. (3)、实验中, T0,T1的时钟由CLK3提供,其频率为750KHZ.程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3/1000000=0.05s.). (4)、T2采用OUT0的输出为时钟,则在T2中设置初始值为n时,则OUT2输出方波周期为n*-0.05s.n的最大值为FFFFH,所以OUT2呼出方波最大周期为3276.75s(=54.6分钟)。 (5)、可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在控制中时非常有用的。 八、实验源程序: assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器 mov ax,36h ;计数器0,方式3 out dx,ax mov dx,04a0h mov ax,7Ch out dx,ax mov ax,92h out dx,ax ;计数值927Ch mov dx,04a6h mov ax,76h ;计数器1,方式3 out dx,ax

8253定时器计数器接口与数字电子琴

实验目的 1.通过程序改变定时器的数值来改变声音频率 2.通过编程来获得声调和节奏,使计算机演奏出乐曲来。 硬件设计 利用实验板上的8253计数/定时器和8255并行接口,定时器8253利用工作方式3产生一定频率信号,通过可编程的并行外围接口芯片8255控制频率信号的通断。 8255的A 口设置为输出,8255的A 口的低两位用来控制扬声器驱动,当输出端口的PA0位为“1”或为“0”时,将使控制驱动器的与门电路接通或关闭,使8253所发出的音频信号能到达驱动器或被阻断。这样通过控制PA0的变化,可使扬声器接通和断开,控制扬声器是否能发出声音。此外,通过控制PA0的通断时间,就能发出不同的音长。8255的PA1位为“1”时,控制8253定时器产生驱动扬声器发声的音频信号,该位为“0”则不发信号。8253有三个定时器,分为0号、1号和2号定时器,驱动扬声器的是0号定时器,该定时器工作在方式3,是一个频率发生器,它负责向扬声器发送指定频率的脉冲信号。当8255的PA0和PA1都为1时,8253发出指定频率的声音信号的前提下,声音信号通过与门到达驱动器驱动扬声器发声。 硬件原理图如图1所示: 图1 硬件原理图 8253 计数器 与门 扬声器驱动 扬声 器 8255 PA0 8255 PA1 门控 控制喇叭 Q0

扬声器驱动电路如图2所示。 图2 扬声器驱动电路 软件设计 系统要求实现2个功能,电子琴和音乐盒的功能。两者发声的方法一样,只是一个数据是从键盘读取的,另一个是已经保存好的数据。首先我们可以用一个子程序实现单个音调的产生,对8253输入不同的计数初值生成不同频率的波形,然后延时一段时间。电子琴程序主要是读取键盘按键,根据键值产生不同的音调即可。而乐曲的播放先将乐曲的音符编码表和节拍编码表建立好的,然后在播放时读取数据。 1. 单音调子程序SOUND 单音调子程序的调用前需要进行以下几个方面工作: 1)确定相应的音调所对应的频率,查表可以得到,再由频率得到对应的8253计数初值。 2)确定音长,即一个音符所持续的时间。 在单音调子程序中实现发出一个音符的声音,持续所需的时间,流程图如图3所示:

可编程定时器计数器实验报告

实验名称 可编程定时器/计数器(8253) 学生姓名 学生学号 专业班级 指导老师 2015-1-7

实验六可编程定时器/计数器(8253) 一、实验目的 掌握8253芯片和微机接口原理和方法,掌握8253定时器/计数器的工作方式和编程原理。 二、实验内容 1.设计8253定时器/技术器仿真电路图; 2.根据仿真电路图,编写代码,对8253定时器/计数器进行仿真。 三、实验要求 1.要求计数器2工作于模式1(暂稳态触发器),计数初值为1250; 2.计数器0工作于方式3(方波模式),输出一个1KHz的方波, 8253的输 入时钟为1MHz,计数初始值格式为BCD。 3.8253与系统的连接如所示。 图 1计数器8253与8086连接原理图 注:实验过程中,发现有误。应将8253定时器/计数器右边部分的电阻R2与按钮交换位置。 四、实验原理 8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,

计数就成为定时。 8253的工作方式3被称作方波发生器。任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。 进入工作方式3,OUTi输出低电平,装入计数值后,OUTi立即跳变为高电平。如果当GATE为高电平,则立即开始减“1”计数,OUTi保持为高电平,若n为偶数,则当计数值减到n/2时,OUTi跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUTi端输出的周期为n×CLKi 周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLKi 周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。 8253定时器/计数器控制字决定这定时器0,1,2的工作模式。一旦CPU对控制字进行写操作,且对相应的定时器有效,则相应定时器改变工作模式,可能准备接收计时初值。控制字的格式如所示。 图 2 8253控制字格式 8253有4个端口,且通过A[1…0]引脚控制着4个端口。访问端口如所示。 表 1 8253端口地址列表 五、实验步骤及结果 1.确定8253的方式字,以及计数初始值; 根据和实验要求,计算得出 计数器0对应的控制字为27H,计数器0的初值为1000H;

8253的工作方式解析

8253的工作方式 1.方式0 计数结束产生中断 8253用作计数器时一般工作在方式0。所谓计数结束产生中断,是指在计数值减到0时,输出端(OUT)产生的输出信号可作为中断申请信号,要求CPU进行相应的处理。方式0有如下特点: ① 当控制字写进控制字寄存器确定了方式0时,计数器的输出(OUT端口)保持低电平,一直保持到计数值减到0。 ② 计数初值装入计数器之后,在门控GATE信号为高电平时计数器开始减1计数。当计数器减到0时输出端OUT才由低变高,此高电平输出一直保持到该计数器装入新的计数值或再次写入方式0控制字为止。若要使用中断,可以计数到0的输出信号向CPU发出中断请求,申请中断。 ③ GATE为计数控制门,方式0的计数过程可由GATE控制暂停,即GATE=1时,允许计数;GATE=0时,停止计数。GATE 信号的变化不影响输出OUT端口的状态。 ④ 计数过程中,可重新装入计数初值。如果在计数过程中,重新写入某一计数初值,则在写完新计数值后,计数器将从该值重新开始作减1计数。

2.方式1 可编程的单拍负脉冲 可编程的单拍负脉冲又称为单稳态输出方式,简称单稳定时。方式1的特点是: ① CPU写入控制字后,计数器输出OUT端为高电平作为起始电平,在写入计数值后计数器并不开始计数(不管此时GATE 是高电平还是低电平),而要由外部门控GATE脉冲上升沿启动,并在上升沿之后的下一个CLK输入脉冲的下降沿开始计数。 ② GATE上升沿启动计数的同时,使输出OUT变低,每来一个计数脉冲,计数器作减一计数,直到计数减为 0时,OUT 输出端再变为高电平。OUT端输出的单拍负脉冲的宽度为计数初值乘以CLK端脉冲周期。设计数初值为N,则单拍脉冲宽度为N个CLK时钟脉冲周期。 ③ 如果在计数器未减到0时,GATE又来一触发脉冲,则由下一个时钟脉冲开始,计数器将从初始值重新作减1计数。当减至0时,输出端又变为高电平。这样,使输出脉冲宽度延长。 3. 方式2 分频脉冲发生器 方式2是一种具有自动予置计数初值N的脉冲发生器。从OUT

相关主题
文本预览
相关文档 最新文档