8253计数器实验
8253计数器实验
本科学生实验报告5.实验设计思路、步骤及注意事项:实验设计思路:本实验利用8253芯片工作在方式3下,作为一个秒信号发生器,其输出带动一个发光二极管,在一个周期内,发光二极管点亮2秒,熄灭2秒,即OUT端输出方波信号,再把方波信号通过8255芯片;并设8255芯片的C口高四位输入,低4位输出,A口输出,之后产生八个方波信号,8255芯片的输出口PA0~PA7接LED灯;用LED灯的亮暗来表示字符‘A’到‘Z’的ASCII码;并编写ASM程序来控制8253芯片和8255芯片的工作方式;实验步骤:1.根据实验流程图的要求,按照实验原理图接好电路;2.打开电源开关,用TPC-USB集成开发软件检查硬件是否连接;3.对ASM程序进行调试,正确之后运行ASM程序,观察实验箱上LED灯的亮暗;4.记录实验现象,对实验现象进行分析总结;5.完成实验报告;注意事项:1.在打开电源开关之前应检查电路是否连接正确,以免损坏实验器件;2. 仔细观察实验现象,LED灯是否达到了用来显示字符‘A’到‘Z’的ASCII码的实验目的;二、实验内容1.对实验现象、实验结果的分析及其结论:LED灯的亮暗显示了字符‘H’的ASCII码值LED灯的亮暗显示了字符‘I’的ASCII码值LED灯的亮暗显示了字符‘Q’的ASCII码值实验结果的分析及其结论:通过本实验加深了对8253芯片和8255芯片的各种工作方式的了解;8255芯片有3种工作方式,这3种工作方式如表1所示。
方式0为基本I/O 输入/输出方式,这是8255最常用,也是最基本的工作方式。
方式1为应答I/O 方式,当8255工作于应答I/O方式时,上C口作为A口的通信线,下C口作为B口的通信线。
方式2为双向应答I/O方式,此方式仅A口使用,B口无双向I/O应答方式。
8255的3种工作方式的选择由8255工作方式选择字决定,下面介绍8255的工作方式选择字。
表1 8255的工作方式:8255芯片初始化:所谓8255芯片初始化,就是要根据工作要求确定8255工作方式选择字,并输入8255控制寄存器。
8253定时计数器实验报告
实验四定时计数器实验
一、实验目的
1.了解定时器8253的初始化及使用方法
2.会用逻辑笔或示波器观察8253的工作状态
二、实验要求
编写程序,使8253的定时/计数器2工作在方式3下,使逻辑笔交替显示三、实验算法
先对8253进行初始化,选择计数器2工作在方式3下,输入计数值ffH,则O2端输出以FFH为周期的方波,将O2端连到逻辑笔输入端即可观察现象。
四、实验电路图
如图所示:
五、程序清单
T IM_CTL EQU 203H
TIMER0 EQU 200H
TIMER1 EQU 201H
TIMER2 EQU 202H
MODE23 EQU 0B6H
MODE13 EQU 76H
CODE SEGMENT
ASSUME CS:CODE
START:
TT: CLI
MOV DX,TIM_CTL
MOV AL,MODE23
OUT DX,AL ;8253初始化,选择计数器2工作在方式3下 MOV DX,TIMER2
MOV AL,0FFh
OUT DX,AL
MOV AL,0FFh ;设置输入数值为FFFFH
OUT DX,AL
WT: JMP WT ;无限循环显示程序现象
CODE ENDS
END START
六、实验现象结果与分析
K0打开,逻辑笔有红绿变化
七、实验体会
通过本实验知道了如何运用8253定时计数,了解了8253的功能特点,知道了如何运用8253进行定时做事。
八、主要仪器设备
计算机、接口实验箱平台。
实验三 8253定时 计数器实验
实验三8253定时/计数器实验一.实验目的了解8253的硬件连接方法,掌握8253的各种方式的编程及其原理。
二.实验要求编写程序,将8253的计数器0设置为方式3(方波),计数器1设置为方式2(分频),计数器2设置为方式2(分频);计数器0的输出作为计数器1的输入,计数器1的输出作为计数器2的输入;计数器2的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1. 编程时用程序框图中的三个计数初值,计算OUT2的输出频率,用手表观察LED,进行核对。
2. 修改程序中的三个计数初值,使OUT2的输出频率为1Hz,用手表观察LED,进行核对。
3. 上面计数方式选用的是16进制,现若改用BCD码,试修改程序中的三个计数初值,使LED的闪亮频率仍为1Hz。
三.实验电路及连线GATE0~GATE2连至电源+5V,从波特率开关边的f插孔用线连至CLK0,OUT0用线连至CLK1,OUT1用线连至CLK2,OUT2用线连至一个发光管(DL1),8253片选孔CS 用线连至译码处228~22FH插孔。
四.实验说明8253工作频率为0~2MHZ,所以输入的时钟频率必须在2MHZ之下。
实验板上的晶振为4.9152MHZ,需经74LS393(16分频),由Q3输出307200HZ到CLK0(将波特率开关拨至9600)。
五.实验内容(一)程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,18HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率:f=307200HZ/(200H*18H*0AH)=2HZ修改后程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111BOUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110101BOUT DX,ALMOV DX,229HMOV AL,30H ;初值30HOUT DX,ALMOV AL,00HOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110101BOUT DX,ALMOV DX,22AHMOV AL,0AHOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START输出频率1HZ(二)OUT1----LED1:点亮0.5s,熄灭0.5sOUT2----LED2:点亮1s,熄灭3s程序:DA TA SEGMENTDA TA ENDSCODE SEGMENTSTART: PUSH DSMOV AX,0HPUSH AXMOV AX,DATAMOV DS,AXCLI ;关中断MOV DX,22BH ;定时器0工作在方式3 MOV AL,00110111B ;OUT DX,ALMOV DX,228HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,ALMOV DX,22BH ;定时器1工作在方式2 MOV AL,01110111BOUT DX,ALMOV DX,229HMOV AL,35H ;35H 58hOUT DX,ALMOV AL,15H ;15H 02hOUT DX,ALMOV DX,22BH ;定时器2工作在方式2 MOV AL,10110100BOUT DX,ALMOV DX,22AHMOV AL,04H ;04hOUT DX,ALMOV AL,00HOUT DX,ALSTIJMP $CODE ENDSEND START。
接口技术实验-8253定时计数器
接口技术实验报告
实验三:可编程定时/计数器8253
一、实验目的
1、学会8253芯片和微机接口的原理和方法。
2、掌握8253定时器/计数器的工作方式和编程原理。
二、实验设备
微机原理实验箱、计算机一套。
三、实验内容
8253计数器0,1工作于方波方式,产生方波。
四、实验原理
本实验用到三部分电路:脉冲发生电路、分频电路以及8253定时器/计数器电路。
脉冲发生电路:实验台上提供8MHZ的脉冲源,见下图,实验台上标有8MHZ的插
孔,即为脉冲的输出端。
脉冲发生电路
分频电路:该电路由一片74LS393组成,见下图。
T0-T7为分频输出插孔。
该计数器在加电时由RESET信号清零。
当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。
分频电路
8253定时器/计数器电路:该电路由1片8253组成,8253的片选、数据口、地址、读、写线均已接好,时钟输入分别为CLK0、CLK1。
定时器输出、GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1。
原理图如下:
注:GATE信号无输入时为高电平
8253定时器/计数器电路
四、实验连线
1、实验连线:
T接8.0MHZ;CLK0插孔接分频器74LS393(左下方)的T2插孔; OUT0接CLK 1;OUT1接发光二极管;
各通道门控信号GATE +5V
2、编程调试程序。
3、全速运行,观察实验结果。
硬件实验三 8253
一、实验目的1、掌握8253的基本工作原理和编程方法。
2、了解微机控制直流继电器的一般方法。
3、进一步熟悉使用8255、8253。
二、实验内容1、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N ≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
图3-12、按图3-2连接电路,将out1接LED 灯L0,让灯亮1s,熄灭1s (频率1HZ)。
图3-23、实验电路如图3-3,按虚线连接电路:CLK0接1MHZ ,GATE0,GATE1,接+5V ,OUT0接CLK1,OUT1接PA0,PC0接继电器驱动电路的开关输入端Ik 。
编程使用8253定时,让继电器周而复始的闭合5秒钟(指示灯灯亮),断开5秒钟(指示灯灯灭)。
图3-34. 实验电路如图3-4,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。
图3-4 电子琴电路三、编程提示1、8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟1MHZ将8253计数器0设置为方式3、计数器1设置为方式0并联使用,CLK0接1MHZ时钟,设置两个计数器的初值(乘积为5000000)启动计数器工作后,经过5秒钟OUT1输出高电平。
通过8255A口查询OUT1的输出电平,用C口PC0输出开关量控制继电器动作。
继电器开关量输入端输入“1”时,继电器常开触点闭合,电路接通,指示灯发亮,输入“0”时断开,指示灯熄灭。
2、利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。
再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。
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 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一、实验目的掌握8253的基本工作原理和编程方法。
二、实验原理及内容1.图3-1是本实验程序的接线图,将计数器0设置为方式0,计数器初值为N (N ≤0FH ,本程序中为0FH ),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N 个脉冲时,OUT0变为低电平,当输入N+1个脉冲后OUT0变高电平)。
2.按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,要求输出频率1HZ 的分频信号。
D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115C S 21RD 22W R23OUT217A019GATE216A120CLK2188253D0D1D2D3D4D5D6D78253CS /RD /WR A0A1CLK 0OUT 0U2GAT E0R 24.7KVCCD0D1D2D3D4D5D6D7A0A1IOW IOR Y0(280H)+5V SP1L0JD1D08OU T010D17GA TE011D26C LK 09D35D44D53D62OU T113D71GA TE114C LK 115C S 21RD 22W R23OU T217A019GA TE216A120C LK 2188253D0D1D2D3D4D5D6D78253CS /RD /WR A0A1U2R24.7K VCCD0D1D2D3D4D5D6D7A0A1IOW IOR Y0(280H)+5VL0JD1GATE1CLK1+5V 1MHZOUT0GAT E0CLK 0OUT 1三、参考流程图实验内容一的框图如图3-3所示,实验内容二2的框图如图3-4所示。
四、参考程序1、INPORT EQU 0FF0H-028H IO8253k EQU INPORT+283h IO8253a EQU INPORT+280hCODE SEGMENT ASSUME CS:CODE START:MOV AL,00010000b ;设置8253通道0为工作方式0,二进制计数 MOV DX,IO8253K OUT DX,ALMOV DX,IO8253A ;送计数初值为06H MOV AL,06H OUT DX,ALlll: IN AL,DX ;读计数初值 CALL DISP ;调显示子程序YN计数器0工作方式设为2 开始 送计数器初值 读计数器值 显示计数值 有键按下吗?结束结束计数器0工作方式设为3向计数器0送初值1000 先送低字节后送高字节 计数器1工作方式设为3向计数器0送初值1000 先送低字节后送高字节 结束PUSH DXMOV AH,06hMOV DL,0ffhINT 21hPOP DXJZ lllMOV AH,4CH ;退出INT 21HDISP PROT NEAR ;显示子程序PUSH DXAND AL,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30H add dl,7 ;否则为'A'-'F',ASCII码加37H num: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start2、ioport equ 0ff00h-0280hio8253a equ ioport+280hio8253b equ ioport+281hio8253k equ ioport+283hcode segmentassume cs:codestart:mov dx,io8253k ;向8253写控制字mov al,00111110b ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov dx,io8253kmov al,01111110b ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hcode endsend start五、实验结果1.连续按SP1,当按前6下时灯均保持在灭状态,当按第7下时,灯变亮。
8253计数器实验报告
8253计数器实验报告8253计数器实验报告引言:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本文将对8253计数器实验进行报告,介绍实验目的、实验步骤、实验结果和结论。
实验目的:本次实验的目的是熟悉8253计数器的工作原理和使用方法,掌握8253计数器的基本功能和应用场景。
实验步骤:1. 准备实验材料:8253计数器、示波器、电源等。
2. 搭建实验电路:根据实验要求,将8253计数器与示波器和电源相连,确保电路连接正确。
3. 设置实验参数:根据实验要求,设置8253计数器的工作模式、计数范围等参数。
4. 运行实验程序:编写实验程序,通过编程控制8253计数器的工作状态,观察实验结果。
5. 记录实验数据:使用示波器等仪器,记录实验过程中的数据和波形图。
6. 分析实验结果:根据实验数据和波形图,分析8253计数器的工作状态和性能。
实验结果:通过实验,我们观察到了8253计数器的不同工作模式下的输出结果。
在定时器模式下,我们设置了不同的计数范围和计数频率,观察到了计数器的计数过程和计数结果。
在计数器模式下,我们设置了不同的计数方向和计数初始值,观察到了计数器的增减过程和最终的计数结果。
结论:通过本次实验,我们对8253计数器的工作原理和使用方法有了更深入的了解。
我们掌握了8253计数器的基本功能和应用场景,能够根据实际需求设置计数器的工作模式和参数。
实验结果表明,8253计数器具有较高的计数精度和稳定性,在计时、计数等领域有广泛的应用前景。
总结:实验报告是对实验过程和结果的详细记录和分析,通过实验报告,可以总结出实验的目的、方法、数据和结论,为进一步研究和实践提供参考。
本次实验报告对8253计数器的实验进行了详细介绍,包括实验目的、实验步骤、实验结果和结论。
通过本次实验,我们对8253计数器有了更深入的了解,掌握了其基本功能和应用场景。
8253定时计数器应用实验
3.电子发声实验(3) 系统的 OPCLK(1.1625MHz)作为音乐节拍,有表格查出每个音符对应的时常送给
计数器 2(工作在方式3:方波频率发生器),以确定音调,驱动扬声器产生音乐,
实验接线图
+5V
如下:
系 统 OPCLK 总 线 1.1625MHz
GATE2
8253
CLK2
OUT2
SPK SPK UNIT
图 7-6 实验(3)接线图 实验程序如下: STACK SEGMENT STACK
DW 64 DUP(?) STACK ENDS DATA SEGMENT TABLE DB 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 26H, 2DH, 2DH, 26H, 2DH, 33H
图 7-5 实验(2)线路
Байду номын сангаас
实验流程图及程序如下:
STACK SEGMENT STACK DW 64 DUP(?)
STACK ENDS CODE SEGMENT
ASSUME CS:CODE START: PUSH DS
MOV AX,0000H MOV DS,AX MOV AX,OFFSET IRQ0 ADD AX,2000H MOV SI,0020H MOV [SI],AX MOV AX,0000H MOV SI,0022H MOV [SI],AX POP DS MOV AL,0FCH OUT 21H,AL MOV AL,15H OUT 43H,AL MOV AL,0FFH OUT 40H,AL MOV DL,30H A1: STI JMP A1
A1: MOV DL,25H MUL DL PUSH AX MOV AL,0B7H OUT 43H,AL POP AX OUT 42H,AL MOV AL,AH OUT 42H,AL INC BX MOV AH,00H MOV AL,[BX] TEST AL,0FFH JZ A3 MOV CX,77FFH
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 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实验
【本次实验所使用的模块区,见下两页】
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是Intel公司生产的一款可 编程定时器计数器。
它具有3个独立的16位计数器, 每个计数器都可以独立编程和控
制。
8253的计数器可以用于产生时 间间隔、脉冲信号、PWM(脉
宽调制)等。
8253的工作原理
825ቤተ መጻሕፍቲ ባይዱ的每个计数器都有一个预置 值,当计数达到预置值时,计数 器会自动回置并触发一个中断或
实验八:定时器计数器8253实验
contents
目录
• 实验简介 • 8253定时器计数器概述 • 实验步骤与操作 • 实验结果与分析 • 实验总结与思考
01 实验简介
实验目的
掌握8253定时器计 数器的工作原理。
了解定时器在计算机 系统中的应用。
学习如何编程控制 8253定时器计数器。
实验设备
01
微机实验箱
02
8253定时器计数器芯片
03
示波器
04
信号发生器
02 8253定时器计数器概述
定时器计数器的基本概念
定时器计数器是一种用于产生 时间间隔或计数的电子设备。
它通常由石英晶体振荡器驱动, 以提供稳定的计时基准。
定时器计数器广泛应用于计算 机、通信、自动化等领域。
8253的特性和功能
配置8253定时器计数器
设置工作模式
根据实验要求,选择适当的定时/计数 模式,如计数模式、定时模式或门控 模式等。
设置定时/计数初值
启动定时/计数
通过微处理器发送控制信号,启动 8253定时器计数器的定时/计数操作。
根据实验要求,设置适当的定时/计数 初值,以满足实验条件。
启动和观察实验结果
启动实验
加强实践环节
为了更好地理解和掌握相关知识,建议增加更多的实践环节,例 如组织小组讨论、分享经验等。
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 08003hCOUNT0 equ 08000hCOUNT1 equ 08001hCOUNT2 equ 08002hcode segmentassume cs:codestart proc nearmov al, 30h ; 通道0,方式0mov dx, CONTROLout dx, almov al, 5 ; 计数器初始值。
mov dx, COUNT0 out dx, al ; 低八位mov al, 0out dx, al ; 高八位Again:mov al, 00000000B ; 锁存计数器值mov dx, CONTROLout dx, almov dx, COUNT0in al, dx ; 读入计数值低八位mov bl, alin al, dx ; 读入计数值高八位mov ah, almov al, bljmp Againstart endpcode endsend start六、实验结果分析电路连接后按下试验箱左侧开关,L0灯亮。
因为选择输入的单脉冲为高电平。
程序编译后全速执行,观察到L0灯灭了。
实验三 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)、连接实验电路连线: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计数器
实验三 8253计数器/定时器的实验一、实验目的掌握8253定时器的编程原理及应用练习使用Proteus仿真软件二、实验内容利用Proteus仿真实现8253控制LED的闪烁,要求LED点亮0.5秒,熄灭0.5秒。
三、实验步骤1、画硬件连接图(1)启动Proteus,点击开始、程序、Proteus 7 professional、ISIS 7 professional(2)放置元件,点击,再点击,出现依次输入8086 74LS373 4LS138 NAND 8253A LED-RED PULLUP(3)按下图连接电路(4)放置标号,点击,依次放置总线标号,网络标号(如上图)(5)放置电源和终端,点击(6)修改元件属性,双击LED,出现如下对话框,将Model Type 改为Digital2M2、加载软件(1)启动emu8086 4.07,生成.com文件或. Exe文件(2)在emu8086 4.07,输入程序参考程序如下;PORT_0 equ 0e8hPORT_1 equ 0eahPORT_2 equ 0echPORT_CTR equ 0eehmov al, 00110101Bmov dx, PORT_CTRout dx, almov dx, PORT_0mov ax,00hout dx,almov dx, a8253mov ax,10hout dx,almov al, 01110110Bmov dx, PORT_CTRout dx, almov dx, PORT_1mov ax,0e8hout dx,almov ax,03hout dx,al(3)编译程序,点击,生成.com文件或. Exe文件(4)加载程序,双击仿真图中的8086CPU,出现如下对话框,点击加载软件,同时将各参数修改如下图3.仿真,点击,系统开始仿真。
四实验报告要求整理好运行正确的源程序,画出程序流程图,并列出源程序清单,写出实验的心得体会。
实验五 8253 定时器 计数器实验
实验五8253 定时器/计数器实验
一、实验目的
1、学习8253可编程定时/计数器与8088CPU的接口方法
2、熟悉8253的工作方式
3、熟悉8253在各种工作方式下的编程方法
二、实验内容
1、将计数器1设置为方式0,计数初值为25000,编程使计数值为0时在屏幕上显示字符R,并完成对程序的注释。
三、实验连线:
本实验主要用到的模块:系统模块、8253模块、中断模块等。
8253和系统相连的信号线都已经连好,计数器1的CLK1已经内接了一个250KHz 的信号,可以通过对通道1编程直接控制,将计数器1的OUT1接到8259A中断模块的IR6。
8253的端口地址为40H、41H、42H、43H。
四、实验步骤
1、将实验的线路连接好后,列出程序清单,并进行注释。
2、运行上位机软件,装载并运行程序,观察实验现象。
五、思考
1、8253共有几种工作方式,方式二和方式三有什么区别?
2、将计数器1改为方式2工作,则上面的程序要如何修改?将修改后程序上机调试并观察现象。
3、若要使实验箱的液晶屏上每隔1秒左右显示一个“R”,则连线要做何变动?程序要如何修改?重新连线后将修改完毕的程序上机调试并观察现象。
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 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计数器原理及分频实验
D2位 位
方式2 方式
计数开
1 0 1 1
CLK
方式0 方式
计数开
0 1 1 fx 0
0 1 0 1 0
方式2 方式
计数开
往地址0x03写入 写入0xFF,开闸门,启动计数器 计数,并将 x接入. 计数, 往地址 写入 ,开闸门,启动计数器0计数 并将f 接入.
计数器1计数结束,则计数器 已经循环了 已经循环了N次 计数器 计数结束,则计数器0已经循环了 次 计数结束
写入N后,输出
3
方波速率发生器
{(N+1)/2个CLK高电平,(N-1)/2N个CLK低电平(N为奇数)
1/2N个CLK高电平,1/2N个CLK低电平(N为偶数)
4 5
软件触发选通 硬件触发选通
写入 N 后,过 N+1 个 CLK,输出一个宽度为 1 个 CLK 的脉冲 门控触发后,过 N+1 个 CLK,输出一个宽度为 1 个 CLK 的脉冲
▼本实验共用到六个端口地址:
23H(1Y1): 输出口,8255的控制端口 22H(1Y1): 输出端口(PC3),发出计数器0的闸门信 号(0为关,1为开) A0H(1Y5): 输入/输出端口,8253计数器0 的读写口 A1H(1Y5): 输入/输出端口,8253计数器1的读写口 A3H(1Y5): 输出端口,8253的控制寄存器的端口
思考和练习题
1.向计数器0和计数器1写入不同的值,指示灯 会出现什么现象? 2.计数器0和1采用不同的工作方式,指示灯有 什么现象. 3.8253的初始化要在一个脉冲的作用下才能完 成,这对实验中计数器输出信号的频率有没 有影响?
�
方式0 方式1 方式2 方式3 方式4 方式5
可编程计数器(定时器)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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
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)个脉冲。