实验三_8253定时器计数器实器
微原硬件实验三:8253计数器定时器的应用

微原硬件实验报告北京邮电大学微机原理硬件实验报告实验三:8253计数器/定时器的应用专业:信息工程学生姓名:×××学号:×××指导教师:××完成时间:2013年11月29日一、实验目的 (3)二、实验原理及内容 (3)1、实验原理 (3)①8253定时器介绍 (3)②8253初始化 (3)③8253控制字 (3)④注意事项 (4)2、实验内容 (4)①基本功能 (4)②拓展功能 (5)三、硬件连接图及程序流程图 (5)1、硬件连接图 (5)①8253定时器 (5)②数码管 (6)③译码器 (7)④扬声器 (7)⑤分频器 (8)2、程序流程图 (9)四、源程序 (10)五、实验结果 (12)六、实验总结 (13)1、都是不认真听课惹的祸 (13)2、难听的曲子 (13)七、实验收获与心得体会 (13)八、思考题 (13)一、实验目的1、进一步熟悉汇编语言;2、学习掌握8253用作定时器的编程原理。
二、实验原理及内容1、实验原理①8253定时器介绍Ⅰ、微机系统使用的8254,其3个通道均有固定的用途:0号计数器为系统时钟源,每隔55ms向系统主8259IR0提一次中断请求;1号计数器用于动态存储器的定时刷新控制;2号计数器为系统的发声源。
用户在使用微机系统的时候,可以使用0号和2号计数器,但不能改变对1号计数器的初始化。
Ⅱ、实验箱上的8253,其数据线D7—D0,地址线A1、A0和控制线RD、WR通过总线驱动卡和微机系统的三总线相连。
除此之外,三个计数器的引出段和片选端都是悬空的,这意味着实验箱上的8253的三个计数器都归用户使用,你可以单独使用其中的一个计数器,也可以串联使用其中的2个或3个计数器。
Ⅲ、8253计数器的输入信号,其频率不能超过2MHz,否则长时间使用,芯片过热,容易烧毁②8253初始化使用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定时器/计数器实验一、电路图二、流程图三、实验程序及注释CODE SEGMENTASSUME CS:CODEORG 1200HSTART:MOV DX,43HMOV AL,00110100B 写入控制字,选择计数器0OUT DX,ALMOV DX,40HMOV AL,0F4H 写入初值低8位OUT DX,ALMOV AL,01H 写入初值高8位OUT DX,ALMOV DX,43HMOV AL,01110110B 写入控制字,选择计数器1OUT DX,ALMOV DX,41HMOV AL,0E8H 写入初值低8位OUT DX,ALMOV AL,03H 写入初值高8位OUT DX,ALJMP $CODE ENDSEND START四、实验内容1.2EEH=750 3E8H=1000输出频率=(5X10^5)/(750X1000)=0.667HZ实验结果:灯闪烁20次所花时间为30S,与理论值一致。
2.将初值一改为500=1F4H输出频率=(5X10^5)/(500X1000)=1HZ实验结果:灯闪烁20次所花时间为20S,与理论值一致。
3.BCD码:将初值一改为500H将初值二改为1000H输出频率=(5X10^5)/(500X1000)=1HZ实验结果:灯闪烁20次所花时间为20S,与理论值一致。
五、问答题:1. 8253初始化编程时需要遵循的原则是什么?①选择控制寄存器,先写控制字,选择计算器及工作方式、读写格式、数制。
②初始值设置时,如果是16位,则需要两条指令来完成。
2. 简述8253初始化编程的步骤。
将控制命令字写入控制寄存器,给计算器赋初值。
六、调试过程:1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3.运行程序后,观察LED闪烁周期,记录20次闪烁时间。
4.按要求调整初始值,使得闪烁周期为1S时间。
汇编语言 可编程定时器/计数器(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可编程计数器定时器实验

集美大学计算机工程学院实验报告课程名称微机系统与接口技术实验名称实验三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定时计数器应用实验

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)-- 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的连接方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 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 计数器的值处在动态变化过程中,当前计数输出寄存器随之变化,就会得到一个不确定的结果。
当CPU 将此锁定值读走后,锁存功能自动失效,当前计数输出寄存器的内容又跟随减 1 计数器变化。
在锁存和读出计数值的过程中,减 1 计数器仍在作正常减 1 计数。
这种机制确保了即能在计数过程中读取计数值,又不影响计数过程的进行。
五、实验程序及注释
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
START:
MOV DX,43H
MOV AL,00110100B ;写入控制字,选择计数器0
OUT DX,AL
MOV DX,40H
MOV AL,0F4H ;写入初值低8位
OUT DX,AL
MOV AL,01H ;写入初值高8位
OUT DX,AL
MOV DX,43H
MOV AL,01110110B ;写入控制字,选择计数器1
OUT DX,AL
MOV DX,41H
MOV AL,0E8H ;写入初值低8位
OUT DX,AL
MOV AL,03H ;写入初值高8位
OUT DX,AL
JMP $
CODE ENDS
END START
六、实验内容
1.2EEH=750 3E8H=1000
输出频率=(5X10^5)/(750X1000)=0.667HZ
实验结果:灯闪烁40次所花时间为60S,与理论值一致。
2.将初值一改为500=1F4H
输出频率=(5X10^5)/(500X1000)=1HZ
实验结果:灯闪烁30次所花时间为30S,与理论值一致。
3.BCD码:将初值一改为500H
将初值二改为1000H
输出频率=(5X10^5)/(500X1000)=1HZ
实验结果:灯闪烁40次所花时间为40S,与理论值一致。
七、问答题:
1. 8253初始化编程时需要遵循的原则是什么?
①选择控制寄存器,先写控制字,选择计算器及工作方式、读写格式、数制。
②初始值设置时,如果是16位,则需要两条指令来完成。
2. 简述8253初始化编程的步骤。
将控制命令字写入控制寄存器,给计算器赋初值。
八、调试过程:
1. 按连线图连接好,检查无误后打开实验箱电源。
2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。
3. 运行程序后,观察LED闪烁周期,记录20次闪烁时间。
4.按要求调整初始值,使得闪烁周期为1S时间。
九、心得体会:
这个实验的难点主要在于定时器的初始化和初值的计算。
弄懂初始化命令字每一位的作用,就可以轻松的选择计算器,规定计算器的工作方式、读写格式和数制。
初值的计算和时钟频率以及工作方式有关。
写入初值时如果是8位,一条指令即可完成,如果是16位则需要两条指令来完成。