实验二 可编程定时器/计数器(8253)
微机原理实验 可编程定时器计数器82548253实验
图2 8253/8254定时器/计数器实验连线图
六、实验源程序清单
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL, 00010110B;控制字00-计数器0,01-低8位,011-方式3,0-二进制
OUT 03H,AL;将控制字写入控制寄存器
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
图1可编程定时器/计数器8253/8254原理图
(2).计数器都有6种工作方式:
方式0—计数过程结束时中断;
方式1—可编程的单拍脉冲;
方式2—频率发生器;
方式3—方波发生器;
方式4—软件触发;
方式5—硬件触发。
(3)6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
九、实验总结
硬件实验相对来说趣味性大了很多,同时也使得程序没那么复杂不过存在的问题突出表现于受到硬件实验条件的制约,硬件上的小问题就有可能导致不能出显预想的结果这也就使得在硬件连接上要很小心。
十、思考题
1.若8254模块选通线CS连到MCU主模块的地址A12,则应如何修改程序?
答:改变了存储芯片的地址范围所以将程序对应的地址范围改过即可。接A12对应地址范围是6800~6FFFH;接A14对应地址范围是3800~3FFFH。
汇编语言 可编程定时器/计数器(8253)
信息学院实验报告学号:114100136 姓名:熊忠飞班级:11B课程名称:微机原理、汇编与接口技术实验名称:可编程定时器/计数器(8253)实验性质:验证性实验实验时间: 2013 年 6 月 7 日实验地点:睿智4号楼一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容及要求1、按图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
2、按图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。
3、编程提示(1)8253控制寄存器地址 283H 计数器0地址 280H计数器1地址 281HCLK0连接时钟 1MHZ(2)参考流程图三、实验步骤及结果1、代码如下:(1)计数器stack segment stack'stack'dw 32 dup(0)stack endsdata segmentioport equ 0ec00h-0280hio8253a equ ioport+283hio8253b equ ioport+280h data endscode segmentassume cs:code,ds:data,ss:stack start:mov ax,datamov ds,axmov al,10hmov dx,io8253aout dx,almov dx,io8253bmov al,0fhout dx,alzby: mov dx,io8253amov al,00hout dx,almov dx,io8253bin al,dxand al,0fhmov dl,alcmp dl,9jbe numadd dl,7num: add dl,30hmov ah,2hint 21hjmp zbymov ah,4chint 21hcode endsend start(2)定时器stack segment stack'stack'dw 32 dup(0)stack endsdata segmentioport equ 0ec00h-0280hio8253a equ ioport+280hio8253b equ ioport+281hio8253c equ ioport+283hdata endscode segmentassume cs:code,ds:data,ss:stackstart:mov ax,datamov ds,axmov dx,io8253cmov al,00110110Bout dx,almov dx,io8253amov al,0E8Hout dx,almov al,03Hout dx,almov dx,io8253cmov al,01110110Bout dx,almov dx,io8253bmov al,0E8Hout dx,almov al,03Hout dx,almov ah,4chint 21hcode endsend start四、实验小结通过本实验,掌握了8253这块芯片的一些基本功能,在实验中不仅学会了用计数器0计数,还学会了用计数器2和计数器1。
可编程定时器计数器(8253)实验报告
END START
5・对程序进行编译、链接、仿真,仿真结果如图4、图5所示。
图4方波图(A通道,黄色)
图Байду номын сангаас脉冲图(D通道,绿色)
六、实验总结
本次实验,巫点在于自己找资料,理解透8253的控制方式及工作原理。只 要理解了 8253的原理,再配上汇编指令,便轻松完成本次实验。
到现在,一共做了 6次实验。6次实验都是与外设打交道,故常用到的指令 就MOV, OUT, IN三条指令,常用到的寄存器就AX, DX,常用到的寻址方式 是寄存器间接寻址(DX用在此处)。当访问的端口地址小于255时,则可以采 用直接寻址,不用DX间接寻址;当访问的端口地址大于255时,寄存器间接寻 址则是必须的,必须用到DX寄存器。
START:JMPTCONT
TCONTRO EQU 0A006H
TCONO
EQU OAOOOH
TCONl
EQU OA002H
TCON2
EQU OA004H
TCONT:
MOV DX.TCONTRO
MOV Ak27H;计数器0,只写初值«8位■方式3.BCD码
OUT DX.AL
MOV DX.TCONO
MOVAklOH;时钟为IMH乙计数时间“usrOOO•输出频率1KHZ
01读/写计数器低8位
10读/写计数器高8位
11先读/写计数器低8位,
畀读/写计数器髙8位」
图2 8253控制字格式
8253有4个端口,且通过A[1…0]引脚控制着4个端口。访问端口如所示。
A1
A0
访问端口
0
0
CNT0端口地址
0
1
CNT1端口地址
1
8253计数器实验报告
8253计数器实验报告8253计数器实验报告引言:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本文将对8253计数器实验进行报告,介绍实验目的、实验步骤、实验结果和结论。
实验目的:本次实验的目的是熟悉8253计数器的工作原理和使用方法,掌握8253计数器的基本功能和应用场景。
实验步骤:1. 准备实验材料:8253计数器、示波器、电源等。
2. 搭建实验电路:根据实验要求,将8253计数器与示波器和电源相连,确保电路连接正确。
3. 设置实验参数:根据实验要求,设置8253计数器的工作模式、计数范围等参数。
4. 运行实验程序:编写实验程序,通过编程控制8253计数器的工作状态,观察实验结果。
5. 记录实验数据:使用示波器等仪器,记录实验过程中的数据和波形图。
6. 分析实验结果:根据实验数据和波形图,分析8253计数器的工作状态和性能。
实验结果:通过实验,我们观察到了8253计数器的不同工作模式下的输出结果。
在定时器模式下,我们设置了不同的计数范围和计数频率,观察到了计数器的计数过程和计数结果。
在计数器模式下,我们设置了不同的计数方向和计数初始值,观察到了计数器的增减过程和最终的计数结果。
结论:通过本次实验,我们对8253计数器的工作原理和使用方法有了更深入的了解。
我们掌握了8253计数器的基本功能和应用场景,能够根据实际需求设置计数器的工作模式和参数。
实验结果表明,8253计数器具有较高的计数精度和稳定性,在计时、计数等领域有广泛的应用前景。
总结:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本次实验报告对8253计数器的实验进行了详细介绍,包括实验目的、实验步骤、实验结果和结论。
通过本次实验,我们对8253计数器有了更深入的了解,掌握了其基本功能和应用场景。
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)按要求设计的电路正确连接线路,检查完毕后打开电源。
微机原理和接口技术可编程定时器计数器8253
实验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种不同的工作方式。
【VIP专享】微机实验 可编程定时器计数器8253
微机原理实验报告实验题目:可编程定时器/计数器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实验
【本次实验所使用的模块区,见下两页】
CODE SEGMENT 'code' ASSUME CS:CODE START: MOV DX,307H MOV AL,01110110B OUT DX,AL MOV DX,305H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV DX,307H MOV AL,10110110B OUT DX,AL MOV DX,306H MOV AL,0E8H OUT DX,AL MOV AL,03H OUT DX,AL MOV AH,4CH INT 21H CODE ENDS END START
实验程序8253key1.ASM
;注:03E8H=1000D
思考题
① 利用8253、8259和8255设计中断方式走马灯电路, 8253每秒通过总线向8253发出一次中断申请, 8259中断允许后,8255的A端口输出一个数据,使 得和A端口相连的8个发光二极管依次变亮且每次 只亮一个。 ② 利用8253和8255设计查询方式走马灯电路,8253 每秒使的PC4的电位变化一次,编程查询PC4的状 态,当PC4为低电平时从8255的A端口输出一个数 据,使得和A端口相连的8个发光二极管依次变亮 且每次只亮一个。
附录 8253的端口地址
0号计数器 304H 1号计数器 305H 2号计数器 306H 计数器控制寄存器 307H
8253控制寄存器(1)
8253控制寄存器(2)
实验八
定时器/计数器8253
【实验名称】 定时器/计数器8253 【实验目的】 了解定时器/计数器8253的原理,掌握编制定时器/计数器 程序设计方法。 【实验内容】 设计连线和程序,以1MHz的信号为时钟信号,利用8253产 生1s的定时控制发光二极管变化。 【实验原理图】 实验原理图见下页,其中译码电路见实验六存储器连接。
微机实验 可编程定时器计数器8253
微机原理实验报告实验题目:可编程定时器/计数器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定时器实验-8页word资料
实验报告实验名称可编程定时器/计数器(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芯片进行计数和定时。
(1)8253定时/计数器芯片的内部结构:8253定时/计数器芯片的内部结构如图1所示。
可编程定时计数器8253
可编程定时/计数器8253
5
通道控制寄存器
❖ 一个通道控制寄存器 ❖ CPU通过对控制寄存器的读写,可以分别对
三个计数通道的工作方式进行设置 ❖ 只能写不能读
20010.12
可编程定时/计数器8253
6
数据总线缓冲器
❖ 双向三态的8位数据缓冲器,实现8253和 CPU之间的数据接口
读/写控制电路
8253的方式1就是一个可编程单稳电路
❖ 方式1工作过程
门控信号GATE是触发信号,上升沿有效。即开始计数是由GATE的
上升沿触发的; 触发后,通道计数器开始计数,输出端OUT由高变低; 计数器计数到0,OUT再由低变高。
PW=N×Tclk
PW:输出的负脉冲宽度 ;N:初始计数值,Tclk:CLK端的脉冲周期
可编程定时计数器8253
计数通道
❖ 通道0、通道1和通道2
❖ CLK:计数器的脉冲输入端,GATE: 计数器的门控 信号,OUT: 计数器的输出信号,一般与计数溢出 有关。
❖ 工作原理:
8253计数器工作在减1状态,每输入一个计数脉冲,计数
器值减1,当计数器 CLK
计数到零时,OUT信
16位计数器 OUT
锁存控制字: 0000XXXXB
20010.12
可编程定时/计数器8253
10
工作方式选择(M2、M1、M0)
控制字的D5D4为00,表示的是锁 存命令。这时控制字中的低4位无 效
BCD计数制:写入初值范围为0000到 9999,而0000是最大值,代表10000
二进制计数制:写入初值范围为0000 到FFFFH,其中0000为最大值,代表 65536。
对OUT端,方式2提供给用户的是负脉冲,方式3提供给用 户的是方波。
可编程定时-计数器8253
接口技术
•8086/8088中断响应周期时,CPU的INTA引脚的 正确功能是—————— A.输出一个负脉冲,CPU从D7~D0读入中断类型码 B.输出两个负脉冲,在第二个负脉冲期间,CPU 从A7~A0读入中断类型码 C.输出两个负脉冲,在第二个负脉冲期间,CPU 从D7~D0读入中断类型码
D.输出一个负脉冲,CPU从A7~A0读入中断类型 码
接口技术
7.1.4 中断嵌套 当CPU执行优先级较低的中断服务程序时,允许响 应比它优先级高的中断源请求中断,而挂起正在处 理的中断。 (1)屏蔽同级和较低级中断请求。 (2)在保护现场、屏蔽同级和较低级中断完成后, 用STI指令来开中断。 (3)中断服务程序结束后,恢复现场前,用CLI指 令来关中断,然后才能恢复现场。 (4)恢复现场后,CPU应该重新开放中断,以便允 许任何其它等待着的中断请求有可能被CPU响应。
CNT2:标准定时,定时时间为1S。
8253
D7~D0
系
A1
统 总
A0 IOR
IOW
线
A2~A15
地址 译码器
D7~D0
CLK OUT
2 2
A1 A0
CLK 1 OUT 1
RD WR
CLK 0
OUT 0 CS GATE 1
GATE 2 GATE 3
送8259的IR 2端 2.5MHz 1kHz方波 外部事件
接口技术
计数结束时,输出一个时钟周期的负脉冲;
计数中写入新初值,待GATE信号重新启动之后 才置入计数器使用。
WR
CLK
GATE OUT
CW N=4
4 32 1 0 图7.19 方式5 的波形
接口技术
例7.5 IBM PC/XT主机板上有一片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工作方式
实验二定时/计数器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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称通用微机接口实验
实验项目实验二可编程定时器/计数器(8253)
系别光电信息与通信工程
专业/班级通信1004
姓名/学号李春艳/2010010449
实验日期 2013.06.15
成绩_______________________________
指导教师 _ _____
实验二可编程定时器/计数器(8253)
一、实验目的
掌握8253的基本工作原理和编程方法,用示波器观察不同方式下的波形。
二、实验内容
1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动
逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化
(当输入N+1个脉冲后OUT0变高电平)。
三、编程
ioport EQU 0ec00h-0280h ;实验箱的基本地址
io53c EQU ioport+283h ;控制寄存器端口地址
io530 EQU ioport+281h ;通道1的地址281h
code SEGMENT
ASSUME CS:code ;规定CODE为代码段
start:
MOV AL,54H
MOV DX,io53c ;把控制字写到控制端
OUT DX,AL ;将此时AL的值送入DX端口
MOV DX,io530
MOV AL,0FH ;计数初值装载到通道0/1中
OUT DX,AL
lll: MOV DX,io530 ;硬件执行
IN AL,DX ;从端口读数进来,计数器当前的值,读到AL寄存器中
CALL disp ;调用语句disp
MOV AH,01h
INT 16h ;等待
JZ lll
MOV AH,4ch ;将4CH存入AH
INT 21h ;dos中断返回
disp PROC NEAR ;过程定义关键字,NEAR近调用(FAR远调用)
AND AL,0fh ;将AL寄存器的内容与0FH进行“与”运算,
MOV DL,AL ;将AL的值送入DL寄存器
CMP DL,9 ;判断是否<=9
JLE num ;若是<=9 则为'0'-'9',ASCII码加30H
ADD DL,7 ;否则为'A'-'F',ASCII码加37H
num: ADD DL,30h ;将DL的值与30H进行相加后,再送DL中
MOV AH,02h ;显示
INT 21h ;调用DOS21中断
MOV DL,0dh ;加回车符
INT 21h
MOV DL,0ah ;加换行符
INT 21h
RET ;子程序内部返回指令return
disp ENDP ;显示子程序结束
code ENDS ;代码段结束
END ;程序结束
四、实验结果
通道0,方式0:运行之后从F减一计数到0后由低电平跳转到高电平,不再有任何电平改变不再计数。
说明方式0不具备自重装载功能。
通道0,方式2:运行之后F减到1,之后高电平跳转到低电平,之后由1到F,电平由低跳到高。
说明方式2有自重装载功能。
通道1,方式2:与通道0,方式2相同。
说明通道0和通道1的作用相同。
五、实验心得
对8253有了一定的了解和应用。
CLK:计数器的脉冲输入端,GATE: 计数器的门控信号,OUT: 计数器的输出信号.8253计数器有6种工作方式。
对于8253的基本原理有了更深、更明确的了解。
对于编程用的语句指令在实验箱上的流程基本上可以对应上并明白其语句作用,代码的含义与使用有了更加深刻的印象和掌握。
还有对于8253计数器的用法有了初步的了解和掌握。