单片机设计实验--脉冲计数器

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

实验八脉冲计数实验

一、实验目的:

(1)掌握定时器/计数器的计数工作方式;

(2)掌握用定时器/计数器实现脉冲计数的方法;

(3)掌握用Keil实现软件调试的方法;

(4)掌握用Proteus实现电路设计,程序设计和仿真的方法。

二、实验内容:

定时器0外部输入端(P3.4)和定时器1外部输入端(P3.5)作为计数脉冲输入端,利用按钮手控产生单脉冲信号作为计数输入脉冲,编写程序控制,每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED数码管中显示出来,晶振频率6MHZ。

三、实验参考电路:

P1口接两位数码管显示工作寄存器R0的内容,P2口接两位数码管显示工作寄存器R0的内容,两只按钮分别接P3.2(外部中断0中断输入端)和P3.3(外部中断1中断输入端)。实验电路如图:

四、实验参考程序:

ORG 0000H

LJMP MAIN 指向主程序;

ORG 000BH 定时器/计数器0的入口地址;

LJMP T0C 指向中断服务程序;

ORG 001BH 定时器/计数器1的入口地址;

LJMP T1C 指向中断服务程序;

ORG 0030H

MAIN: MOV R0,#00H 清零;

MOV R1,#00H

MOV P1,#00H

MOV P2,#00H

MOV TMOD,#66H 置计数器0,计数器1为方式2;

MOV TH0,#0FFH 置1次计数初值;

MOV TL0,#0FFH

MOV TH1,#0FBH 置5次计数初值;

MOV TL1,#0FBH

SETB EA 开中断;

SETB ET0

SETB ET1

SETB TR0 启动计数器0;

SETB TR1 启动计数器1;

SJMP $

ORG 0100H

T0C: MOV A,R0 计数器0中断服务程序;

ADD A,#01H

DA A 十进制调整;

MOV R0,A 保存计数器;

MOV P1,A 计数值送显示器;

RETI

ORG 0200H

T1C: MOV A,R1 计数器1中断服务程序;

ADD A,#01H

DA A 十进制调整;

MOV R1,A 保存计数器;

MOV P2,A 计数器送显示器;

RETI

END

五、实验步骤:

(1)建立工程文件,选择单片机型号,生成asm文件,在所生成文件中输入参考程序并调试如下:

如图可以看出程序调试无错误,所以可以将其生成HEX文件。

(2)打开Proteus软件,新建设计文件,根据脉冲计数原理图选择元器件,将元器件用连线或者总线连接起来如下图:

(3)将生成的HEX文件下载到芯片中单击仿真工具栏“运行”按钮,单片机全速运行程序,如下图所示:

A、每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED数码管中显示出来,如下图所示:

六、实验总结:

(1)按动按钮,可以从数码管显示器上看到,每输入一个(5个)脉冲,工作寄存器R0(R1)的内容加1,同时将R0(R1)的内容送到两位LED显示管中显示出来;

(2)通过实验,更加了解定时器/计数器的工作方式与工作原理;

(3)更加掌握Keil与Proteus的配套使用,且掌握电路设计,程序设计与仿真的方法。

相关文档
最新文档