《实验一流光发生器设计.doc》由会员分享,可在线阅读,更多相关《实验一流光发生器设计.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实 验 报 告( 2019 2019 学年 第 一 学期)课程名称 微型计算机接口技术实验名称流光发生器设计实验时间2019年 11月25 日指导单位指导教师学生姓名班级学号学院(系)计算机软件专 业软件工程第 7 页实 验 报 告实验名称流光发生器设计指导教师韩崇实验类型验证实验学时2实验时间2019.11.25一、 实验目的和要求1.掌握8254的结构、工作原理、工作方式、初始化编程及使用方法。 2.完成相应的硬件电路连线并编写程序,使8254的三个计数器输出不同周期的方波信号,控制三个发光二极管,达到流光效果。二、实验环境(实验设备)PD-32开放式微型计算机教学实验装置、8254定时器
2、/计数器模块Windows 操作系统三、实验原理及内容8254有3个独立的16位计数器,每个计数器有3个引脚,GATE、CLK、OUT。每个计数器有6种工作方式,其中方式2、3有具有初值自动重装功能,所以可以选择计数器工作在方式3,输出的是连续信号,输出信号的周期Tout =NTCLK,。初始化编程时,程序员向计数初值寄存器写入的计数初值,将自动送入16位减1计数器。当GATEi=1时,每一个CLKi信号的下降沿使减1计数器减1,当计数器见到某个规定的数值时,OUTi端产生输出信号。在计数过程中,锁存器随减1计数器的变化而变化。8254使用单一+5v电源有24个引脚,采用双列直插式封装。825
3、4的3个计数器均有6种工作方式,其主要区别在于:(1)输出波形不同;(2)启动计数器的触发方式不同;(3)计数过程中门控信号GATE对计数操作的影响不同;(4)有的工作方式具备“初值自动重装”功能。初值自动充装的功能是:当计数器减到规定的数值后,计数初值将会自动地装入计数器重新计数。8254 的6种工作方式分别是:方式0计数结束输出正跃变信号。其工作特点是:(1)写入控制字后,OUT端输出低电平,写入计数初值后,OUT端保持低电平,计数器开始对CLK脉冲进行减1计数。当计数值减为0时,OUT端输出变为高电平。此信号可用于向CPU发出中断请求。(2)在计数过程中,如果改变计数初值,则在写入新的计
4、数初值后,计数器将以新的值为计数初值,重新开始减1计数。(3)GATE为计数控制信号,当GATE=1时,允许计数;GATE=0时,停止计数。 方式1单脉冲发生器。其工作特点是:(1)写入控制字后,OUT端输出高电平,写入计数初值后,OUT端保持高电平,计数器由GATE的上升沿启动。GATE启动后,OUT变为低电平,每来一个CLK脉冲,计数器减1,当计数器减到0时,OUT端输出高电平,在OUT端输出一个负脉冲,负脉冲宽度为计数初值乘以CLK脉冲周期。(2)在计数器未减到0时,如果门控信号GATE再来一个正脉冲,计数初值将重新装入计数器,计数器从初始值开始重新作减1计数。(3)在计数过程中,程序员
5、可装入新的计数初值,但计数过程不收影响。只有当GATE再一次出现01的跃变后,计数器才能按照新的计数初值作减1计数。 方式2分频器。其工作特点是:(1)写入控制字后,OUT端输出为高电平,写入计数初值后,如果GATE为高电平,计数器开始减1计数,当计数器减到1时,OUT端输出低电平,经过一个CLK周期,又变为高电平,并且计数初值自动重装,计数器开始重新计数,周而复始。OUT端输出时连续的负脉冲,负脉冲宽度为一个CLK周期。(2)如果在减1计数过程中,GATE变低,则暂停计数,GATE的上升沿使计数器恢复初值,并从初值开始减1计数。(3)在计数过程中,如果GATE为高电平,程序员写入新的计数初值
6、,不会影响正在进行的减1计数过程,只有计数器减到1之后,计数器才装入新的计数初值,并且按新的计数初值开始计数。 方式3方波发生器。其工作特点是:(1)当计数初值为偶数时,每来一个CLK脉冲,计数值减2,当计数值减到0时输出端改变极性,内部完成初值自动安装,继续计数。输出端为1:1的方波,正负脉冲的宽度均为N/2个CLK周期。(2)如果计数初值为奇数,输出正脉冲宽度=Tclk(N+1)/2,;输出负脉冲宽度=Tclk(N-1)/2。实验证明:实际装入的初值以及自动重装的初值,均为编程时写入的初值减1。 方式4软件触发的单脉冲发生器。其工作特点是:(1)写入控制字后,OUT端输出高电平,若当前GA
7、TE为高电平,写入计数初值后,开始作减1计数,当计数值减到0时,OUT变低,在OUT端输出一个宽度为一个CLK周期的负脉冲。(2)当GATE=1时,允许计数,GATE=0时,停止计数。(3)在计数过程中,如果改变计数值,则按新的计数值重新开始计数。 方式5硬件触发的单脉冲发生器。其工作特点是:(1)写入控制字后,OUT端输出为高电平。写入计数初值后,只有在GATE端出现01跃变时,计数初值才能装入计数器,开始作减1计数,当计数值减为0时,OUT端输出一个CLK周期的负脉冲。(2)在计数过程中,若GATE端再次出现01跃变,则计数初值重新装入计数器,作减1计数。(3)在计数过程中,如果改变计数初
8、值,不影响当前计数过程;若有GATE上升沿触发,则按新的计数初值重新开始计数。 一个 详细程序为: CDPORT3 EQU 212H ; CHDBIT1 EQU 00H CHDBIT2 EQU 00H START: NOP ;启动延时 MOV DX,CCONPORT ;写入控制字(计数器0) MOV AL,CCONBIT1 OUT DX,AL MOV DX,CDPORT1 ;写入初值(计数器0) MOV AL,CHDBIT1 OUT DX,AL MOV DX,CCONPORT ;写入控制字(计数器1) MOV AL,CCONBIT2 OUT DX,AL MOV DX,CDPORT2 ;写入初值
9、(计数器1) MOV AL,CHDBIT1 NOP NOP OUT DX,AL MOV DX,CCONPORT ;写入控制字(计数器2) MOV AL,CCONBIT3 OUT DX,AL MOV DX,CDPORT3 ;写入初值(计数器2) MOV AL,CHDBIT2 OUT DX,AL WT: NOP JMP WT CODE ENDS END BEG 四、实验小结(包括问题和解决方法、心得体会、意见与建议等)该实验在施行第二种方案时,出现了许多问题。1. 一开始编程,计算初值使用公式:Tout =NTCLK,.,由于未考虑到人们视觉能分辨的闪烁时间为0.4秒而设置过小的时间间隔,没有达到实验要求效果,而后通过计算得N=23500和N=32900。2 . 未考虑到8254内部的计数器是16位,将十进制数误当成二进制的放到 EAX中,正确的输入为 MOV AX,VALUE1 OUT DX,AL MOV AL,AH OUT DX,AL .3. 要正确设置读/写方式,先读低8位后读高8位。4. 编程过程中,要使用NOP 语句,避免运行时间过短。 五、指导教师评语 成 绩批阅人日 期
限制150内