8253定时器
- 格式:ppt
- 大小:2.06 MB
- 文档页数:36
实验五8253定时器/计数器接口实验5.1实验目的掌握8253定时器/计数器的工作方式及应用编程。
5.2实验条件1. 北京达盛科技有限公司“缔造者”电子电气技术综合实验台、CPU挂箱、8086CPU模块。
2. PC机1台,已安装实验台8086开发调试软件。
3. 万用表、示波器。
5.3实验内容CPU挂箱自带一个脉冲发生器,按基频6.0MHz进行1分频(CLK0)、二分频(CLK1)、四分频(CLK2)、八分频 (CLK3)、十六分频(CLK4)输出方波。
编程设定8253计数器0、计数器1、计数器2工作于方波方式,观察其输出波形。
其中T0、T1的时钟由脉冲发生器的CLK3提供,其频率为750KHz,T0、T1的计数器初值设为927CH(37500十进制),则OUT0、OUT1输出的方波周期为(37500*4/3*10-6=0.05s)。
T2采用OUT0的输出为时钟,如果在T2中设置计数器初值为n,则OUT2输出方波周期为n*0.05s。
5.4实验步骤1. 实验接线将8253定时器/计数器的CS8253与地址译码电路的CS0相连,8253的CLK0、CLK1与脉冲发生器的CLK3相连8253的CLK2与OUT0相连,8253的OUT1与示波器相连,OUT2与开关量输入输出电路的LED1相连。
2. 建立PC机与8086CPU模块间的通讯连接将8086CPU模块正确地放在CPU挂箱上的CPU插槽中,系统上电后按下RESET键,几秒钟之后如果显示“P_”,说明CPU挂箱上的8086系统复位及8086CPU模块监控程序运行正常。
在PC机上打开8086开发调试软件,根据提示按下RESET键,几秒种后如果显示“C_”,说明与PC机通讯正常,同时8086开发调试软件用户界面提示通讯成功。
如果通讯不成功,试着选择串口COM2。
3. 编辑汇编语言源程序8086开发调试软件是将编辑、汇编、连接和调试集成在一起的综合开发环境,同时具有断点设定、程序下载到实验台等功能。
8253定时/计数器知识点总结1、8253简介8253是用来测量时间或者脉冲的个数,通过计量一个固定频率的脉冲个数,将时间信息转化为数字信息,供计算机系统使用。
8253有着较好的通用性和灵活性,几乎可以在所有由微处理器组成的系统中使用。
2、性能描述(1)每个8253芯片有3个独立的16位计数器通道;(2)每个计数器通道都可以按照二进制或二—十进制计数;(3)每个计数器的计数速率可以高达2MHz;(4)每个通道有6种工作方式,可以由程序设定和改变;(5)所有的输入、输出电平都与TTL兼容。
3、结构组成结构框图如下(1)数据总线缓冲器8253内部实现与CPU数据总线连接的8位双向三态缓冲器,用以传送CPU向8253的控制信息、数据信息以及CPU从8253读取的状态信息,包括某一时刻的实时计数值。
(2)读写逻辑控制控制8253的片选及对内部相关寄存器的读/写操作,它接收CPU发来的址地信号以实现片选、内部通道选择以及对读/写操作进行控制。
(3)控制寄存器在8253的初始化编程时,由CPU写入控制字,以决定通道的工作方式,此寄存器只能写入,不能读出。
(4)计数通道0号、1号、2号三个独立的、结构相同的计数器/定时器通道,每个通道包含一个16位计数寄存器存放计数初始值,一个16位的减法计数器,一个16位的锁存器。
锁存器在计数器工作的过程中,跟随计数值的变化。
接收到CPU的读计数值命令时,锁存计数值,供CPU读取。
读取完毕之后,输出锁存器又跟随减1计数器变化。
另外,计数器的值为0的状态,还反映在状态锁存器中,可供读取。
4、引脚说明与CPU 的接口信号:(1)D0—D7:双向三态数据线,与CPU 相连用以传送数据、控制字以及状态信息。
(2)CS :片选输入信号,低电平有效。
(3)W R RD ,:读/写控制信号,低电平有效。
(4)10,A A :8253的内部计数器和一个控制寄存器的编码选择信号,其功能如下:10,A A 与其他控制信号,如CS ,W R RD ,共同实现对8253的寻址,如下图:8253寻址读写操作逻辑表与外部设备的接口信号(1)CLK 0、1、2:时钟脉冲输入端,输入定时脉冲或计数脉冲信号,CLK最高频率可达2MHz。
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.用导线单片机最小应用系统P2.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 。
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 SEGMENTASSUME CS:CODEORG 0100HSTART:MOV DX,04A6H ;控制寄存器地址MOV AL,00110110B ;计数器0控制字:方式3,二进制计数OUT DX,ALMOV DX,04A0H ;计数器0的口地址MOV AL,0EEH ;写计数初值低8位OUT DX,ALMOV AL,02H ;写计数初值高8位OUT DX,ALMOV DX,04A6H ;控制寄存器地址MOV AL,01110110B ;计数器1控制字:方式3,二进制计数OUT DX,ALMOV DX,04A2H ;计数器1的口地址MOV AL,0E8H ;计数初值低8位OUT DX,ALMOV AL,03H ;计数值高8位OUT DX,ALNEXT: NOPJMP NEXT ;CPU在此循环执行空操作,说明8253独立工作。
8253的工作原理简介8253可编程计数器/定时器的工作频率为0~2MHz,它有3个独立编程的计数器,每个计数器有三个引脚,分别为时钟CLK、门控GATE、计数器和计时结束输出OUT;每个计数器分别有6种工作方式。
下面针对使用到的两种工作方式——方式1和方式2的工作原理[1]进行简述。
方式1:可编程单稳,即由外部硬件产生的门控信号GATE触发8253而输出单稳脉冲。
计数器装入计数初值后,在门控信号GATE由低电平变高电平并保持时,计数器开始计数,此时输出端变成低电平并开始单稳过程。
当计数结束时,输出端OUT转变成高电平,单稳过程结束,在OUT端输出一个单稳脉冲。
硬件再次触发,OUT 端可再次输出一个同样的单稳脉冲。
单稳脉冲的宽度由装入计数器的计数初值决定。
在WR 信号的上升沿(CPU写控制字之后),输出端OUT保持高电平(若OUT原为低电平则变为高电平)。
CPU写入计数值后,计数器并不马上开始计数,而要等到门控信号GATE启动之后的下一个CLK的下降沿才开始。
在整个计数过程中,输出端OUT保持低电平,直至计数值至0,OUT变为高电平为止。
方式2:速率发生器,其功能如同一个N分频计数器。
其输出是将输入时钟按照N计数值分频后得到的一个连续脉冲。
在该方式下,当计数器装入初始值开始工作后,输出端OUT将不断地输出负脉冲,其宽度为一个时钟周期的时间,而两个负脉冲间的时间脉冲个数等于计数器装入的计数初值。
若计数初值为N,则每N个输入脉冲输出一个脉冲。
当CPU写完控制字后,输出端OUT转变成高电平,计数器将立即自动开始对输入CLK时钟计数。
在计数过程中,OUT端始终保持高电平,直至计数器的计数值减到1时,OUT 端才变为低电平,其保持的宽度为一个输入CLK时钟周期的时间,然后输出端OUT恢复高电平,计数器重新开始计数。
8253控制字格式为:其中:SC1 SC0为计数器选择位;RL1 RL0为计数器读写操作选择位,以确定计数器进行装入或读出是单字节还是双字节;M2 M1 M0为计数器工作方式选择位;BCD表示计数器计数方式选择位。
精选文档实验报告实验名称可编程准时器/计数器(8253 )姓名学号班级教师日期一、实验内容与要求1.1 实验内容计数器方式 2 实验:将 8253 芯片的计数器0 的工作方式设置为方式2,读 /写格式设置为01,写入时只写入计数器初值低8 位,高 8 地点 0,采纳二进制格式计数。
计数器初值为N (N>=0FH ),用手动开关逐一输入单脉冲,编程使计数值在屏幕上显示,并同时用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 实验原理TPC-USB 平台上有一块8253 准时 /计数器芯片, PC 能够经过 8253 芯片进行计数和准时。
可编程定时器/计数器(8253)一、实验目的1)学会8253芯片和微机接口原理和方法。
2)掌握8253定时器/计数器的基本工作原理、工作方式和编程原理。
二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图 6按图7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
图 7三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟 1MHZ2、参考流程图(见图8、9): 开 始读计数器值显示计数值有键按下吗?开 始送计数器初值N Y结 束结 束设计数器0为工作方式0向计数器0送初值1000先送低字节后送高字节向计数器1送初值1000先送低字节后送高字节设计数器0为工作方式3设计数器1为工作方式3图 8 图 9四、实验代码1、图6电路的实验代码CODE SEGMENT ;段定义开始(CODE 段)ASSUME CS:CODE ;规定CODE 为代码段START:MOV AL,10H ;设置控制字00010000(计数器0,方式0,写两个字节,二进制计数)MOV DX,283H ;把控制寄存器地址放在DX 寄存器中OUT DX,AL ;将AL 的值送入DX 端口MOV DX,280H ;把计数器0地址放在DX 寄存器中MOV AL,0FH ;将0FH 存入AL 寄存器OUT DX,AL ;将此时AL 的值送入DX 端口LP1: IN AL,DX ;从DX 端口读入8位,放在AL 寄存器中CALL DISP ;调用DISPPUSH DX ;将DX 内容保存到堆栈段MOV AH,06H ;将06H 存入AH ,为了下句调用21中断MOV DL,0FFH ;将0FFH 存入DLINT 21H ;调用21中断POP DX ;将DX 的内容推出栈段JZ LP1 ;如果DX 的内容是0,就跳转到LP1MOV AH,4CH ;将4CH 存入AH ,为了下句调用21中断INT 21H ;调用21中断DISP PROC NEAR ;定义一个名为DISP 的子程序PUSH DX ;把DX 的内容保存到堆栈段中AND AL,0FH ;将AL 寄存器的内容与0FH 进行“与”运算,再把结果存入AL 中MOV DL,AL ;将AL 的值送入DL 寄存器CMP DL,9 ;比较DL中的值与9的大小JLE NUM ;如果DL的值小于或等于9时,则跳转到NUMADD DL,7 ;将DL的值与7进行相加后,再送入DL中NUM: ADD DL,30H ;将DL的值与30H进行相加后,再送入DL中MOV AH,02H ;将02H存入AHINT 21H ;调用DOS21中断MOV DL,0DH ;结合“MOV AH,02H”就是说输出0DHINT 21H ;调用中断指令MOV DL,0AH ;结合“MOV AH,02H”就是说输出0AHINT 21H ;调用DOS21中断POP DX ;将DX的内容推出栈段RET ;子程序在功能完成后返回调用程序继续执行DISP ENDP ;子程序结束CODE ENDS ;代码段结束END START ;程序结束2、图7电路的实验代码CODE SEGMENT ;段定义开始(CODE段)ASSUME CS:CODE ;规定CODE为代码段START:MOV DX,283H ;把控制寄存器地址放在DX寄存器中MOV AL,36H ;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;该语句是立即寻址方式,就是把1000H这个数赋给AX MOV DX,280H ;把计数器0地址放在DX寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将此时AL的值送入DX端口MOV DX,283H ;把端口地址放在DX寄存器中MOV AL,76H ;设置控制字01110110(计数器1,方式3,写两个字节,二进制计数)OUT DX,AL ;将AL的值送入DX端口MOV AX,1000H ;把1000H赋给AXMOV DX,281H ;把端口地址放在DX寄存器中OUT DX,AL ;将AX的低8位送入DX端口MOV AL,AH ;将AX的高8位存入AL寄存器中OUT DX,AL ;将AL的值送入DX端口MOV AH,4CH ;将4CH存入AHINT 21H ;调用DOS21中断CODE ENDS ;代码段结束END START ;程序结束五、实验总结通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器/计数器的基本工作原理、工作方式和编程原理,熟悉汇编代码的编写。
实验三 8253计数器/定时器的应用一、实验目的:学习掌握8253用作定时器的编程原理;二、8253应用小结I8253和I8254都是可编程计数器,它们的引脚兼容,功能与使用方法相同。
I8254是I8253的改进型。
1.微机系统定时器和实验箱定时器(1)微机系统使用的8254,其3个通道均有固定的用途:0号计数器为系统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态存储器的定时刷新控制;2号计数器为系统的发声源。
用户在使用微机系统的时候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。
(2)实验箱上的8253,其数据线D7—D0,地址线A1、A0和控制线RD、WR通过总线驱动卡和微机系统的三总线相连。
除此之外,三个计数器的引出段和片选端都是悬空的,这意味着实验箱上的8253的三个计数器都归用户使用,你可以单独使用其中的一个计数器,也可以串联使用其中的2个或3个计数器。
(3)8253计数器的输入信号,其频率不能超过2MHz,否则长时间使用,芯片过热,容易烧毁。
2.8253初始化使用8253前,要进行初始化编程。
初始化编程的步骤是:①向控制寄存器端口写入控制字对使用的计数器规定其使用方式等。
②向使用的计数器端口写入计数初值。
3.8253控制字D7D6=00:使用0号计数器,D7D6=01:使用1号计数器D7D6=10:使用2号计数器,D7D6=11:无效D5D4=00:锁存当前计数值D5D4=01:只写低8位(高8位为0),读出时只读低8位D5D4=10:只写高8位(低8位为0),读出时只读高8位D5D4=11:先读/写低8位,后读/写高8位计数值D3D2D1=000:选择方式0,D3D2D1=001:选择方式1D3D2D1=X10:选择方式2,D3D2D1=X11:选择方式3D3D2D1=100:选择方式4,D3D2D1=101:选择方式5D0=0:计数初值为二进制,D0=1:计数初值为BCD码数三、实验电路蜂鸣器电路四、实验内容1.完成一个音乐发生器,通过蜂鸣器放出音乐,并在数码管上显示乐谱。
8253定时器实验实验七可编程定时/计数器与中断控制一、实验目的1.掌握微机中断处理系统的基本原理、学习中断服务程序的编写方法。
2.掌握8253/8254定时/计数器的基本原理和编程方法。
二、实验原理本实验采用Intel8253作为计数器芯片,8254芯片是8253的兼容替代产品,计数速率等性能优于8253。
1.可编程定时/计数器8253功能简介8253含有三个独立的16位计数器,每个计数器连接外设的信号分别是:CLK ——输入的脉冲信号或外部事件,计数器对此脉冲进行减1计数;GATE ——启动/禁止计数的控制信号;OUT ——输出信号。
每个计数器可有六种工作方式,均可由程序设置和改变,8253的几种工作方式及特点如表7.1所示。
若一个计数器被设定为方式0,计数初值n,在控制信号GATE为高时即可对输入的脉冲作减1计数,OUT维持低电平;计数到0时,则由OUT端输出一个高电平信号。
若一个计数器被设定为方式2,输入为周期性脉冲信号,且计数初值可自动重新装入并连续计数,输出信号就成为周期信号,周期为T OUT = n×T IN(或频率?OUT = ?IN / n),即可作为分频器应用。
表7.1 8253的6种工作方式工作方式功能描述GATE=0启动方式初值设置说明方式0计数到0输出高电平停止计数软件一次有效(n+1)T CLK 负脉冲方式1硬件可重触发单稳态--- 硬件自动装入nT CLK负脉冲方式2分频器停止计数软/硬件自动装入T OUT=n×T CLK方式3方波发生器停止计数软/硬件自动装入分频,占空比≈50﹪方式4软件触发选通停止计数软件一次有效计数到0负T CLK方式5 硬件触发选通--- 硬件自动装入波形同方式4注:软件启动是指当GATE=1时写入方式字和初值即启动;硬件启动是指写入方式字和初值后要由GATE上升沿启动。
2.8253编程简要说明8253的每个计数器必须在写入控制字和计数初值后才启动工作,一般的初始化编程分为两步:先写入控制字、再写入计数初值。
8253定时器/计数器应用一、实验目的1.掌握8253定时/计数器的工作原理、工作方式及应用编程。
2.掌握8253的典型应用电路的接法。
二、实验设备PC 机一台,TD-PITE 实验教学系统一台。
三、实验原理实验系统中安装的为8254(8253的改进型)共有三个独立的定时/计数器,其中0号和1号定时/计数器开放供实验使用,2号定时/计数器为串行通信单元提供收发时钟信号。
定时/计数器0的GATE 信号连接好了上拉电阻,若不对GA TE 信号进行控制,可以在实验中不连接此信号。
四、实验内容计数应用实验:使用单次脉冲模拟计数,使每当按动“KK1+”5次后,产生一次计数中断,并在显示器上显示一个字符“M”。
初始化设置:8254的计数器0、计数器1、计数器2、控制口地址分别为06C0H 、06C2H 、06C4H 、06C6H ;选择计数器0,仅用低8位计数,方式0,二进制计数;8259的地址为20H 、21H ,边沿触发,IR7对应的中断类型码为0FH ,一般全嵌套方式,非缓冲方式,非自动结束。
五、实验步骤(实验报告中要详细写出你自己的实验步骤)计数应用实验步骤:(1)按图1连接实验线路。
(2)编写实验程序,对实验程序进行编译、链接无误后,加载到实验系统。
(3)执行程序。
并按动单次脉冲输入KK1+,观察程序执行结果。
(4)改变程序中的定时/计数值,验证8253的定时/计数功能。
思考题1.执行实验步骤(3)时,程序的执行结果和按动KK1+的速度有关吗?2.如果将图1中OUT0连接到系统总线的MIR6引脚,如何修改程序,使其仍能正常 4.7K图1 8253计数应用实验VCC · · XA1 XA2 系统 XD0· 总 ·XD7 线IOW# IOR# IOY3 MIR7 A0 A1 GATE0 D0 8254 · 单元 · D7 CLK0 WR RD CS OUT0 KK1+单次 脉冲单元计数?3.如果将图1中OUT0连接到系统总线的SIR1引脚,如何修改程序,使其仍能正常计数?提示:主片8259的地址为20H、21H,从片8259的地址为A0H、A1H,从片的INT 连接到主片的IR2引脚上,构成两片8259的级联。