8253方波实验

  • 格式:doc
  • 大小:50.00 KB
  • 文档页数:4

下载文档原格式

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

四、8253方波实验

一、8253芯片介绍

引脚图

二、仿真图

三、8253工作方式

8253共有六种工作方式:计数结束中断方式、可编程单稳态输出方式、比率发生器、方波发生器、软件触发选通、硬件触发选通

(1)工作方式0:

工作方式0被称为计数结束中断方式。

当任一通道被定义为工作方式0时,OUT输出为低电平;若门控信号GATE为高电平,当CPU利用输出指令向该通道写入计数值使WR有效时,OUT仍保持低电平,之后的下一时钟周期下降沿计数器开始减“1”计数,直到计数值为“0”,此刻OUT将输出由低电平向高电平跳变,可用它向CPU发出中断请求,OUT端输出的高电平一直维持到下次再写入计数值为止。

(2)工作方式1:

工作方式1被称作可编程单稳态输出方式。

进入这种工作方式,CPU装入计数值n后OUT输出高电平,不管此时的GATE输入是高电平还是低电平,都不开始减“1”计数,必须等到GATE由低电平向高电平跳变形成一个上升沿后,计数过程才会开始。与此同时,OUT输出由高电平向低电平跳变,形成了输出单脉冲的前沿,待计数值计到“0”,OUT输出由低电平向高电平跳变,形成输出单脉冲的后沿,因此,由方式l所能输出单脉冲的宽度为CLK周期的n倍。

(3)工作方式2:

工作方式2被称作比率发生器。

进入这种工作方式,OUT输出高电平,装入计数值n后如果GATE为高电平,则立即开始计数,OUT保持为高电平不变;待计数值减到“1”和“0”之间,OUT将输出宽度为一个CLK周期的负脉冲,计数值为“0”时,自动重新装入计数初值n,实现循环计数,OUT将输出一定频率的负脉冲序列,其脉冲宽度固定为一个CLK周期,重复周期为CLK 周期的n倍。

(4)工作方式3:

工作方式3被称作方波发生器。

任一通道工作在方式3,只在计数值n为偶数,则可输出重复周期为n、占空比为1:1的方波。

进入工作方式3,OUT输出低电平,装入计数值后,OUT立即跳变为高电平。如果当GA TE为高电平,则立即开始减“1”计数,OUT保持为高电平,若n为偶数,则当计数值减到n/2时,OUT跳变为低电平,一直保持到计数值为“0”,系统才自动重新置入计数值n,实现循环计数。这时OUT端输出的周期为n×CLKi周期,占空比为1:1的方波序列;若n为奇数,则OUTi端输出周期为n×CLK周期,占空比为((n+1)/2)/((n-1)/2)的近似方波序列。

(5)工作方式4:

工作方式4被称作软件触发选通。

进入工作方式4,OUT输出高电平。装入计数值n后,如果GA TE为高电平,则立即开始减“1”计数,直到计数值减到“0”为止,OUT输出宽度为一个CLKi周期的负脉冲。由软件装入的计数值只有一次有效,如果要继续操作,必须重新置入计数初值n。如果在操作的过程中,GA TE变为无效,则停止减“1”计数,到GA TE再次有效时,重新从初值开始减“1”计数。

(6)工作方式5:

工作方式5被称为硬件触发选通式。

进入工作方式5,OUT输出高电平,硬件触发信号由GATE端引入。因此,开始时GA TE应输入为0,装入计数初值n后,减“1”计数并不工作,一定要等到硬件触发信号由GA TE端引入一个正阶跃信号,减“1”计数才会开始,待计数值计到“0”,OUT将输出负脉冲,其宽度固定为一个CLK周期,表示定时时间到或计数次数到。

四、实验程序如下:

ORG 0000H

AJMP START

ORG 000BH ;T1中断服务程序入口地址

AJMP T0INT

START:

MOV DPTR, #0FFFFH

MOV A,#00100101B ;选择计数器0,只读写计数器高字节,方式2,BCD码计数

MOVX @DPTR, A

;***********计数器0对P1.0口送来的脉冲进行100次分频*********

MOV A,#01H ;写计数器0的高字节

MOV DPTR, #3FFFH

MOVX @DPTR, A

MOV A,#01010111B ;选择计数器1,只读写计数器低字节,方式3,BCD码计数

MOV DPTR, #0FFFFH

MOVX @DPTR, A

;***********计数器1对计数器0送来的脉冲进行10次分频*********

MOV A, #10H

MOV DPTR, #7FFFH

MOVX @DPTR, A

MOV SP,#60H ;初始化程序,把堆栈的栈顶部上调,以避开工作寄存器区

MOV TMOD,#00H ;设置T0工作于定时方式1

MOV TH0,#0F0H ;设置加1计数器的计数初值高字节

MOV TL0,#0CH ;设置加1计数器的计数初值低字节

SETB TR0

SETB ET0

SETB EA

MAIN: AJMP MAIN

T0INT:

CPL P1.0 ;P1.0取反送P1.0

MOV TL0, #0CH

MOV TH0, #0F0H

RETI

END

五、调试结论

利用8253实现方波发生器,由于没有用到蜂鸣器,故利用二极管的通断来反应方波发生器的成功实现,但在用二极管实现时,需注意频率的问题,如果频率过大,会导致效果不明显甚至看不到。本次实验能成功实现二极管的关断与导通,并且效果较明显。