接口 定时器与计数器实验(8253)-- 8253定时器实验
- 格式:doc
- 大小:62.50 KB
- 文档页数:5
实验三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
一、实验目的
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命令字的设置及初始化和8253的工作方式及应用编程2.实验内容8253是INTEL公司生产的通用外围接口芯片之一,它有3个独立的16位计数器,计数频率范围为0-2MHZ。
它所有的计数方式和操作方式都可通过编程控制。
其功能是延时终端、可编程频率发生器、事件计数器、倍频器、实时时钟、数字单稳和复杂的电机控制器。
3.实训步骤实现方式0的电路图。
设8253端口地址为:40H-43H要求:设定8253的计数器2工作方式为0 ,用于事件计数,当计数值为5时,发出中断请求信号,8088响应中断在监视设备上显示M。
本实训利用KK1作为CLK输入,故初值设为5时,需按动KK1键6次,可显示一个M.实验七 8253定时/计数器应用实验一.实验目的1.熟悉8253在系统中的典型接法。
2.掌握8253的工作方式及应用编程。
二.实验设备TDN86/88教学实验系统一台三.实验内容(一)系统中的8253芯片图7-1 8253的内部结构及引脚1. 8253可编程定时/计数器介绍8253可编程定时/计数器是Intel公司生产的通用外围芯片之一。
它有3个独立的十六位计数器,计数频率范围为0-2MHz。
它所有的计数方式和操作方式都通过编程的控制。
8253的功能是:(1)延时中断(2)可编程频率发生器(3)事件计数器(4)倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8253的工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8253的内部结构及引脚如图7-1所示,8253的控制字格式如图7-2所示。
图7-2 8253的控制字8253的初始化编程如下图:2. 系统中的8253芯片系统中装有一片8253芯片,其线路如图7-3所示。
DW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART: IN AL,21HAND AL,7FHOUT 21H,ALMOV AL,____HOUT 43H,AL ;8253控制口地址A1: MOV AL,____HOUT 42H,ALHLTSTIJMP A1HLTSTIJMP A1MOV AX,014DHINT 10H ;显示’M’MOV AX,0120HINT 10H ;显示空格MOV AL,20HOUT 20H,ALIRETCODE ENDSEND START实验步骤(1)按图接线。
实验六定时器 / 计数器一、实验目的 :⒈学会8253芯片和微机接口的原理和方法。
⒉掌握8253定时器/计数器的工作方式和编程原理。
二、实验内容 :用8253的0通道工作在方式3,产生方波。
三、实验接线图 :四、编程指南:⒈8253芯片介绍8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V单电源供电。
8253的功能用途:⑴延时中断⑸实时时钟⑵可编程频率发生器⑹数字单稳⑶事件计数器⑺复杂的电机控制器⑷二进制倍频器8253的六种工作方式:⑴方式0:计数结束中断⑷方式3:方波频率发生器⑵方式l:可编程频率发生⑸方式4:软件触发的选通信号⑶方式2:频率发生器⑹方式5:硬件触发的选通信号五、实验程序框图:六、实验步骤:⒈按图连好实验线路:⑴8253的GATE0接+5V。
⑵8253的CLK0插孔接分频器74LS393(左下方)的T2插孔,分频器的频率源为8.0MHZ,(3) T→8.0MHZ。
⒉运行实验程序:在系统处于提示符“P.”状态下,按SCAL键,输入1290,按EXEC键。
⒊用示波器测量8253的OUT0输出插孔有方波产生。
七、实验结果:八、实验程序清单:CODE SEGMENT ;H8253.ASMASSUME CS:CODEORG 1290HSTART:JMP TCONTTCONTRO EQU 0043H ;控制口地址TCON0 EQU 0040H ;定时器0地址TCONT: MOV DX,TCONTRO ;取控制口地址MOV AL,36H ;设控制字OUT DX,AL ;输出控制字MOV DX,TCON0 ;取定时器0地址MOV AL,00HOUT DX,AL ;初值0送定时器0MOV AL,04HOUT DX,AL ;初值04送定时器0MOV DX,TCONTRO ;取控制口地址MOV AL,36H ;取控制字OUT DX,AL ;输出控制字MOV DX,TCON0 ;取定时器0地址MOV AL,00HOUT DX,AL ;初值0送定时器0MOV AL,02HOUT DX,AL ;初值02送定时器0JMP $ ;CPUT踏步,定时器自动工作CODE ENDSEND START说明:系统提供用户使用的空间为00000H-0FFFFH,用于存放、调试实验程序。
精选文档实验报告实验名称可编程准时器/计数器(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)按要求设计的电路正确连接线路,检查完毕后打开电源。
实验十四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计数器/定时器接口实验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变为高电平。
同组同学学号:同组同学姓名:实验日期: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一、实验目的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的定时和计数功能,以及如何通过串联定时器的方式实现大时间常数的定时。
实验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定时器实验实验七可编程定时/计数器与中断控制一、实验目的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的每个计数器必须在写入控制字和计数初值后才启动工作,一般的初始化编程分为两步:先写入控制字、再写入计数初值。
理工学院实验报告(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(分频)。
同组同学学号:
同组同学姓名:
实验日期: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 连接孔2
1 8253_CS CS4
2 8253_OUT0L0
3 8253_GATE0VCC
4 8253_CLK08253_OUT1
5 8253_GATE1VCC
6 8253_CLK1F/4(1M)
7 4MHz Fin
实验说明:
1、本实验工作方式0,计数值减完后输出一个脉冲宽度的高电平。
而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。
直到下一次计数值减完。
这样输出的波形为方波。
2、由于定时常数过大,就要用多级串联方式。
本实验采用两级计数器。
定时常数分别为100和10000。
将计数器的输出接到计数器0输入。
计数器0 的输出接到LED0。
实验框图:
主程序框图
源程序及分析:
CONTROL equ 0c003h ;设置命令寄存器
COUNT0 equ 0c000h ;设置计数器0
COUNT1 equ 0c001h ;设置计数器1
COUNT2 equ 0c002h ;设置计数器2
code segment
assume cs:code
start proc near
;第一次定时器设定:
mov al, 36h; ; 计数器0,16位,方式3,二进制(00110110B=36h) mov dx, CONTROL
out dx, al
mov ax, 1000
mov dx, COUNT0
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
;第二次定时器设定
mov al,01110110B; ; 计数器1,16位,方式3,二进制
mov dx, CONTROL
out dx, al
mov ax, 1000
mov dx, COUNT1
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
jmp $
start endp
code ends
end start
实验(No. 1-2 )题目:定时器与计数器实验(8253)-- 8253计数器实验
实验目的及要求:
实验目的:
1、学习8088/86与8253的连接方法。
2、学习8088/86对8253的控制方法。
实验要求:
利用8088/86 外接8253可编程定时器/计数器,可以实现对外部事件进行计数。
设置断点读回计数器的值。
实验电路及连线:
连线连接孔1 连接孔2
1 8253_CS CS0
2 8253_OUT0L0
3 8253_GATE0VCC
4 8253_CLK0单脉冲
实验说明:
本实验中计数器按方式0工作。
即十六位二进制计数器。
当计数设置好后,计数器就开始计数。
如果要读入计数器的值,要先锁存计数值,才能读到计数值。
本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。
同时OUT脚输出一个高电平。
实验时,可以将OUT0 接到LED上,观察计数器是否工作。
实验框图:
主程序框图
源程序及分析:
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
实验心得:
通过本次实验我更加熟练的用8253对标准脉冲信号进行计数,并实现定时功能。
并且学会了使用8253可编程定时器/计数器定时方法,多级串联实现大时间常数的定时方法和8088/86控制8253可编程定时器的方法。
也是我对接口的软件编程有了初步的认识,使我对以后接口程序的设计奠定了基础。
教师评语:
成绩:
教师签字:年月日。