8253的脉冲计数器分频器设计
- 格式:doc
- 大小:186.37 KB
- 文档页数:15
实验五8253定时器/计数器接口实验5.1实验目的掌握8253定时器/计数器的工作方式及应用编程。
5.2实验条件1. 北京达盛科技有限公司“缔造者”电子电气技术综合实验台、CPU挂箱、8086CPU模块。
2. PC机1台,已安装实验台8086开发调试软件。
3. 万用表、示波器。
5.3实验内容CPU挂箱自带一个脉冲发生器,按基频6.0MHz进行1分频(CLK0)、二分频(CLK1)、四分频(CLK2)、八分频 (CLK3)、十六分频(CLK4)输出方波。
编程设定8253计数器0、计数器1、计数器2工作于方波方式,观察其输出波形。
其中T0、T1的时钟由脉冲发生器的CLK3提供,其频率为750KHz,T0、T1的计数器初值设为927CH(37500十进制),则OUT0、OUT1输出的方波周期为(37500*4/3*10-6=0.05s)。
T2采用OUT0的输出为时钟,如果在T2中设置计数器初值为n,则OUT2输出方波周期为n*0.05s。
5.4实验步骤1. 实验接线将8253定时器/计数器的CS8253与地址译码电路的CS0相连,8253的CLK0、CLK1与脉冲发生器的CLK3相连8253的CLK2与OUT0相连,8253的OUT1与示波器相连,OUT2与开关量输入输出电路的LED1相连。
2. 建立PC机与8086CPU模块间的通讯连接将8086CPU模块正确地放在CPU挂箱上的CPU插槽中,系统上电后按下RESET键,几秒钟之后如果显示“P_”,说明CPU挂箱上的8086系统复位及8086CPU模块监控程序运行正常。
在PC机上打开8086开发调试软件,根据提示按下RESET键,几秒种后如果显示“C_”,说明与PC机通讯正常,同时8086开发调试软件用户界面提示通讯成功。
如果通讯不成功,试着选择串口COM2。
3. 编辑汇编语言源程序8086开发调试软件是将编辑、汇编、连接和调试集成在一起的综合开发环境,同时具有断点设定、程序下载到实验台等功能。
湖南科技大学微机原理与接口技术课程设计8253的脉冲计数器/分频器设计学院潇湘学院班级通信一班学号姓名引言在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制。
如定时扫描,定时中断,定时检测,定时刷新,系统日历时钟以及喇叭发生的声源等。
对外部事件进行记录,也是各种微机应用所常用的,因此往往需要一些计数器。
而定时功能通常是通过记数来实现的,当计数器的输入脉冲为固定频率的信号时,计数器就有了定时功能,因此一般定时器和计数器融为一体。
8253脉冲计数器/分频器就具有这样的功能。
微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
本课程设计任务和目的是:帮助学生巩固和加深理解所学的理论知识,训练学生的实验技能,使其树立工程观点和严谨的科学作风,初步具有运用理论知识分析问题、解决问题的能力。
培养学生运用所学的理论解决实际问题的能力,使学生初步掌握分析简单电路,调试简单汇编程序以及撰写实验报告的能力。
1、基本目的在计算机应用系统中,常常需要实时时钟,有时也需要对外部事件进行计数,而可编程计数器的计数范围可由软件来设定改变,不占用CPU大量时间,所以使用方便,且功能较强。
本次课程设计所选题目为基于8253的脉冲计数器/分频器设计,设计的基本目的是:(1)设计一个能对2MHZ 以下的脉冲信号进行分频的器件。
(2)分频系数由试验箱中的K1~K8逻辑开关控制输入(3)由LED数码管显示分频系数,为简便设计本次设计只使用四个数码管,即分频系数最大值为9999(十进制)2.工作原理实现定时的方法可分为软件定时和硬件定时两种。
软件定时就是让机器执行一个程序段,这个程序段本身并没有具体的执行目的,但由于执行每一条指令都需要一定的时间,则执行一个已定的程序段就需要一个固定的时间。
8253的工作原理8253是一种计数器/定时器芯片,它通过与计算机的输入输出接口相连接,用来执行各种计数和定时操作。
8253具有三个可独立使用的计数器,分别称为计数器0、计数器1和计数器2。
计数器0和计数器1是16位计数器,可以被配置为16位二进制计数器或BCD (二进制编码十进制)计数器。
计数器2是一个8位计数器,只能是二进制计数器。
8253工作的基本原理是通过对计数器寄存器的编程配置,将计数器模式、分频因子和初始计数值设置为期望的值。
然后,8253开始计数,每经过一个时钟周期,计数器的值会递增一次。
当计数器的值和设定的目标值相等时,8253可以产生一个触发信号,可以用来触发中断或产生特定的定时操作。
计数器0和计数器1能够按照不同的计数模式工作。
其中,计数模式0是16位二进制计数器或BCD计数器,计数器值递增或递减,直到计数器达到最大值或最小值时就会重置。
计数模式1是16位计数器,当计数器的值和设定的目标值相等时,计数器会重置为初始值。
计数模式2与计数模式1相似,但在计数器达到目标值时,会产生一个短脉冲。
计数模式3是计数器1和计数器2之间的模式,计数器1会根据计数器2的值进行递增或递减。
计数模式4和模式5分别是软件触发的单脉冲发生器和硬件触发的单脉冲发生器。
除了计数模式之外,8253还提供了可编程的分频器。
分频器可以将输入时钟信号进行分频,从而改变计数器的计数速度。
分频因子可以设置为2、4、8、...、2^16,因此可以根据需要选择合适的分频因子来控制计数速度。
综上所述,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
一、实验目的
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)按图接线。
信息学院实验报告学号: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是一种通用计数器/定时器芯片,由Intel公司于1975年研发。
它在计算机系统中主要用于计时、定时和频率发生的应用。
8253的内部结构和工作方式如下:1.内部结构:8253由一个16位计数器和三个16位计数器/分频器组成。
其中,计数器0和计数器2可以用作定时器,计数器1可以用作计数器或分频器。
-计数器0(工作于16位模式):它可以生成一个周期性的方波信号。
它的输入时钟源可以是外部引脚CLK0或者是计数器2的输出CLK2、计数器0还可以分为两个8位计数器,其下方8位由计数器1的输出加法器控制。
-计数器1(工作于16位模式):它可以将计数器0的输出值与一个可编程的初始计数值进行相加或相减。
它的输出可以用作计数器或分频器。
-计数器2(工作于8位模式):它通常用于分频器功能。
它可以接收来自外部引脚CLK2的时钟输入,并将其分频为不同的输出频率。
2.工作方式:- 定时器模式:8253可以工作在三种不同的定时器模式:比率发生器模式(Mode 0)、硬件单触发模式(Mode 1)和软件可编程单脉冲模式(Mode 2)。
在这些模式下,计数器的工作频率和输出信号的脉冲宽度都可以通过编程来设定。
-计数器模式:计数器1可以通过读取或写入操作来读取或设置计数器的值。
当计数器溢出时,可以触发中断。
-分频器模式:计数器2可以工作为一个分频器,将输入时钟分频为指定的输出频率。
在应用方面,8253的工作方式与内部结构密切相关。
通过编程设置不同的计数器模式和计数器值,可以实现各种计时和频率发生的功能。
例如,可以使用8253来测量时间间隔、生成周期性信号、控制器件的定时操作等。
总结起来,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。
同组同学学号:同组同学姓名:实验日期: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的典型应用电路的接法。
二、实验设备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的级联。
湖南科技大学微机原理与接口技术课程设计8253的脉冲计数器/分频器设计学院潇湘学院班级通信一班学号姓名引言在计算机系统中往往需要一些时钟,以便实现定时控制或延迟控制。
如定时扫描,定时中断,定时检测,定时刷新,系统日历时钟以及喇叭发生的声源等。
对外部事件进行记录,也是各种微机应用所常用的,因此往往需要一些计数器。
而定时功能通常是通过记数来实现的,当计数器的输入脉冲为固定频率的信号时,计数器就有了定时功能,因此一般定时器和计数器融为一体。
8253脉冲计数器/分频器就具有这样的功能。
微机原理和接口技术是一门实践性强的学科,不但要求有较高的理论水平,而且还要求有实际的动手能力,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。
本课程设计任务和目的是:帮助学生巩固和加深理解所学的理论知识,训练学生的实验技能,使其树立工程观点和严谨的科学作风,初步具有运用理论知识分析问题、解决问题的能力。
培养学生运用所学的理论解决实际问题的能力,使学生初步掌握分析简单电路,调试简单汇编程序以及撰写实验报告的能力。
1、基本目的在计算机应用系统中,常常需要实时时钟,有时也需要对外部事件进行计数,而可编程计数器的计数范围可由软件来设定改变,不占用CPU大量时间,所以使用方便,且功能较强。
本次课程设计所选题目为基于8253的脉冲计数器/分频器设计,设计的基本目的是:(1)设计一个能对2MHZ 以下的脉冲信号进行分频的器件。
(2)分频系数由试验箱中的K1~K8逻辑开关控制输入(3)由LED数码管显示分频系数,为简便设计本次设计只使用四个数码管,即分频系数最大值为9999(十进制)2.工作原理实现定时的方法可分为软件定时和硬件定时两种。
软件定时就是让机器执行一个程序段,这个程序段本身并没有具体的执行目的,但由于执行每一条指令都需要一定的时间,则执行一个已定的程序段就需要一个固定的时间。
软件定时的优点是不需要增加硬件设备,且定时时间改变灵活,只要改变子程序的执行时间即可。
硬件定时又分为不可编程硬件定时和可编程硬件定时。
对不可编程的硬件定时方法,可采用如定时器555外接定时部件构成。
这种定时的优点是电路一般比较简单,定时期间不占用CPU资源。
可编程的计数器是为了方便计算机系统的设计和应用而研制的,很容易和系统总线连接。
8253的记数初值是决定记数次序的,根据输出信号的不同,计算方法可分为两种情况。
当输出信号为连续的周期波时:假设计数器输入信号CLK的频率为F(CLK),要求OUT端输出信号的频率为F(OUT),则记数初值N 的计算公式为:N=F(CLK)/F(OUT)当计数器工作在一次性有效的定时方式时:如希望的定时时间为T,则记数初值N的计算公式为: N=F(CLK)*T3.实验内容8253A的A0、A1接系统地址总线A0、A1,故8253A 有四个端口地址,。
8253A的片选地址为48H~ 4FH。
因此,本实验仪中的8253A 四个端口地址为48H、49H、4AH、4BH,分别对应通道0、通道1、通道2和控制字。
采用8253A通道0,工作在方式3(方波发生器方式),输入时钟CLK0 为1MHZ,输出OUTO 要求为1KHZ的方波,并要求用接在GATE0引脚上的导线是接地("0"电平)或甩空("1"电平)来观察GATE对计数器的控制作用,用示波器观察输出波形。
当我们改变记数初值是再观察波形的变化。
(1)8253功能介绍8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。
其CLK0~CLK2是计数器0~2的时钟脉冲输入端,GATE0~GATE2是门控脉冲输入端, OUT0~OUT2是输出端及内部结构见左图。
A1 A0:用来选择计数器和控制寄存器D0-D7:三态数据线,和数据总线相连GATE0 1 2:门控输入端,对应相同号计数CS:片选端,低电平有效WR:写信号输入端,低电平有效RD:读信号输入端,低电平有效CLK0 1 2:各计数器时钟信号输入端OUT0 1 2:相应计数器输入端(2)8253的工作方式方式0:又称计数结束产生中断工作方式。
当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT 立即变为低电平。
在计数初值写入该计数器后,输出仍将保持为低电平。
当门控信号GATE 为高电平时,计数器对输入端CLK的输入脉冲开始作减一计数,当计数器从初值减为0 时,输出端OUT由低电平变为高电平,该输出信号可作为向CPU 发出的中断请求信号。
方式1 :又称可编程单稳态工作方式。
功能是在GATE 信号的上升沿作用下,输出端OUT 产生一个负脉冲信号,负脉冲的宽度可由定时器的计数初值和时钟频率编程确定。
方式2:又称频率发生器工作方式。
当程序将工作方式控制字写入控制字寄存器时,计数器的输出端OUT立即变为高电平。
在写入计数初值后,计数器对输入时钟CLK计数。
在计数过程中OUT 保持不变,直到计数器从初值减为1 时,输出OUT 将变低,再经过一个CLK周期,OUT 恢复为高电平,并按已设定的计数初值重新开始计数。
在需要产生某个脉冲信号或将某一个较高频率的脉冲信号分频为较低频率时,可使用8253 的方式2。
方式3 :又称方波发生器工作方式。
方式3 的工作类似于方式2 ,不同之处是方式3 的输出OUT是方波。
方式4:又称软件触发选通工作方式。
其功能是在输出OUT 端隔一定时间产生一价目负脉冲。
与方式0 不同的是,输出脉冲的宽度是固定的,但产生负脉冲所相隔时间是可编程的。
方式5: 又称硬件触发选通工作方式。
方式5的工作类似于方式4 ,不同之处是GATE 信号的作用不同。
方式5 的计数过程由GATE 的上升沿触发,当计数结束时,OUT 将输出一个CLK周期的低电平信号。
(3)初始化编程编程时,可选择计数器1工作在方式0。
在8253的方式0工作方式中,从将计数初值写入计数器到开始减1计数之间,有一个时钟脉冲的延迟。
若计数初值为n = 999,那么经过n + 1个即1000个脉冲时计数值减为0,并在OUT1端输出一正跳变,这可以作为中断请求。
在中断服务子程序中CPU可以做其他处理,如送下一个包装箱等。
设计数初值为1999 (要求一个包装箱内装工件2000) ,按十进制计数,先送低8位,再送高8位,控制字为01110001B。
初始化程序为:MOV AL, 01110001BAL, 01110001BMOV DX, 0356HOUT DX,AL ;送方式控制字MOV AL, 99HMOV DX, 0352HOUT DX,AL ;向通道1送计数初值低8位MOV AL, 19HOUT DX,AL ;向通道1送计数初值高8位(4)实验步骤运行实验程序,在系统显示"DVCC- 86H"状态下,按任意键,系统显示命令提示符"-"。
按GO键,系统显示"1000 XX",输入F000 :B290,再按EXEC键,显示"8253-1",用示波器测量8253A的OUT0输出插孔,应有频率为1KHZ的方波输出。
幅值0~5V。
计数器的3个引脚说明:(1)CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1(2) GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型(3) OUT计数器输出信号四、8255A的基本性能8255A具有三个相互独立的输入/输出通道:通道A、通道B、通道C。
A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口。
此时C口完全服务于A、B口。
A口有三种工作方式:方式0、方式1、方式2。
B口有两种工作方式:方式0、方式1。
(1)8255A内部结构8255A内部结构由以下四部分组成:数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。
(2)译码器74LS13874LS138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式。
其工作原理如下:①当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
比如:A0A1A2=011时,则Y6输出端输出低电平信号。
②利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。
五.程序代码源程序:.MODEL TINY.STACK 100.DATACOM_ADD DW 217H ;控制口偏移量PA_ADD DW 214H ;PA口偏移量PB_ADD DW215H ;PB口偏移量PC_ADD DW 216H ;PC口偏移量COM_ADDR DW 207HT0_ADDR DW 204HT1_ADDR DW205HT2_ADDR DW206HTIME db3fh,06h,5bh,4fh,66h,6dh,7dh,27h,7fh,6fh,76h,76h,76h,76h,76h,76h ;段选码表BEGINT db 00h,00h,00h,00hNUMBER dw 0000hmov al,10001001b ;8255芯片初始化以PC口为输入,PB口输出段选,PA口输出位选mov dx,COM_ADDout dx,al ;将初始化信息写入8255芯片控制口loop3:mov dx,PC_ADD ;取8255C口地址in al,dx ;将从C口打入的开关量输入至ALand al,80h ;取PC口第七位的状态cmp al,80h ;判断PC7=1?je settime ;等于1则设置初值loop4:call TDISP ;否则显示编码jmp loop3 ;继续查看C口状态;设置初值子程序settime:mov bx,offset begint ;BX存放的要显示的数据值的偏移地址mov dx,PC_ADD ;送pc口地址in al,dxmov ah,al ;低位不变,ah、al中内容用于判断和存据and ax,0f70h ;0000111100110000b,屏蔽保4,5位后,用于位选LED八位的高低位mov cl,4 ;设置左移位数shr al,cl ;循环左移4位00110000,mov cx,0 ;CX清零,利用低8位传送mov cl,al ;循环后对应00,01,10,11 add bx,cx ;BX里存放是从逻辑开关打入的数据的偏移地址 bx是begint的首地址,加上cx表示第几个数mov byte ptr [bx],ah ;将AH中的内容以字节的形式存放到指定元mov dx,PC_ADD ;送pc口地址in al,dxand al,40h ;取PC口第六位的状态cmp al,40h ;判断PC6=1?je gooncall TDISP ;转换为16位数据并显示jmp loop3goon:CALL TOGETHERmov dx,com_addrmov al,35hout dx,al ;计数器#0设置在模式2mov dx,T0_addrmov ax,numberout dx,almov al,ahout dx,almov dx,com_addrmov al,77hout dx,al ;计数器#1设置在模式3状态mov dx,T1_addrmov ax,numberout dx,almov al,ahout dx,alSTART1:mov dx, PC_ADD ;送pc口地址in al ,dxand al,40h ;取PC口第六位的状态cmp al,40h ;判断PC6=1?je START1jmp loop3 ; 数码管显示子程序,完成显示功能。