实验二 定时计数器8253工作方式
- 格式:doc
- 大小:67.88 KB
- 文档页数:5
8253的六种工作方式区别三个计数通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能:1.方式0:计数结束则中断工作方式0被称为计数结束中断方式。
当任一通道被定义为工作方式0时,OUTi输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值使WR#有效时,OUT仍保持低电平,之后的下一时钟周期下降沿计数器开始减“1”计数,直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT 端输出的高电平一直维持到下次再写入计数值为止。
在工作方式0情况下,门控信号GATE用来控制减“1”计数操作是否进行。
当GATE=1时,允许减“1”计数;GATE=0时,禁止减“1”计数;计数值将保持GATE有效时的数值不变,待GATE重新有效后,减“1”计数继续进行。
显然,利用工作方式0既可完成计数功能,也可完成定时功能。
当用作计数器时,应将要求计数的次数预置到计数器中,将要求计数的事件以脉冲方式从CLK 端输入,由它对计数器进行减“1”计数,直到计数值为0,此刻OUTi输出正跳变,表示计数次数到。
当用作定时器时,应把根据要求定时的时间和CLKi的周期计算出定时系数,预置到计数器中。
从CLK,输入的应是一定频率的时钟脉冲,由它对计数器进行减“1”计数,定时时间从写入计数值开始,到计数值计到“0”为止,这时OUTi输出正跳变,表示定时时间到。
有一点需要说明,任一通道工作在方式0情况下,计数器初值一次有效,经过一次计数或定时后如果需要继续完成计数或定时功能,必须重新写入计数器的初值。
2.方式1:单脉冲发生器工作方式1被称作可编程单脉冲发生器。
进入这种工作方式,CPU装入计数值n后OUT 输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。
与此同时,OUT 输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。
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. 实验目的及内容1.1实验目的1)了解8253的内部结构、工作原理;了解8253与8088的接口逻辑; 2)熟悉8253的控制寄存器和初始化编程方法,熟悉8253的6种工作模式。
1.2实验内容1)设计8253与8086CPU 的硬件连接图,分配8253的基地址为0F000H 。
2)设计8253与外界输入时钟频率2MHZ 和电源的硬件连接,使8253产生周期为1秒的方波。
用此方波控制LED 灯,使其发出闪烁信号。
2. 实验环境星研电子软件,STAR 系列实验仪一套、PC 机一台、导线若干3. 实验方法8259A 的中断引脚IRi 与单脉冲连接,实现拨动单脉冲开关触发8259A 中断,8086计数中断次数并显示于G5区的断码管LED 上,此实验使用8259A 的IR2中断,正脉冲触发中断,脉冲频率为2MHz.4. 实验步骤4.1电路设计D0D1D2D4D5D6D7WR RD D3D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS 21RD 22WR 23OUT217A019GATE216A120CLK2188253U35A0A1GATE0CLK0OUT1GATE1OUT2GATE2CLK2CSVCC 2M(B2)Ctrl(D1)VCCCS5(0B000H)A0A1A8253_1 EQU 0F002HA8253_2 EQU 0F001HA8253_3 EQU 0F003H.DATA.STACK.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXmov dx,A8253_3mov al,00110101bout dx,almov dx,A8253_0mov al,00Hout dx,almov al,20Hout dx,almov dx,A8253_3mov al,01110111bout dx,almov dx,A8253_1mov al,00Hout dx,almov al,10Hout dx,alEND START4.4运行调试程序1)按要求设计的电路正确连接线路,检查完毕后打开电源。
实验2:可编程定时器/计数器(8253)一、实验目的:掌握8253的基本工作原理和编程方法二、实验内容:1.按图虚线连接电路,将计数器 0 设置为方式 0,计数器初值为 N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察 OUT0 电平变化(当输入 N+1 个脉冲后 OUT0 变高电平)。
2、按下图连接电路,将计数器0、计数器1设置为方式3,计数初值为1000,用逻辑笔观察OUT1输出电平的变化(1Hz)。
三.实验流程图如下:四.实验程序(1)DATA SEGMENTIOPORT EQU 0C400H-0280HIO8253a EQU IOPORT+283HIO8253b EQU IOPORT+280HDATA ENDSSTACK1 SEGMENT PARA STACKDW 100H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AL,10H ;写计数器0控制字MOV DX,IO8253aOUT DX,ALMOV DX,IO8253bMOV AL,05H ;设计数器初值为5OUT DX,ALLOP: IN AL,DX ;读计数器值CALL DISP ;调用子程序PUSH DXMOV AH,06H ;判断是否有键按下MOV DL,0FFHINT 21HPOP DXJZ LOPMOV AH,4CH ;返回操作系统INT 21HDISP PORC NEARPUSH DXAND AL,0FH ;将十六进制数转化为十进制的ASCII码,小于9就 MOV DL,AL 加30H,大于9就加37HCMP DL,9JLE XCADD DL,7XC: ADD DL,30HMOV AH,02HINT 21HMOV DL,0DHINT 21HPOP DXRETDISP ENDPCODE ENDSEND START(2)DATA SEGMENTIOPORT EQU 0C400H-0280HIO8253 EQU IOPORT+283HIO8253a EQU IOPORT+280HIO8253b EQU IOPORT+281HDATA ENDSSTACK1 SEGMENT PARA STACKDW 100H DUP(0)STACK1 ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1START:MOV AX,DATAMOV DS,AXMOV AL,36H ;写计数器0的控制字MOV DX,IO8253OUT DX,ALMOV DX,IO8253a ;写计数初值MOV AX,1000HOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,76H ;写计数器1的控制字MOV DX,IO8253OUT DX,ALMOV AX,1000H ;写计数初值MOV DX,IO8253bMOV DX,ALMOV AL,AHOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START五.实验感想8253具有3个独立的16位计数器,6种不同的工作方式。
微机原理实验报告实验五 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 283HTIME0 EQU 280HTIME1 EQU 281HDATA SEGMENTMESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,AXMOV DX,OFFSET MESSMOV AH,09HINT 21HMOV DX,CTRLMOV AL,30HOUT DX,ALMOV DX,TIME0MOV AX,03HOUT DX,ALXCHG AH,ALOUT DX,ALCOUNT:MOV AH,06HMOV DL,0FFHINT 21HJZ COUNTMOV AX,4C00HINT 21HCODE ENDSEND START实验二程序代码:CTRL EQU 283HTIME0 EQU 280HTIME1 EQU 281HDATA SEGMENTMESS DB 'ENTER ANY KEY RETURN TO DOS!',0DH,0AH,'$' DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DX,AXMOV DX,OFFSET MESSMOV AH,09HINT 21HMOV DX,CTRLMOV AL,36HOUT DX,ALMOV AL,76H OUT DX,ALMOV DX,TIME0 MOV AX,1000OUT DX,ALXCHG AH,ALOUT DX,ALMOV DX,TIME1 MOV AX,1000OUT DX,ALXCHG AH,ALOUT DX,ALCOUNT:MOV AH,06H MOV DL,0FFHINT 21HJZ COUNTMOV AX,4C00HINT 21HCODE ENDSEND START4.实验数据、现象及结果分析5. 实验思考题1)实验一中的定时器0的输出OUT0的电平是如何变化的,为什么?解:假设对定时器0赋初值为3,则控制字发送后,OUT0变为低电平,当手动输入3个单脉冲后,OUT0变为高电平。
微机原理实验报告实验题目:可编程定时器/计数器8253一、实验目的1、学习8253可编程定时器/计数器定时方法2、学习8253多级串联实现大时间常数定时方法二、实验内容编一个1秒定时子程序,并提示有键盘读入要计时的时间,并把数值显示在屏幕上三、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干四、实现过程1、流程图2、程序源代码;*****************************************IOY0 EQU 280H;*****************************************MY8253_COUNT0 EQU IOY0+00HMY8253_COUNT1 EQU IOY0+01HMY8253_COUNT2 EQU IOY0+02HMY8253_MODE EQU IOY0+03H;*****************************************MY8255IOY0 EQU 2A0H;*****************************************MY8255_A EQU MY8255IOY0+00HMY8255_B EQU MY8255IOY0+01HMY8255_C EQU MY8255IOY0+02HMY8255_MODE EQU MY8255IOY0+03HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTCOUNTER2 DB 0MESG1 DB 'Please input your number:',0DH,0AH,'$' ;提示语一,请输入数字MESG2 DB 'It is counting:',0DH,0AH,'$';提示语二,正在计数MESG3 DB 'Wrong input,please input again:',0DH,0AH,'$';提示语三,输入错误,请重新输入DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESG1 ;输出提示语MOV AH,9INT 21HDEAL: MOV AH,1 ;读入一个数字INT 21HCMP AL,'0'JL EXITCMP AL,'9'JG EXITMOV BL,ALSUB BL,30H ;把输入的ASCII码转化成数字ADD COUNTER2,BL ;COUNTER2+=INPUTMOV CH,00HMOV CL,COUNTER2MOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HONE_SECOND:MOV AL,CL ;输出当前计数值CXADD AL,30HMOV DL,ALMOV AH,02INT 21HMOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HMOV DX,MY8253_MODE ;计数器0,方式3,十进制计数MOV AL,37HOUT DX,ALMOV DX,MY8253_COUNT0 ;装入初值MOV AL,00H ;1000分频OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,MY8253_MODE ;计数器1,方式0,十进制计数MOV AL,71HOUT DX,ALMOV DX,MY8253_COUNT1 ;装入初值MOV AL,00H ;1000分频MOV AL,10HOUT DX,ALMOV DX,MY8255_MODEMOV AL,89HOUT DX,ALMOV DX,MY8255_CL1: IN AL,DX ;判断PC7口是否为高,即计数一秒是否已到TEST AL,80HJZ L1DEC CXJNZ ONE_SECONDQUIT:MOV AX,4C00HINT 21HEXIT: MOV DX,OFFSET MESG3 ;输入范围错误,提示重新输入MOV AH,9INT 21HJMP DEALCODE ENDSEND START3、实验结果图五、实验改进1、说明本实验中课本上只给出了0~9秒的计数,而实际运用的时候我们经常会需要用到任意值的定时,因此我们做了改进,计时可以输入任意数,若要输出到屏幕则能计数0~992、流程图注:改进的地方是分十位和个位进行存储和输出显示六、小结1、通过本次试验,我进一步了解了8253的定时和计数功能,以及如何通过串联定时器的方式实现大时间常数的定时。
计算机科学与技术学院计算机组成原理课程设计报告书课题名扩展8253定时计数器班级芙蓉计算机0801 姓名黎祖吉学号 08120134 指导教师杨红杰日期 2010.12.20 ~ 2010.12.24一、设计目的1、融会贯通教材各章的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,以及对计算机工作中“时间-空间”概念的理解,从而清晰地建立计算机的整机概念。
2、在构成一台完整的模型机的基础上,控制真实的外围接口芯片,进行基本的接口实验。
3、本实验外扩一块8253接口实验板,完成定时计数器实验。
4、熟悉8253定时器/计数器的功能及接口方法。
二、实验任务1.分析本实验主板上8253的硬件电路原理。
2.熟悉8253的工作原理后,运行出8253的初始化程序。
三、设计内容1、8253的引脚8253有3个独立的16位减计器通道,每一个通道有三条引线:CLK、GATE和OUT。
① CLK: 输入时钟, 8253规定,加在CLK引脚的输入时钟周期不能小于380ns。
② GATE:门控信号输入引脚。
这是控制计数器工作的一个外部信号。
当GATE引脚为低时,通常都是禁止计数器工作的;只有 GATE为高时,才允许计数器工作。
③ OUT:输出引脚。
当计数到“0”时,OUT 引脚上必然有输出,输出信号波形取决于工作方式。
8253内部端口的选择及每个通道的读/写操作的选择如下表所示:RD WR A1A0寄存器选择和操作1000写入计数器01001写入计数器11010写入计数器21011写入控制寄存器0100读计数器00101读计数器10110读计数器20111无操作(3态)8253的端口的控制子:实验电路组成原理框图:D7D6D5D4D3D2D1D000 选择计数器001 选择计数器110 选择计数器211 非法选择00 计数器锁存命令01 只读/写最高有效字节 (高8位)10 只读/写最低有效字节 (低8位)11 先写最低有效字节 再写最高有效字节000 方式0001 方式1x10 方式2x11 方式3100 方式4101 方式50 二进制1 BCD初始状态:2、 8253的工作方式和输出波形方式功能输出波形0计完最后一个数中断写入计数值N后,经过N+1个CLK脉冲输出变高1硬件再触发单拍脉冲单拍脉冲的宽度为N个CLK脉冲2速率发生器每N个CLK脉冲,输出一个宽度为CLK周期的脉冲3方波速率发生器写入N后,输出1/2N个CLK高电平,1/2N个CLK低电平(N为偶数)(N+1)/2个CLK高电平,(N-1)/2N个CLK低电平(N为奇数) {4软件触发选通写入N后,过N+1个CLK,输出一个宽度为1个CLK的脉冲5硬件触发选通门控触发后,过N+1个CLK,输出一个宽度为1个CLK的脉冲芯片介绍8253芯片内部有三个独立的16位定时/计数器。
掌握8253芯⽚实现定时计数功能的⼯作⽅式及编程⽅法。
1) 8253A的六种⼯作⽅式测试程序00_test~05_test存放在实验4.2项⽬的⼦⽂件夹test⾥。
例如⽅式3测试程序03_test,其功能是在8253A 芯⽚的OUT0输出端产⽣周期性的⽅波,周期宽度是N个CLK周期(N是程序设定的计数初始值)。
2)编译、烧写、⾃动运⾏上述程序03_test.asm,观察虚拟⽰波器显⽰的A端和B端波形。
3) 00test.asm是8253A⼯作⽅式0测试程序,与⽅式3不同的是,⽅式0产⽣的是⼀次性的上升沿跳变。
编译、烧写、⾃动运⾏00test源程序,观察虚拟⽰波器显⽰的波形。
4)编译、烧写和⾃动运⾏01test、04test和05test源程序,观察上述程序运⾏中的虚拟⽰波器显⽰波形,对⽐8253A的⼯作⽅式1和⽅式0、以及⼯作⽅式4和⽅式5的运⾏结果。
理工学院实验报告(1)、连接实验电路连线:8253 CS ------ 端口地址 300CS PACK IMS ----- 393 1A393 1QD ------ 8253 CLK18253 OUT1 ---- 8253 CLK28253 OUT2 ---- 发光二极管 L15 8253 GATE1 -- (A10)+5V8253 GATE2 -- (A10)+5V结果如下图所示:(2)、实验程序如下所示:CS8253 EQU 0303HCOUNT0 EQU 0300HCOUNT1 EQU 0301HCOUNT2 EQU 0302HCODE SEGMENTASSUME CS:CODESTART PROC NEARMOV DX,CS8253MOV AL,01110110BOUT DX,ALMOV DX,COUNT1MOV AX,307OUT DX,ALMOV AL,AHOUT DX,ALMOV DX,CS8253MOV AL,10110110BOUT DX,ALMOV DX,COUNT2MOV AX,1000OUT DX,ALMOV AL,AHOUT DX,ALJMP $START ENDPCODE ENDS(3)、经编译、无语法错误后装载到实验系统,全速运行程序,观察发光二极管L15,应有周期为1s的点亮、熄灭。
结果如下图所示:一秒后又熄灭,如此往复。
(4)、做完实验后,应按暂停命令中止程序的运行。
二、8253计数器实验验证8253的工作方式3,CLK1每输入5个单脉冲信号,改变一次OUT1状态。
实验电路:DATA BUS D7~D0D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS21RD22WR23OUT217A019GATE216A120CLK2188253/CS300CSIORIOWA0A1VCC1.8432MHzOUT0GATE1CLK1OUT1OUT2CLK2GATE2+5VSP单次正脉冲L15发光二极管显示图4-6-2 8253计数器实验电路图实验步骤:1)按图4-6-2连接实验电路,参考程序:8253-2.ASM;2)编写实验程序,经编译、无语法错误后装载到实验系统;3)全速运行程序,每按5次单脉冲按钮,改变1次发光二极管L15的状态;4)实验完毕后,应使用暂停命令中止程序的运行。
微机接口技术实验定时/计数器(8253)1. 实验原理TPC-USB平台上有一块8253定时/计数器芯片,除了片选引脚,其他信号都已接好。
有关结构和编程,请参考本章前几节内容。
2. 实验内容(1)计数器方式0实验将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
步骤如下:1)按图2.1虚线连接电路。
图2.1 TPC-USB平台计数器方式0实验连线图2)根据流程图2.2,编程并运行,观察实验结果。
图2.2 TPC-USB平台计数器方式0实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,10HMOV DX,283HOUT DX,ALMOV AL,0FHMOV DX,280HOUT DX,ALLL: MOV AL,00HMOV DX,283HOUT DX,ALMOV DX,280HIN AL,DXCMP AL,9JBE L1ADD AL,7L1:ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AH MOV AH,02H INT 21HMOV AH,6MOV DL,0FFH INT 21H JZ LLMOV AH, 4CH INT 21H CODE ENDS END START(2)计数器方式3实验将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。
步骤如下:1)按图2.3连接电路。
U5 8253+5V+5V图2.3 TPC-USB 平台计数器方式3实验连线2)根据流程图2.4,编程并运行,观察实验结果。
图2.4 TPC-USB平台计数器方式3实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,37HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,280HOUT DX,ALMOV AL,10HOUT DX,ALMOV AL,77HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,281HOUT DX,ALMOV AL,10HOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START(3)计数器级联实验将计数器0设置为方式3(方波),计数器1设置为方式2(分频)。
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时,输出端又变为高电平。
这样,使输出脉冲宽度延长。
8253定时器工作方式
8253定时器是一种常见的计时器芯片,它通常用于控制计算
机硬件设备的定时操作。
8253定时器可以通过以下方式工作:
1. 方式0:8253定时器的方式0是最基本的工作方式,它可以实现一个简单的定时功能。
在这个方式下,定时器计数器会从初始值开始递增,当计数器达到设定的目标值时,会触发一个计时中断。
2. 方式1:8253定时器的方式1是一种周期性工作方式。
在这个方式下,定时器计数器会从初始值开始递增,当计数器达到目标值时,会触发一个计时中断,并且回到初始值重新开始计数。
这样就实现了一个周期性的定时功能。
3. 方式2:8253定时器的方式2是一种用于产生脉冲的工作方式。
在这个方式下,定时器计数器会从初始值开始递增,当计数器达到目标值时,会反转输出引脚的电平,然后回到初始值重新开始计数。
这样就可以产生一个周期性的脉冲信号。
以上是8253定时器的三种常见工作方式,它们可以根据实际
需要选择合适的方式来实现所需的定时功能。
_____________ 实验报告专业班级实验题目__________________________________ 日期_____________实验三:可编程定时/计数器8253、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形、实验设备MU—m型实验箱、8086CPU莫块、示波器三、实验内容8253计数器0,1,2工作于方波方式,观察其输出波形四、实验原理本实验用到两局部电路:脉冲产生电路、8253定时器/计数器电路脉冲产生电路:该电路由1片74LS161、1片74LS04 1片74LS132组成。
CLK0是6MHz输出时钟为该CLK0的2分频〔CLK1, 4分频〔CLK2 , 8分频〔CLK3 , 16分频〔CLK4 , 相应输出插孔(CLK0~CLK4)。
H H F II脉冲产生电路8253定时器/计数器电路:该电路由1片8253组成,8253的片选输入端插孔CS8253 数据口、地址、读、写线均已接好, TO 、T1、T2时钟输入分别为8253CLK0 8253CLK1 8253CLK2 定时器输出、GATE 空制孔对应如下:OUTO GATE0OUT1 GATE1 OUT2 GATE2 CLK2原理图如下:注:GATE 言号无输入时为高电平PGM8253定时器/计数器电路四、实验连线1、实验连线:CSO CS8253 CLK4 8253CLK0 OUTO 8253CLK1 OUT1 8253CLK2 OUT2示波器或发光二级管; 各通道门控信号GATE +5V 2、 编程调试程序3、全速运行,观察实验结果。
输入频率不同,输出频率也不同。
五、程序框图CQT0 -o^raa ■CLKd 丄OUTI - 缶TEI -亡UKI 二CS曲1TRAdcun - CHTZi - 占1CLKi -LrjS_ <JS5l fl --\、~~E ~3、、 ~~ IIQ TTH 白白E ]白由程序框图八、参考程序code segme ntassume cs:codeorg 100hsta rt: mov dx,04a6h通道0mov al,36h5out dx,almov dx,04a0hmov al,00hout dx,almov al,40hout dx,almov dx,04a6h通道1mov al,76h5out dx,almov dx,04a2hmov al,02hout dx,almov al,0hout dx,almov dx,04a6h通道2mov al,0b6h5out dx,almov dx,04a4hmov al,2hout dx,almov al,00hout dx,aljmp $code endsend start七、思考题1编程。
实验二定时/计数器8253工作方式一、实验目的1.熟悉8253在系统中的典型接法2.掌握8253的工作方式及应用编程二、实验设备Dais-8086H 教学实验系统1台仿真示波器1台三、实验内容及步骤8253是一种可编程定时/计数器,有3个16位计数器,其计数频率范围为0~2MHz,用+5V单电源供电。
●8253的功能用途:⑴延时中断⑵可编程频率发生器⑶事件计数器⑷二进制倍频器⑸实时时钟⑹数字单稳⑺复杂的电机控制器●8253的6种工作方式:⑴方式0:计数结束中断⑵方式1:可编程频率发生⑶方式2:频率发生器⑷方式3:方波频率发生器⑸方式4:软件触发的选通信号⑹方式5:硬件触发的选通信号本实验设8253的0通道工作在方式3,产生方波。
四、程序流程四、实验电路五、实验步骤(1)按实验电路图连接线路:①8253的GATE0接+5V。
②8253的CLK0插孔接分频器74LS393的T2插孔,分频器的频率源为:4.9152MHZ。
③按照实验一中3.3的实验步骤②要求连接138译码电路,8253的CS孔与138译码器的Y0孔相连。
④用8芯排线或8芯扁平线把D0~D7总线接口(部分机型位于8251右侧)与数据总线单元D0~D7任一接口相连。
(2)运行实验程序在系统处于命令提示符“P.”状态下,输入3490,按EXEC键。
或从PC机发运行命令。
(3)用示波器测量8253的OUT0输出插孔有方波产生,仿真示波器查看CH1波形。
(4)按复位键RESET 返回“P.”六、实验程序CODE SEGMENTASSUME CS:CODE,DS:CODE,ES:CODE ORG 3490HH9: 。
。
。
JMP $ CODE ENDS END H9七、实验思考1. 为什么8253的方式3可以产生方波?2. 8253的CS 孔与138译码器的Y0孔相连,其作用是什么?扩展实验: 定时/计数器:8253方波(二)一、实验目的⑴ 掌握8253定时器/计数器的工作方式和编程原理。
四、实验步骤1、验证性实验(使用8253产生1S的时钟)具体要求:采用计数器0和计数器1完成对2MHz输入方波信号的两级分频(将计数器0的输出作为计数器1的输入),定时常数均为1000,得到一个周期为2秒钟的方波,用此方波控制蜂鸣器发出报警信号。
实验步骤:参见《微机原理及接口技术实验指导书》P.39“演示实验”的相关内容。
.MODEL TINYCOM_ADDR EQU 0B003HT0_ADDR EQU 0B000HT1_ADDR EQU 0B001H.STACK 100.CODESTART: MOV DX,COM_ADDRMOV AL,35HOUT DX,ALMOV DX,T0_ADDRMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALMOV DX,COM_ADDRMOV AL,77HOUT DX,ALMOV DX,T1_ADDRMOV AL,00HOUT DX,ALMOV AL,10HOUT DX,ALJMP $END START图1 8253实验原理图2、拓展性实验(LED指示灯的计次闪烁)具体要求:将8253的CLK0接到脉冲发生开关S4端,OUT0接到一发光二极管。
将8253的计数器0初始化为方式0,并设置计数初值6。
拨动脉冲发生开关并计数,观察LED的变化与拨动开关次数的关系。
实验步骤:参见《微机原理及接口技术实验指导书》P.39“编程实验”的相关内容。
.MODEL TINYCOM_ADDR EQU 0B003HT0_ADDR EQU 0B000H.STACK 100.CODESTART: MOV DX,COM_ADDRMOV AL,11HOUT DX,ALMOV DX,T0_ADDRMOV AL,06HOUT DX,ALEND START。
实验二定时/计数器8253工作方式
一、实验目的
1.熟悉8253在系统中的典型接法
2.掌握8253的工作方式及应用编程
二、实验设备
Dais-8086H 教学实验系统1台仿真示波器1台
三、实验内容及步骤
8253是一种可编程定时/计数器,有3个16位计数器,其计数频率范围为0~2MHz,用+5V单电源供电。
●8253的功能用途:
⑴延时中断⑵可编程频率发生器⑶事件计数器⑷二进制倍频器
⑸实时时钟⑹数字单稳⑺复杂的电机控制器
●8253的6种工作方式:
⑴方式0:计数结束中断⑵方式1:可编程频率发生
⑶方式2:频率发生器⑷方式3:方波频率发生器
⑸方式4:软件触发的选通信号⑹方式5:硬件触发的选通信号
本实验设8253的0通道工作在方式3,产生方波。
四、程序流程
四、实验电路
五、实验步骤
(1)按实验电路图连接线路:
①8253的GATE0接+5V。
②8253的CLK0插孔接分频器74LS393的T2插孔,分频器的频率源为:4.9152MHZ。
③按照实验一中3.3的实验步骤②要求连接138译码电路,8253的CS孔与138译码器的Y0孔相连。
④用8芯排线或8芯扁平线把D0~D7总线接口(部分机型位于8251右侧)与数据总线单元D0~D7任一接口相连。
(2)运行实验程序
在系统处于命令提示符“P.”状态下,输入3490,按EXEC键。
或从PC机发运行命令。
(3)用示波器测量8253的OUT0输出插孔有方波产生,仿真示波器查看CH1波形。
(4)按复位键RESET 返回“P.”
六、实验程序
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE ORG 3490H
H9: 。
。
。
JMP $ CODE ENDS END H9
七、实验思考
1. 为什么8253的方式3可以产生方波?
2. 8253的CS 孔与138译码器的Y0孔相连,其作用是什么?
扩展实验: 定时/计数器:8253方波(二)
一、实验目的
⑴ 掌握8253定时器/计数器的工作方式和编程原理。
⑵ 深入理解CLK 、GATE 、OUT 之间的关系。
二、实验内容
以 1.228MHz 输入(T1)8253,实现每5秒定时中断,8253片选用Y3,8253四个端口地址分别为0FFECH--0FFEFH 片选Y3,用2通道作为输入,0通道作为输出产生如下波形。
实验要求:
1、掌握 CLK 、OUT 、与初值的关系,画出OUT1和OUT0的输出波形
2、通过改变GATE 信号,输出波形有何变化
三、实验电路
四、实验步骤
⑴ 按实验电路图连接线路:按实验电路图连接138译码输入端A.B.C ,其中A 连A2,B 连A3,C 连A4,
5ms 5秒
5ms
5ms
CS
每5秒产生一个脉冲
OUT0 GATE0 CLK0
OUT2 GATE2 CLK2
1.228M
+5V +5V
Y 3
8253
5秒
5秒 OUT 0
138使能控制输入端G与位于地址线A0引出孔所在位置下方的使能控制输出端G作对应连接,该端的寻址范围为0FFE0H~0FFFFH。
① 8253的GATE0接+5V。
② 8253的CLK2插孔接分频器74LS393的T1插孔
③把8253的CS孔与138译码器的Y3孔相连。
④用8芯排线或8芯扁平线把D0~D7总线接口(位于8251右侧)与数据总线单元D0~D7任一接口相连。
按图连接 OUT1接到CLK0
⑵根据连接电路图,设计程序
⑶用示波器测量8253的OUT0输出插孔的波形。
五、实验参考程序
CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
ORG 3490H
H9: 。
JMP $
CODE ENDS
END H9
六、实验思考
1. 如何计算波形初值?
2. 解释如何计算程序中需要的各口地址?
预备知识
1.8253A内部结构
8253A定时/计数器具有定时、计数双功能。
它具有三个相同且相互独立的16 位减法计数器,分别称为计数器0、计数器1、计数器2。
每个计数器计数频率为0~2MHZ,其内部结构如图2-16所示。
由于其内部数据总线缓冲器为双向三态,故可直接接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;图中的读写控制逻辑,当选中该芯片时,根据读写命令及送来的地址信息控制整个芯片工作;图中的控制字寄存器用于接收数据总线缓冲器的信息:当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值,控制寄存器为8位,只写不能读。
图2-168253A 内部结构图图2-17 计数器内部结构图2.计数器内部结构
如图2-17所示,每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。
在计数器工作时,初值不受影响,以便进行重复计数。
图中每个计数器有一个时钟输入端CLK作为计数脉冲源,计数方式可以是二进制,计数范围1~10000H,也可以是十进制,计数范围1~65536。
门控端GATE用于控制计数开始和停止。
输出OUT端当计数器计数值减到零时,该端输出标志信号。
3.8253A端口地址选择见表2-2
表2—2
4.8253A功能
8253 A既可作定时器又可作计数器:
1)计数:计数器装入初值后,当GATE为高电平时,可用外部事件作为CLK 脉冲对计数值进行减1 计数,每来一个脉冲减1,当计数值减至0时,由OUT 端输出一个标志信号。
2)定时:计数器装入初值后,当GATE为高电平时,由CLK 脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。
除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。
5.8253A控制字
说明:
1)8253 A每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输出一个信号。
2)8253 A编程时先写控制字,再写时间常数。
6.8253A工作方式
1)方式0:计数结束产生中断方式
当写入控制字后,OUT变为低电平,当写入初值后立即开始计数,当计数结束时,变成高电平。
2)方式1:可编程单次脉冲方式
当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。
3)方式2:频率发生器方式
当初值装入时,OUT变为高;计数结束,OUT变为低。
该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变高,当GATE再变高时,便启动一次新的计数周期。
4)方式3:方波发生器
当装入初值后,在GATE上升沿启动计数,OUT 输出高电平;当计数完成一半时,OUT输出低电平。
5)方式4:软件触发选通
当写入控制字后,OUT输出为高;装入初值且GATE为高时开始计数,当计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。
6)方式5:硬件触发选通
在GATE上升沿启动计数器,OUT一直保持高电平;计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。