实验三 8253定时器

合集下载

8253定时计数器实验

8253定时计数器实验

实验三8253A定时/计数器实验一、实验目的1、学习8253A可编程定时/计数器与8088CPU的接口方法;2、了解8253A的工作方式;3、掌握8253A在各种方式下的编程方法。

二、预备知识8253/8254是可编程的定时器芯片。

它们都是包含三个独立的16位通道。

每个通道可作定时器也可作计数器使用,可通过软件编程选定6种工作方式之任一种。

它们都用N沟道MOS工艺制成,只需要一组+5V电源。

三、实验原理说明及连线本实验主要用到的模块:系统模块、8253模块、中断模块等。

8253和系统相连的信号线都已经连好,只需要连接信号到8253模块通道2的OUT2、CLK2和GATE2即可。

通道1的CLK1已经接了一个250KHz的信号,可以通过对通道1编程直接控制。

8253的地址参见第五章。

实验连线:1、实验1的连线方法:8253模块的CLK2接信号源的500KHz ,OUT2接中断模块的IR6;2、实验2的连线方法:8253模块的CLK2接信号源的500KHz。

四、实验内容1、实验1将计数器2设置为方式0,计数初值为N,编程使计数值为0时在屏幕上显示字符R。

2、实验2将计数器2设置为方式3,计数初值为1000,输入接500KHz信号,用示波器观察输出电平的变化。

五、程序框图实验1的程序流程图见图3-6-1。

1、确认连接好线路;2、装载运行程序(实验内容1调用:ZY3A.EXE,实验内容2调用:ZY3B.EXE)。

七、仪器配置ZY15MicInt12BB微机原理及接口实验箱一台示波器一台八、实验现象实验1,当计数到时,屏幕上将会显示字符R;实验2,用示波器观察将会看到连续的波形,频率为500Hz。

九、思考题答案8253共有几种工作方式,方式二和方式三有什么区别?答案:8253的工作方式字由8253的工作方式命令字的D3、D2、D1三位来确定,共有六种工作方式,方式二和方式三的区别主要是方式二的输出是脉冲,方式三的输出是方波。

接口技术实验-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、全速运行,观察实验结果。

计数定时器应用实验

计数定时器应用实验
(2)实验电路及连线:
+5V
实验机内核
UAD7-UAD0
28
定时/计数器
D7-D0 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1
R-MID
21 继电器
JD R-CLOSE
电源
GND
18
8088

统 单
228H UA0 UA1 CS8253
26 单色灯
8253
74LS240
26八位开关
PA
220H (4)实验记录
PB
222H
PC
224H
控制寄存器
226H
⑴计数值N=100,生产一箱产品需要_____________时间。

⑵ 执行程序后,L7-L0单色灯按____________码制规律变化。 ⑶ 下压暂停键,L7-L0=_____________ BL=________________
N
K7=1? Y 计 N7 N
关闭扬声
(3)实验电路及连线:
本实验7根接线:实验机内核230H与 CS8253连接;CLK0与153.8KHZ连接; GATE0与 +5V连接; OUT0与 SD连接; OUT1接在示波器CH1信号输入端。实验机 内核200H与 CS244连接;
实验机内核
UAD7-UAD0
UAD7-UAD0
28
定时/计数器
D7-D0 OUT0 GATE0 CLK0 OUT1 GATE1 CLK1
+5V
CH1 CH2
8088

示 波 器
8253
230H UA0 UA1

单 元
CS8253
A0 A1

微机原理实验报告_实验讲义_硬件实验_实验三 可编程定时计数器82532021(1)

微机原理实验报告_实验讲义_硬件实验_实验三 可编程定时计数器82532021(1)

实验三可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。

二、实验内容本实验通过和计算机相连的实验箱来完成,实验箱和计算机通过PCl扩展线相连。

实验软件和编程请参照如下步骤:首先,将实验软件(PORTR, MASM, LINK, TD)拷入计算机D盘的某文件夹(文件夹名不能是中文)下;然后,运行PORTR.EXE程序,自动获取实验箱的接口地址;接着,重启计算机,选择DOS启动,进入DOS;在DoS环境下,用EDIT编辑程序,用MASM,LINK,TD汇编、连接、调试程序。

基本实验任务和具体操作如下所示:1.按图2-6虚线连接电路,将计数器。

