8253计数器定时器接口实验
接口技术实验-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定时器计数器实验
电子信息学院实验报告书课程名:《微机原理与接口技术》题目:8253定时器/计数器实验实验类别:【设计】班级:电子1312学号:17姓名:张泽虎评语:(1)电路连接调试:□正确□基本正确□不正确(2)实验程序编写:□正确□基本正确□不正确(3)数据测量分析:□准确□基本准确□不准确成绩:□A □B □C □D ,指导教师:批阅时间:2014年11月6日1、实验目的与要求实验目的:(1)学会8253芯片和微机接口的原理和方法;(2)掌握8253定时器/计数器的工作方式和编程原理。
实验要求:用8253的0通道工作在方式3,产生方波。
2、实验内容用定时器/计数器8253实现分频器电路。
3、实验仪器DJ-8086KB(微机原理与接口技术实验箱)、示波器、软件DJ8088K 4、实验接线图5、实验程序框图6、实验程序(实验程序清单作为附件放在最后)7、实验步骤⒈ 按图6-5连好实验线路 ⑴ 8253的GATE0接+5V 。
⑵ 8253的CLK0插孔接分频器74LS393(左下方)的T2插孔,分频 器的频率源为8.0MHZ ,T →8.0MHZ 。
⒉ 运行实验程序在系统提示符“P.”状态下,按SCAL 键,输入1290, 按EXEC 键。
用示波器测量8253的OUT0输出插孔有方波产生。
8、实验数据(画出波形图)9、思考题本题中,用8253的OUT0控制LED 发光二极管闪烁,闪烁频率为50Hz ,如何实现?答:<附件> 实验程序清单CODE SEGMENTASSUME CS:CODE ORG 1290HV u O /ms t /START:MOV AL,00110110B OUT 43H,ALMOV AX,2000OUT 40H,ALMOV AL,AHOUT 40H,AL CODE ENDSEND START。
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芯片实验
实验十四8253 可编程计数器/定时器实验要求一、实验目的1、掌握8253的主要性能及其初始化编程。
2、学会根据实验要求设计8253的接口电路。
二、实验技术准备8253主要功能有:(1)一片上有三个独立的16位计数器通道。
(2)每个计数器都可以按照二进制或十进制计数。
(3)每个计数器的计数速率可达2MHz。
(4)每个通道有6种工作方式,可由程序设置和改变。
8253内部结构8253管脚图注:实验箱上使用的是8254芯片,8254芯片是8253芯片的增强型,管脚完全相同。
实验箱上的8254芯片电源和数据线均已连接好,实验时连接好读写控制模块信号芯片即可工作。
8253的端口选择表8253控制字格式计数值N与输出波形关系门控输入信号的作用8253有六种不同的工作方式:方式0——计数结束产生中断方式方式1——可编程单次脉冲方式方式2——分频工作方式方式3——方波方式方式4——软件触发选通方式方式5——硬件触发选通方式我们要求通过对方式0、方式1的实验,来了解和掌握8253主要性能及其初始化编程。
1、方式0 计数器结束中断方式当选定8253工作于方式0,并对选定的计数器写入控制字时,该计数器的输出端OUT立即变为低电平。
要使计数器能够进行计数,门控信号GATE必须为高。
若CPU利用输出指令向计数器写入计数值时(N=5),写WRn的上升沿把计数值写入计数寄存器。
在WRn上升沿后的下一个时钟脉冲CLK的下降沿时,才把计数值N写入计数寄存器执行单元CE。
在CLK 到来时开始减1计数。
总共要经过N+1个CLK脉冲后计数器减为0,这时OUT引脚由低电平变为高电平。
利用由低电平变为高电平正跳变信号向CPU发出中断请求。
方式0波形图2、方式1 可编程单稳态输出方式当CPU用控制字设定计数器工作于方式1时,计数器的输出OUT立即变为高电平,在CPU装入计数值N后,必须等到GATE由低电平到高电平的跳变,产生一个上升沿后,才能在下一个时钟脉冲CLK的下降沿将N 值装入计数器执行单元,同时输出端OUT由高电平向低电平跳变,以后每来一个时钟脉冲,计数器就开始减1操作,当计数器的值减为0时,OUT 产生由低到高的正跳变。
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)-- 8253定时器实验
同组同学学号:同组同学姓名:实验日期:2012 年 3月 26日交报告日期:2012 年 5月 30日实验(No. 1_1 )题目:定时器与计数器实验(8253)-- 8253定时器实验实验目的及要求:实验目的:1、学习8253可编程定时器/计数器定时方法。
2、学习8253多级串联实现大时间常数的定时方法。
3、学习8088/86控制8253可编程定时器的方法。
实验要求:用8253对标准脉冲信号进行计数,就可以实现定时功能。
用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。
因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。
实验电路及连线:连线连接孔1 连接孔21 8253_CS CS42 8253_OUT0L03 8253_GATE0VCC4 8253_CLK08253_OUT15 8253_GATE1VCC6 8253_CLK1F/4(1M)7 4MHz Fin实验说明:1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。
而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。
直到下一次计数值减完。
这样输出的波形为方波。
2、由于定时常数过大,就要用多级串联方式。
本实验采用两级计数器。
定时常数分别为100和10000。
将计数器的输出接到计数器0输入。
计数器0 的输出接到LED0。
实验框图:主程序框图源程序及分析:CONTROL equ 0c003h ;设置命令寄存器COUNT0 equ 0c000h ;设置计数器0COUNT1 equ 0c001h ;设置计数器1COUNT2 equ 0c002h ;设置计数器2code segmentassume cs:codestart proc near;第一次定时器设定:mov al, 36h; ; 计数器0,16位,方式3,二进制(00110110B=36h) mov dx, CONTROLout dx, almov ax, 1000mov dx, COUNT0out dx, al ; 计数器低字节mov al, ahout dx, al ; 计数器高字节;第二次定时器设定mov al,01110110B; ; 计数器1,16位,方式3,二进制mov dx, CONTROLout dx, almov ax, 1000mov dx, COUNT1out dx, al ; 计数器低字节mov al, ahout dx, al ; 计数器高字节jmp $start endpcode endsend start实验(No. 1-2 )题目:定时器与计数器实验(8253)-- 8253计数器实验实验目的及要求:实验目的:1、学习8088/86与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是Intel公司生产的一款可 编程定时器计数器。
它具有3个独立的16位计数器, 每个计数器都可以独立编程和控
制。
8253的计数器可以用于产生时 间间隔、脉冲信号、PWM(脉
宽调制)等。
8253的工作原理
825ቤተ መጻሕፍቲ ባይዱ的每个计数器都有一个预置 值,当计数达到预置值时,计数 器会自动回置并触发一个中断或
实验八:定时器计数器8253实验
contents
目录
• 实验简介 • 8253定时器计数器概述 • 实验步骤与操作 • 实验结果与分析 • 实验总结与思考
01 实验简介
实验目的
掌握8253定时器计 数器的工作原理。
了解定时器在计算机 系统中的应用。
学习如何编程控制 8253定时器计数器。
实验设备
01
微机实验箱
02
8253定时器计数器芯片
03
示波器
04
信号发生器
02 8253定时器计数器概述
定时器计数器的基本概念
定时器计数器是一种用于产生 时间间隔或计数的电子设备。
它通常由石英晶体振荡器驱动, 以提供稳定的计时基准。
定时器计数器广泛应用于计算 机、通信、自动化等领域。
8253的特性和功能
配置8253定时器计数器
设置工作模式
根据实验要求,选择适当的定时/计数 模式,如计数模式、定时模式或门控 模式等。
设置定时/计数初值
启动定时/计数
通过微处理器发送控制信号,启动 8253定时器计数器的定时/计数操作。
根据实验要求,设置适当的定时/计数 初值,以满足实验条件。
启动和观察实验结果
启动实验
加强实践环节
为了更好地理解和掌握相关知识,建议增加更多的实践环节,例 如组织小组讨论、分享经验等。
实验6-8253定时器、计数器
实验6 8253定时/计数器实验1、实验目的根据空间配置的原理,掌握获得PCI设备配置的方法,并获得当前PCI卡的IO空间。
理解PCI如何映射IO空间。
了解8253定时器的硬件连接方法及时序关系。
掌握8253的各种模式的编程及其原理,用示波器观察各信号之间的时序关系。
2、实验要求对8253进行编程,使其OUT0上输出一定的频率,将其一定频率输出到喇叭上,演奏出不同的音节。
计算机的数字键(1-7)作为电子音调的音调选择。
3、实验电路及连线8253中GATE0接+5V。
CLK0接153.6KHZ插孔,OUT0接SD。
CS接200~207孔。
4、实验说明对于音乐来讲,从DO到XI每个音阶都有固定的频率。
当8253将这些频率输出到喇叭上,即可听见音阶了。
各音节的频率值:音的节拍由延时子程序来实现。
延时子程序实现基本延时时间,节拍值只能是它的整数倍。
做此实验,程序运行时,依次揿入键盘,扬声器会发出1234567i。
5、实验程序框图注:程序初始化前,必须获取将PCI设备配置空间,通过配置空间来得到物理地址。
在框图中不再列出。
源代码T8253.asm。
6、实验程序DA TA SEGMENTMESS DB '1: 8253A TIMER0 IN MODE3! COUNT=80H',0AH,0DH DB ' 8253A TIMER1 IN MODE2! COUNT=08H',0AH,0DHDB ' 8253A TIMER2 IN MODE2! COUNT=02H',0DH,0AHDB '0: EXIT',0DH,0AH,'$'TIM_CTL DW 03HTIMER0 DW 00HTIMER1 DW 01HTIMER2 DW 02HMODE03 EQU 00010110BMODE12 EQU 01010100BMODE22 EQU 10010100BDIS1 DB 'PCI ADDRESS 0 $';DIS5 DB 'BIOS NOT SUPPER!$'DIS6 DB 'READ PCI BOARD FAIL!$';-------PCI Configuration Space Registers-------------------------------PCI_CS_VENDOR_ID EQU 0PCI_CS_DEVICE_ID EQU 2PCI_CS_COMMAND EQU 4PCI_CS_STATUS EQU 6PCI_CS_REVISION EQU 8PCI_CS_CLASS_CODE EQU 9PCI_CS_CACHE_LINE_SIZE EQU 0CHPCI_CS_MASTER_LATENCY EQU 0DHPCI_CS_HEADER_TYPE EQU 0EHPCI_CS_BIST EQU 0FHPCI_CS_BASE_ADDRESS_0 EQU 10HPCI_CS_BASE_ADDRESS_1 EQU 14HPCI_CS_BASE_ADDRESS_2 EQU 18HPCI_CS_BASE_ADDRESS_3 EQU 1CHPCI_CS_BASE_ADDRESS_4 EQU 20HPCI_CS_BASE_ADDRESS_5 EQU 24HPCI_CS_EXPANSION EQU 30HPCI_CS_INTERRUPT_LINE EQU 3CHPCI_CS_INTERRUPT_PIN EQU 3DHPCI_CS_MIN_GNT EQU 3EHPCI_CS_MAX_LAT EQU 3FHADDRESS_IO_0 DW ?ADDRESS_IO_1 DW ?;---------------------END-------------------------DA TA ENDSSSREG SEGMENT STACKSTA DW 50H DUP(?)TOP EQU LENGTH STASSREG ENDSCODE SEGMENTMAIN PROC FARASSUME CS:CODE,DS:DATA,SS:SSREG START: MOV AX,DATAMOV DS,AXMOV AX,SSREGMOV SS,AXMOV SP,TOPMOV AH,0B1HMOV AL,1HINT 1AHCMP AH,0JZ AA1MOV DX,OFFSET DIS5MOV AH,9INT 21HJMP QUITAA1: MOV AH,0B1HMOV AL,02HMOV CX,9050HMOV DX,10B5HMOV SI,0INT 1AHJNC AAMOV DX,OFFSET DIS6MOV AH,9INT 21HJMP QUITAA: MOV AH,0B1HMOV AL,09HMOV DI,PCI_CS_BASE_ADDRESS_1INT 1AHCMP AH,0JZ BB1MOV DX,OFFSET DIS1MOV AH,9INT 21HJMP QUITBB1: AND CX,0FFFCHMOV AX,CXMOV ADDRESS_IO_0,AXMOV AH,0B1HMOV AL,09HMOV DI,PCI_CS_BASE_ADDRESS_3INT 1AHCMP AH,0JZ CCMOV DX,OFFSET DIS1MOV AH,9INT 21HJMP QUITCC: AND CX,0FFFCHMOV AX,CXMOV ADDRESS_IO_1,AXADD TIM_CTL,AXADD TIMER0,AXADD TIMER1,AXADD TIMER2,AXAGAIN: MOV DX,OFFSET MESSMOV AH,09INT 21HMOV AH,8INT 21HCMP AL,'1'JZ BEGINCMP AL,'0'JNZ AGAINQUIT: MOV AX,4C00HINT 21HBEGIN: CLI ;关中断MOV DX,TIM_CTL ;定时器0工作在方式3MOV AL,MODE03OUT DX,ALMOV CX,1000LOOP $MOV DX,TIMER0MOV AL,80HOUT DX,ALMOV CX,1000LOOP $MOV DX,TIM_CTL ;定时器1工作在方式2MOV AL,MODE12OUT DX,ALMOV CX,1000LOOP $MOV DX,TIMER1MOV AL,8HOUT DX,ALMOV CX,1000LOOP $MOV DX,TIM_CTL ;定时器2工作在方式2MOV AL,MODE22OUT DX,ALMOV CX,1000LOOP $MOV DX,TIMER2MOV AL,02HOUT DX,ALMOV CX,1000LOOP $STIJMP AGAINMAIN ENDPCODE ENDSEND START。
8253定时_计数器实验
实验8 8253定时/计数器实验一、实验目的1.了解8253与8086的硬件连接方法。
2.掌握8253的各种方式的编程及其原理。
3.学会Emu8086和Proteus的联合用调。
二、实验要求安装有Emu8086仿真软件和PROTEUS仿真软件的电脑一台。
三、预习内容1、8253定时计数器的内部结构和主要性能。
2、8253芯片的各个引脚及其含义如下图3.1所示。
图3.1 8253A定时计数器D7~D0:双向,8位三态数据线,用以传送数据(计数器的计数值)和控制字CLK0~CLK2:计数器0、1、2的时钟输入,CE对此脉冲计数OUT0~OUT2:计数器0、1、2的输出。
GA TE0~GATE2:计数器0、1、2的门控输入/CS:输入,片选信号。
/RD:输入,读信号。
/WR:输出、写信号。
A0,A1:输入,两位地址选择。
8253的内部寄存器地址如下表表3.1所示:/CS A1 A0 选中0 0 0 计数器00 0 1 计数器10 1 0 计数器20 1 1 控制寄存器表3.1 8253定时计数器的寄存器3、定时、计数器8253的命令字的初始化。
4、8253的六种工作方式具体参考课本(278页至282页)。
5、汇编软件Emu8086和Proteus软件的联合使用方法步骤。
在Proteus软件绘制系统原理图,然后需要对Proteus进行程序导入设置才能进行方真调试。
具体步骤如下:(1)点击Proteus软件菜单中的source的下拉选项中的Dfine Code Generation Tools...如下图3.2所示。
图3.2(2)a在弹出的对话框中单击new按钮如下图3.3所示。
图3.3(3)弹出如下对话框,找到本机中emu8086安装后生成的emu8086文件夹,打开,选择可执行程序emu8086.exe,点击“打开”按钮,如下图3.4所示。
图3.4(4)回到设置对话框后,将源文件和目标文件分别设为ASM和EXE,单击“OK”,如下图3.5所示图3.5(5)单击菜单选项source的下拉选项Add/Remove Source Files...如下图3.6所示。
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)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(分频)。
实验三、82C54定时器、计数器实验
接口技术实验指导书实验三8253定时器/计数器实验一、实验目的和内容1.掌握8253定时器/计数器芯片的工作原理2.完成8253定时器/计数器的编程实验二、实验电路及说明实验电路如图8所示地址为10H8253的三个计数器全部开放,J53上有OUT0、GATE0CLK0、OUT1、GATE1、CLK1、OUT2、GATE2、CLEK2。
它们可与任何I/O相连。
在我公司提供的实验箱上的D部分有各种频率时钟信号。
下面提供一例,供参考,学生可根据要求自行调换频率。
如图8所示三、实验器材奔腾微机一台、SXL-100(PCI)接口实验仪一套、示波器一台四、硬件实验步骤本实验在板上由J与D部分组成,有短路块结合跳线一种方式。
五、程序框图六.程序代码#include <stdio.h>#include <dos.h>#include “PCIcard.h”unsigned long int ic82530=0x20,ic82531=0x21,ic8253type=0x23; unsigned long int ic8255a=0x0,ic8255b=0x1,ic8255type=0x3;int buffer1[10]={0x0c0,0x0f9,0x0a4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x98};int dis1[4]={0,0,0,0};void main(void){int err,rt1=0,count1=0,flagm=1,flag1=0;void plus1();void mydisp1();int mypckey();err=findPCIcard();if (err!=0){printf("The PCI card isn't found!!!\n");flagm=0;}err=getPCIbase0();iobase0=iobase0&0xfffc;//从PCI配置空间读入的与地址空间有关的数据其bit 0位为1,printf("IOBase0=%xH\n",iobase0);//表明此空间为IO空间参与PCI总线地址译码err=getPCIbase1();iobase1=iobase1&0xfffc;printf("IOBase1=%xH\n",iobase1);err=getPCImembase1();err=getPCImembase0();membase0=membase0+membase1<<16;//左移16位,将高位地址变换成双字中的高位字printf("MEMBase0=%lxH\n",membase0);err=getPCIIRQ();printf("PCI IRQ = %d\n",err);ic82530=ic82530+iobase1; //获取8253 T0 T1 控制寄存器的地址ic82531=ic82531+iobase1;ic8253type=ic8253type+iobase1;ic8255a=ic8255a+iobase1; //获取8255 A、B口和控制寄存器的地址ic8255b=ic8255b+iobase1;ic8255type=ic8255type+iobase1;printf("Press e to exit:\n"); //显示提示字符outportb(ic8255type,0x80); //初始化8255outportb(ic8255a,0x0ff);outportb(ic8255b,0x0ff);// 将8253的定时器0初始化为工作方式3,//采用二进制先读写低8位,在读写高8位,//写入时间常数,值为0X0FFF//写入时间常数//将8253的定时器1初始化为工作方式3,//采用二进制只读写低8位,写入时间常数,值为8//主循环{outportb(ic8253type,0x4F);rt1=inportb(ic82531);if (rt1==2) //判断是否计数到2{if (flag1==0) //判断是否计过2{flag1=1; //若是则置标志位count1=count1+1; //count1加1if (count1==2) //判断是否计过两次2{count1=0; //若是则清count1plus1(); //调加1子程序}}}elseflag1=0; //若rt1不为2,则清flag1 mydisp1(); //调显示子程序flagm=mypckey(); //调扫描键盘子程序}while (flagm==1);} // main() endint mypckey() //扫描键盘子程序{int pckey1();int flagk,judge;judge=pckey1();if (judge=='e')flagk=0;elseflagk=1;return (flagk);}int pckey1() //调用int 21H中断{union REGS regs;regs.h.ah=0x6;regs.h.dl=0x0ff;int86(0x21,®s,®s);return(regs.h.al);}void plus1() //加1子程序{int i;dis1[0]=dis1[0]+1;for (i=0;i<=2;i++){if (dis1[i]>=10){dis1[i]=dis1[i]-10;dis1[i+1]=dis1[i+1]+1;}}if (dis1[3]>=10)dis1[3]=0;return;}void mydisp1() //显示子程序{void delay1();int i,a1,a2=0x0fe;for (i=0;i<=3;i++){outportb(ic8255a,0x0ff);a1=buffer1[dis1[i]];outportb(ic8255a,a1);outportb(ic8255b,a2);a2=a2<<1;a2=a2|0x1;delay1();}return;}void delay1() //延时子程序{int i,j,a=0;for (i=1;i<=50;i++){for (j=1;j<=1000;j++){a=a+0;}}return;}六、思考题(1)、不更改硬件连接,程序只修改定时器的工作方式,但要完成同样功能,定时器还能初始化为哪几种工作方式?(2)、加长delay1()的延时时间对显示效果有什么影响?为什么?(3)、源程序中空白(6)解释这个函数的作用?在当前程序中有没有必要?为什么?什么情况有必要?(4)Gate0,Gate1为什么要接VCC?悬空会有什么情况发生?为什么?。
实验6: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的级联。
实验4 8253定时器
实验4 8253定时器/计数器接口实验一、实验目的掌握8253定时器的编程原理,用示波器观察不同模式下的输出波形。
二、实验设备微机实验箱、8086CPU模块、示波器。
三、实验内容了解8253计数器的不同工作方式,掌握其初始化控制字对定时/记数效果的影响。
四、实验原理介绍本实验用到两部分电路:脉冲产生电路、8253定时器/计数器电路五、实验步骤1、实验连线:CS0↔CS8253 OUT0↔8253CLK2 OUT2↔LED1 OUT1↔LED2CLK3↔8253CLK0,CLK3↔8253CLK12、编程调试程序3、全速运行,观察实验结果六、实验提示8253是计算机系统中经常使用的可编程定时器/计数器,其内部有三个相互独立的计数器,分别称为T0,T1,T2。
8253有多种工作方式,其中方式3为方波方式。
当计数器设好初值后,计数器递减计数,在计数值的前一半输出高电平,后一半输出低电平。
实验中,T0、T1的时钟由CLK3提供,其频率为750KHz。
程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。
T2采用OUT0的输出为时钟,则在T2中设置初值为n时,则OUT2输出方波周期为n*0.05s。
n的最大值为FFFFH,所以OUT2输出方波最大周期为3276.75s(=54.6分钟)。
可见,采用计数器叠加使用后,输出周期范围可以大幅度提高,这在实际控制中是非常有用的。
七、实验结果程序全速运行后,LED1按一定周期闪烁(周期理论值为0.2s),LED2在高频脉冲信号(约15KHz)影响下,有微弱的光亮,但无明显的周期变化现象。
八、思考题解答1、为什么说范例程序运行时LED1闪烁周期的理论值是0.2秒?在范例程序设置LED2的最大闪烁周期是多少?请分析说明。
程序中,T0的初值设为927CH(37500十进制),则OUT0输出的方波周期为(37500*4/3*10-6=0.05s)。
实验五 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实验
四、实验步骤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 定时器/计数器的工作原理和编程方法。
二、实验内容编写程序,将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;四、流程图及编程指南8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz用+5V 单电源供电。
8253 的六种工作方式:⑴方式0:计数结束中断⑷方式3:方波频率发生器⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号⑶方式2:频率发生器⑹方式5:硬件触发的选通信号8253 初始化编程1. 8253 初始化编程8253 的控制寄存器和 3 个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个计数器以及执行什么操作。
因此8255 在初始化编程时,并没有严格的顺序规定,但在编程时,必须遵守两条原则:①在对某个计数器设置初值之前,必须先写入控制字;②在设置计数器初始值时,要符合控制字的规定,即只写低位字节,还是只写高位字节,还是高、低位字节都写(分两次写,先低字节后高字节)。
2. 8253 的编程命令8253 的编程命令有两类:一类是写入命令,包括设置控制字、设置计数器的初始值命令和锁存命令;另一类是读出命令,用来读取计数器的当前值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
实验五 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
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DX,AX
MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
MOV DX,CTRL
MOV AL,30H
OUT DX,AL
MOV DX,TIME0
MOV AX,03H
OUT DX,AL
XCHG AH,AL
OUT DX,AL
COUNT:
MOV AH,06H
MOV DL,0FFH
INT 21H
JZ COUNT
MOV AX,4C00H
INT 21H
CODE ENDS
END START
实验二程序代码:
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
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DX,AX
MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
MOV DX,CTRL
MOV AL,36H
OUT DX,AL
MOV AL,76H OUT DX,AL
MOV DX,TIME0 MOV AX,1000
OUT DX,AL
XCHG AH,AL
OUT DX,AL
MOV DX,TIME1 MOV AX,1000
OUT DX,AL
XCHG AH,AL
OUT DX,AL
COUNT:
MOV AH,06H MOV DL,0FFH
INT 21H
JZ COUNT
MOV AX,4C00H
INT 21H
CODE ENDS
END START
4.实验数据、现象及结果分析
5. 实验思考题
1)实验一中的定时器0的输出OUT0的电平是如何变化的,为什么?
解:假设对定时器0赋初值为3,则控制字发送后,OUT0变为低电平,当手动输入3个单脉冲后,OUT0变为高电平。
因为当计数器工作于方式0时,计数开始时为低电平,当CE计数器减到0时,OUT输出高电平并保持不变。
2)实验二中的计数器0、计数器1的计数初值是如何确定的。
解:实验二中要求CLK0输入1MHz信号时,OUT1输出1Hz方波,即可对计数器0赋初值a,对计数器1赋初值b,其中a和b均要小于等于65536,同时要求
a*b=1000000。
在具体实验中为简化程序编写,故对计数器0和1均赋初值1000即可。
3)是否能用现有的实验装置通过使用8253的方式0和方式3实现一个延时10
秒的高电平输出?即:8253某个计数器的输出在初始化完成后变为低电平,10秒后变为高电平,具体如何实现?
解:由于8253工作于方式0时,CPU向其发出控制字后,输出OUT就变为低电平,从而导致低电平的时间中有一部分无法计算,即OUT变为低电平到计数器开始计数这段时间,故本题中利用8253的方式0和方式3实现延时10秒的高电平输出并不十分精确。
设计思路:电路部分不需要重新接线,由电路可知,经过计数器0分频后,OUT0处得到的是1000Hz的方波,周期为0.001秒,将其作为计数器1的CLK1输入信号,将计数器1的的工作方式设置为方式0,并对计数器1赋初值10000,便可在OUT1端得到延时10秒的高电平输出,可在OUT1处连接LED进行OUT1输出电
平的反应。
程序代码为:
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
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DX,AX
MOV DX,OFFSET MESS
MOV AH,09H
INT 21H
MOV DX,CTRL
MOV AL,36H ;设置定时器0,使其工作于方式3 OUT DX,AL
MOV AL,70H ;设置定时器1,使其工作于方式0 OUT DX,AL
MOV DX,TIME0 ;向定时器0赋初值1000
MOV AX,1000
OUT DX,AL
XCHG AH,AL
OUT DX,AL
MOV DX,TIME1 ;向定时器1赋初值10000
MOV AX,10000
OUT DX,AL
XCHG AH,AL
OUT DX,AL
COUNT:
MOV AH,06H ;若有键按下,则退出
MOV DL,0FFH
INT 21H
JZ COUNT
MOV AX,4C00H
INT 21H
CODE ENDS
END START。