单片机--定时器/计数器实验

  1. 实验目的和任务

目的:利用“模块化单片机教学实验平台”,加深对单片机的中断系统的理解。

任务:利用单片机的中断系统完成程序设计。

  1. 实验内容

使用AT89S52单片机的定时器/计数器T0控制实验箱母板上的LED1每隔1秒点亮一次(即亮1秒,灭1秒,如此反复)。LED1的阴极与AT89S52单片机的P1.5引脚连接。(AT89S52单片机的T1中断入口也为001BH。)

  1. 实验过程和结果

①关掉实验箱电源。将CPU 板插接在JK1、JK2 上,注意CPU 板的插接方向。按照前面连接关系表将硬件连接好。

②将AT89S52 芯片插在CPU 板的CPU 插座上(不要插反)。母板上电。

③运行Keil 开发环境,按照“模块化单片机教学实验平台配套的实验指导书1.2.3 节”介绍的方法建立工程exp8.uV2,CPU 为AT89S52,不包含启动文件STARTUP.A51。

④把示例源程序exp8.asm 加入到工程exp8.uV2,并设置工程exp8.uV2 属性,将其晶振频率设置为11.0592MHz,选择输出可执行文件。

⑤构造(Build)工程exp8.uV2。

⑥通过PROGISP 烧写软件,利用ISP 下载线(见“模块化单片机教学实验平台配套的实验指导书1.3 节”)把HEX 文件下载到单片机中。

⑦下载成功后,观察母板上的LED1。

硬件连线:

CPU板

母板

P2:P1.5

J48:LED1

扩展实验:使用AT89S52 单片机的定时器/计数器控制实验箱母板上的LED1 亮2 秒,灭1 秒,亮2 秒,灭1 秒,如此反复。LED1 的阴极与AT89S52 单片机的P1.5引脚连接。

                                           

  1. 实验心得

实验时使用进位标志位C为标志变量,导致程序错误。实验中使用特殊功能寄存器要考虑到是否会影响到程序的执行,最好避免使用特殊功能寄存器,以免产生意料外的情况。

  1. 附录(代码)

(1)基本实验

ORG 0000H

LJMP MAIN               

ORG 001BH

LJMP ON

MAIN: 

SETB ET1                ;打开中断分开关

SETB EA                   ;打开中断总开关

MOV R0,#0               ;初始化r0

MOV TMOD,#10H   ;设置计时器模式

MOV TL1,#0B0H      ;初始值低八位

MOV TH1,#03CH     ;初始值低八位

MOV A,#60D            ;设置初始A

SETB TR1                ;开始计时

LJMP $                      ;

ON:

CJNE R0,#0,OF         ;以R0判断灯是否点亮

DEC A                       ;A减一

CJNE A,#00H,J         ;判断是否相同  不相同转移(结束)

CLR P1.5                   ;点亮灯

MOV R0,#1               ;R0置位1

MOV TL1,#0B0H      ;初始化计时器

MOV TH1,#03CH     ;

MOV A,#60D            ;设置时间

J:                               

RETI                         

OF:

DEC A

CJNE A,#00H,K

SETB P1.5                 ;关闭灯

MOV R0,#0

MOV TL1,#0B0H

MOV TH1,#03CH

MOV A,#60D

K:

RETI

END

(2)扩展实验

ORG 0000H

LJMP MAIN               ;除修改时间外与上个实验程序无异

ORG 001BH

LJMP ON

MAIN: 

SETB ET1

SETB EA

MOV R0,#0

MOV TMOD,#10H

MOV TL1,#0B0H

MOV TH1,#03CH

MOV A,#20D                   ;修改所设计延迟从3S->1s

SETB TR1

LJMP $

ON:

CJNE R0,#0,OF

DEC A

CJNE A,#00H,J

CLR P1.5

MOV R0,#1

MOV TL1,#0B0H

MOV TH1,#03CH

MOV A,#40D            ;修改所设计延迟从3S->2s

J:

RETI

OF:

DEC A

CJNE A,#00H,K

SETB P1.5

MOV R0,#0

MOV TL1,#0B0H

MOV TH1,#03CH

MOV A,#20D            ;修改所设计延迟从3S->1s

K:

RETI

END

  • 2
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜航一直在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值