设置为方式0,计数器初值为N (NWOFH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用示波器观测OUTO电平变化(当输入N个脉冲后OUTO变高电平)。

2.按图2-7连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为IOO0, 用示波器观测OUTl输出电平的变化(频率1HZ)。

286H*-US6253CSJLTb-JL280H~图2-6OUTlCATElCLKKlOUT0GATE0CLK0<IMHZ图2-7三、编程提示1、8253控制寄存器地址283H计数器O地址280H计数器1地址281HCLKO连接时钟IMHZ2、参考流程图(见图2-8、图2-9)图2-8 图2-93、参考程序1:(程序名:E8253_1.ASM)ioport equ 0d400h-0280h ;0d400h为实验箱的接I I地址,应改为运行PoRTR程序自动获取的那个接I 1地址io8253_ctrl equ ioport+283hio8253_cnt0 equ ioport+280hcode segmentassume cs:codestart :mov al, IOh ;设置8253通道0为工作方式0,二进制计数mov dx, io8253_ctrl out dx,almov dx,io8253_cnt0 raov;送计数初值为OFHal, Ofhout dx, al111: in al, dx :读计数初值:调显示子程序call disp push dx movah,06h mov dl, Offh int 21hpop dx jz 111mov ah, 4ch :退出int 21hdisp proc near ;显示子程序push dxand al, Ofh mov dl, al cmp dl, 9 jle num add dl,7 num: add dl l 30h mov ah,02h int 21h movdl,Odh int 21h mov dl, Oah int 21h pop dx ;首先取低四位;判断是否<=9;若是则为‘0'_9', ASCn码加30H ;否则为‘A'」F', ASCIl码加37H;显示;加回车符;加换行符ret ;子程序返回disp endpcode ends end start4、参考程序2:(程序名:E8253_2. ∕∖SM)ioport equ 0d400h-0280h ;0d400h为实验箱的接口地址,应改为运行PORTR程序自动获取的那个接口地址io8253 cntθ equ ioport+280hio8253 cntl equ ioport+28Ih io8253ctrl equ ioport+283h code segmentassume cs:code Startzmov dx,io8253ctrl mov al, 36h out dx, al mov ax, 1000;向8253写控制字:使0通道为工作方式3 ;写入循环计数初值IOOOmov dx, io8253 cntθ out dx,almov al, ah out dx, al;先写入低字节;后写入高字节mov dx,io8253ctrlmov al, 76h out dx, al mov ax, 1000 ;设8253通道1工作方式3 ;写入循环计数初值IOoomov dx,io8253 cntl out dx, al mov al, ah out dx, al mov ah, 4chint 21h ;先写低字节;后写高字节;程序退出code endsend start附加任务:1.改变8253的端口地址(不再是280H~283H,换其他地址),请调整8253芯片的片选/CS 的硬件连线和相关程序;2.基本任务2改为输出IOHZ的负脉冲序列;3. 8253计数器0或计数器1工作在方式1和方式5,完成相应的硬件连线和编程,用示波器观测其输出波形。

硬件实验三 8253

硬件实验三 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和并行接口8255综合实验

计数器定时器8253和并行接口8255综合实验

计数器定时器8253和并行接口8255综合实验一、实验目的1.掌握8253定时原理和初始化方法。

2.掌握8255并行输入输出原理和初始化方法。

3.掌握定时器8253和并行接口8255的综合应用设计技术。

二、实验内容用8253定时1秒钟,“时间到”信号可由8255端口的一个位检测得到。

在8255的另一个端口连接8个发光二极管,则可实现每隔1秒钟循环点亮1个灯。

还可以在8255端口的另一个位连接一只开关,当开关拨到1时进入运行状态,当拨到0时返回DOS。

三、实验程序流程图四、实验硬件接线图程序清单:CODE SEGMENTASSUME CS:CODESTART:MOV AL,10010000B ;8255初始化MOV DX,28BH ;间接I/O寻址方式,8255的控制口地址OUT DX,AL ;将8255控制字送控制端口地址PR0: MOV AL,00110110B ;8253计数器0工作方式字MOV DX,283H ; 间接I/O寻址方式,8253的控制口地址OUT DX,AL ;将8253计数器0控制字送到控制端口地址MOV AX,1000 ;计数初值MOV DX,280H ;选中计数器0OUT DX,AL ; 将计数初值低字节送8253计数器0端口地址MOV AL,AH ; 先读写低字节,再读写高字节OUT DX,AL ; 将计数初值高字节送8253控制端口地址PR1: MOV AL,01111100B ;8253计数器1工作方式字MOV DX,283H ; 间接I/O寻址方式OUT DX,AL ;将8253计数器1控制字送到控制端口地址MOV AX,1000 ;计数初值MOV DX,281H ;选中计数器1OUT DX,AL ; 将计数初值低字节送8253计数器1端口地址MOV AL,AH ;先读写低字节,再读写高字节OUT DX,AL ;将计数初值高字节送8253控制口地址MOV BL,01HMOV DX,28AH ; 间接I/O寻址方式,8255的C口地址MOV AL,BLOUT DX,AL ;点亮一盏灯L1:MOV DX,288H ; 间接I/O寻址方式,8255的A口地址IN AL,DXTEST AL,10000000B ;测试PA7开关JE NEXT ;若为0则返回DOSL2: MOV DX,288H ;8255A口地址IN AL,DXTEST AL,00000001B ;测PA0,若是1则继续测PA0JNE L2ROL BL,1 ;若是0则准备点亮下一盏灯MOV DX,28AH ;8255C口地址MOV AL,BL ;点亮下一盏灯OUT DX,ALL3: MOV DX,288H ;8255A口地址IN AL,DXTEST AL,01H ;测PA0,若是0则继续测PA0JE L3 ;定时到OUT输出低电平并维持一个CLK周期JMP L1 ;若PA0为1,则跳转至L1NEXT: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START。

8253定时器实验.

8253定时器实验.

精选文档实验报告实验名称可编程准时器/计数器(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可编程计数器定时器实验

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计数器定时器接口实验

微机原理实验报告实验五 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定时器实验

接口 定时器与计数器实验(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实验

定时器计数器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定时器计数器实器

实验三 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 的编程命令有两类:一类是写入命令,包括设置控制字、设置计数器的初始值命令和锁存命令;另一类是读出命令,用来读取计数器的当前值。

实验三 8253计数器定时器的应用

实验三 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定时器实验

8253定时器实验

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的每个计数器必须在写入控制字和计数初值后才启动工作,一般的初始化编程分为两步:先写入控制字、再写入计数初值。

实验三、82C54定时器、计数器实验

实验三、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,&regs,&regs);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?悬空会有什么情况发生?为什么?。

实验三 8253计数器

实验三   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定时计数器实验

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计数器原理及分频实验
03H 00H
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计数器_定时器的应用

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

DATA SEGMENT_8NOTE EQU0FFFH;定义八分音符的延时时长(计数)_4NOTE=_8NOTE*2;四分音符_4DNOTE=_4NOTE+_8NOTE ;四分附点音符_2NOTE=_4NOTE*2;二分音符_2DNOTE=_2NOTE+_4NOTE ;二分附点音符_1NOTE=_2NOTE*2;全音符PAUS=04FFH;每个音之间的小间隔CLK EQU32000;时钟频率;B3~C5音所对应的计数初值,由时钟频率/音频率得到B3=CLK/247C4=CLK/262D4=CLK/294E4=CLK/330F4=CLK/349G4=CLK/392A4=CLK/440B4=CLK/494C5=CLK/523;低音XI到高音DO的数码管显示码XI_=63HDO=21HRE=0F4HMI=0F1HFA=39HSO=0D9HLA=0DDHXI=61HDO_P=23HEMPT=10H;休止符-;《送别》音高谱MUSIC DB G4,E4,G4,C5 ,A4,C5,G4 ,G4,C4,D4,E4,D4,C4,D4 ,1;1为无声,休止DB G4,E4,G4,C5 ,B4,A4,C5,G4 ,G4 ,D4,E4,F4,B3,C4 ,1COUNT EQU$-MUSIC;《送别》简谱(数字显示)MUSIC_DISP DB SO,MI,SO,DO_P ,LA,DO_P,SO ,SO,DO,RE,MI,RE,DO,RE ,EMPT DB SO,MI,SO,DO_P ,XI,LA,DO_P,SO ,SO,RE,MI,FA ,XI_,DO ,EMPT;《送别》音长谱MUSIC_T DW _4NOTE,_8NOTE,_8NOTE,_2NOTE,_4NOTE,_4NOTE,_2NOTE DW _4NOTE,_8NOTE,_8NOTE,_4NOTE,_8NOTE,_8NOTE,_2DNOTE,_4NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_4NOTE,_4NOTE,_2NOTEDW _4NOTE,_8NOTE,_8NOTE,_4DNOTE,_8NOTE,_1NOTE,_2NOTEDATA ENDSSTACK SEGMENT STACK 'STACK'DB200DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKDELAY PROC FAR;延时子程序,时长由DS:[BP]的数据(音长谱)决定PUSHFPUSH CXMOV CX,DS:[BP]LOOP1:PUSH CXMOV CX,_4NOTELOOP2:LOOP LOOP2POP CXLOOP LOOP1POP CXPOPFRETFDELAY ENDPDELAY0 PROC FAR;小间断延时子程序PUSHFPUSH CXMOV DX,0EE23H;重置8253,即停止发音MOV AL,00010110BOUT DX,ALMOV CX,PAUSLOOP3:PUSH CXMOV CX,PAUSLOOP4:LOOP LOOP4POP CXLOOP LOOP3POP CXPOPFRETFDELAY0 ENDPPLAY PROC FAR;播放单音子程序MOV DX,0EE20HMOV AL,DS:[SI];输出DS:[SI](音高谱)作为计数初值OUT DX,ALMOV DX,0EE00HMOV AL,DS:[SI+COUNT];输出对应的数字码,在数码管1位上显示OUT DX,ALRETFPLAY ENDPSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXXOR AX,AXMOV DX,0EE23H;初始化8253MOV AL,00010110B;方式3,二进制计数,分频比小于255OUT DX,ALMOV DX,0EE03H;初始化8255,A,B口均为方式0输出MOV AL,80HOUT DX,ALMOV DX,0EE01H;数码管位选,固定为只有最右边的数码管显示MOV AL,01HOUT DX,ALMOV DX,0EE00H;显示清空MOV AL,00HOUT DX,ALMUS:;Music Start!MOV SI,OFFSET MUSIC ;SI指向音高数据MOV BP,OFFSET MUSIC_T ;BP指向音长数据MOV CX,COUNTRUN:CALL PLAY ;输出计数值播放单音,显示对应的数字CALL DELAY ;延时相应的时长CALL DELAY0 ;小间隔INC SI;SI、BP指向下一个音符ADD BP,2MOV AH,0BH;检测键盘输入INT21HOR AL,AL;按任意键退出JNZ EXITLOOP RUN ;否则继续循环播放JMP MUSEXIT:MOV DX,0EE23H;重置8253MOV AL,00010110BOUT DX,ALMOV AH,4CH;退出INT21HCODE ENDSEND START。

可编程计数器(定时器)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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三8253定时器/计数器实验
姓名:张朗学号:11121535
一、实验目的
1. 学会8255芯片与微机接口的原理和方法。

2. 掌握8255定时器/计数器的工作原理和编程方法。

二、实验内容
编写程序,将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;(单脉冲与时钟单元)
四、程序框图
五、编程
1.T=1.48s
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
START:
CLI
MOV DX, 0043H
MOV AL, 34H
OUT DX, AL
MOV DX, 0040H
MOV AL, 0EEH
OUT DX, AL
MOV AL, 02H
OUT DX, AL
MOV DX, 0043H
MOV AL, 76H ;01110110设置计数器1,方式3,16位二进制计数OUT DX, AL
MOV DX, 0041H
MOV AL, 0E8H
OUT DX, AL
MOV AL, 03H
OUT DX, AL
JMP $ ;8253自行控制led灯
CODE ENDS
END START
2.f=1HZ,T=1s
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
START:
CLI
MOV DX, 0043H ;控制字地址
MOV AL, 34H
OUT DX, AL
MOV DX, 0040H
MOV AL, 0E8H
OUT DX, AL
MOV AL, 03H
OUT DX, AL
MOV DX, 0043H
MOV AL, 76H ;01110110设置计数器1,选择方式3,16位二进制计数 OUT DX, AL
MOV DX, 0041H ;初值01F4给计数器1
MOV AL, 0F4H
OUT DX, AL
MOV AL, 01H
OUT DX, AL
JMP $
CODE ENDS
END START
3.改为BCD码
CODE SEGMENT
ASSUME CS:CODE
ORG 1200H
START:
CLI
MOV DX, 0043H ;控制字地址
MOV AL, 35H
OUT DX, AL
MOV DX, 0040H
MOV AL, 050H
OUT DX, AL
MOV AL, 07H
OUT DX, AL
MOV DX, 0043H
MOV AL, 77H ;01110111设置计数器1,选择方式3,16位BCD计数
OUT DX, AL
MOV DX, 0041H
MOV AL, 066H
OUT DX, AL
MOV AL, 06H
OUT DX, AL
JMP $ ;8253自行控制led灯
CODE ENDS
END START
六、调试过程:
1. 按连线图连接好,检查无误后打开实验箱电源。

2. 在PC端软件开发平台上输入设计好的程序,编译通过后下载到实验箱。

3. 运行程序后,观察LED闪烁周期(可以看10次或更多次闪烁时间,以提高观察准确度)。

再按要求调整初始值,使得闪烁周期为1S时间。

4.如果运行不正常就要检查连线,程序。

排查错误,修改程序,直到运行程序正常。

七、心得体会
这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。

虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。

八、问答题
1. 8253初始化编程时需要遵循的原则是什么?
①对计数器设置初始值前必须先写控制字
②初始值设置时,要符合控制字中的格式规定,即只写低位字节还是写高位字节,或者高低位字节都写,控制字中一旦规定,具体初始值设定时就要一致
2.简述8253初始化编程的步骤。

写入通道控制字,规定通道的工作方式,写入计数值。

相关文档
最新文档