定时器及中断1秒基时.docx

上传人:b****3 文档编号:4897803 上传时间:2023-05-07 格式:DOCX 页数:12 大小:27.97KB
下载 相关 举报
定时器及中断1秒基时.docx_第1页
第1页 / 共12页
定时器及中断1秒基时.docx_第2页
第2页 / 共12页
定时器及中断1秒基时.docx_第3页
第3页 / 共12页
定时器及中断1秒基时.docx_第4页
第4页 / 共12页
定时器及中断1秒基时.docx_第5页
第5页 / 共12页
定时器及中断1秒基时.docx_第6页
第6页 / 共12页
定时器及中断1秒基时.docx_第7页
第7页 / 共12页
定时器及中断1秒基时.docx_第8页
第8页 / 共12页
定时器及中断1秒基时.docx_第9页
第9页 / 共12页
定时器及中断1秒基时.docx_第10页
第10页 / 共12页
定时器及中断1秒基时.docx_第11页
第11页 / 共12页
定时器及中断1秒基时.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

定时器及中断1秒基时.docx

《定时器及中断1秒基时.docx》由会员分享,可在线阅读,更多相关《定时器及中断1秒基时.docx(12页珍藏版)》请在冰点文库上搜索。

定时器及中断1秒基时.docx

定时器及中断1秒基时

实验十二定时器及中断(1秒基时)

一、实验目的

1.通过实验了解定时器的工作原理、编程方法。

2.通过实验了解定时器工作方式、定时与计数、单启动与双重启动的选择。

3.掌握通过一个定时器加入软件计数产生1S基时的方法。

4.通过实验了解多个中断源申请中断的处理方法。

二、实验内容及实验电路及步骤

1.产生1S延时的设计:

(11.0592MHZ)

方案1:

定时器0定时加软件计数。

1)采用定时器0,方式1,定时50MS中断。

当1S时间到后,使P1.0闪亮。

一个机器周期为=(1/11.0592Mhz)*12us。

定时器0的定时初值=(65536-50000/(1/11.0592Mhz*12us))=(65536-46080)=19456=4C00H

软件计数:

计数器采用R2,计数20次。

实验电路如图4-4所示:

用导线将A2区的P10与D1区的LED1相连。

图4-4定时器0实验接线图

参考程序:

ORG8000H

AJMPMAIN

ORG800BH

AJMPT0S

MAIN:

MOVSP,#60H

MOVTMOD,#01H

MOVTH0,#4CH

MOVTL0,#00H

MOVR2,#00H

MOVIE,#10000010B

SETBTR0

CLRP1.4

SJMP$

T0S:

MOVTH0,#4CH

MOVTL0,#00H

INCR2

CJNER2,#20,NEXT

CPLP1.4

MOVR2,#00H

NEXT:

RETI

END

注:

机器LED1LED2LED3LED4损坏,因此用排线讲A2区的J61接口与D1区的J52接口相连,程序中P1.0改为P1.4(使LED5亮)

记录结果如下:

(红色表示改变的数值)

数值

R0

0xfe

R1

0x00

R2

0x0c

R3

Ox33

R4

0x2e

R5

0x00

R6

0x00

R7

0x06

 

实验结果:

LED灯间隔1秒钟灯闪亮一次

结果参照视频01

2)采用定时器0,方式1,定时50MS,查询方式,当1S时间到后,使P1.5闪亮。

用导线将A2区的P10与D1区的LED1相连。

参考程序:

ORG8000H

AJMPMAIN

MAIN:

MOVTMOD,#01H;T/C0定时,方式1。

MOVTH0,#4CH;T0定时50MS。

MOVTL0,#00H

MOVR2,#00H;软件计数器初值

SETBTR0

LOOP:

JBCTF0,T0S

SJMPLOOP

T0S:

MOVTH0,#4CH

MOVTL0,#00H

INCR2

CJNER2,#20,NEXT;1S使P1.5取反一次。

CPLP1.5

MOVR2,#00H

NEXT:

SJMPLOOP

END

 

注:

机器LED1LED2LED3LED4损坏,因此用排线讲A2区的J61接口与D1区的J52接口相连,程序中P1.0改为P1.5(使LED6亮)

 

记录结果如下:

(红色表示改变的数值)

数值

R0

0xfe

R1

0x00

R2

0x0c

R3

Ox33

R4

0x2e

R5

0x00

R6

0x00

R7

0x06

 

实验结果:

LED灯间隔1秒钟灯闪亮一次

结果参照视频02

3)采用GATE=1时,利用信号/INT0与TR0双重启动T/C0,产生1S延时。

用导线将A2区的P10与D1区的LED1相连,用导线将A2区的INT0与D1区的SW1相连,运行相面程序前先将SW1置在0位,程序运行后将SW1置在1位,观察LED1的闪亮情况,然后将SW1再置在0位,LED1将停止闪亮,再SW1置在1位,重复前述步骤,观察GATA与/INT0引脚信号的作用。

注意:

调试前,SW1一定处于0的位置。

参考程序:

ORG8000H

AJMPMAIN

ORG800BH

AJMPT0S

MAIN:

MOVSP,#60H

MOVTMOD,#09H;T/C0定时,方式1,GATE=1。

MOVTH0,#4CH;T0定时50MS,中断一次。

MOVTL0,#00H

MOVR2,#00H;软件计数器初值

MOVIE,#10000010B

SETBTR0

CLRP1.0

SJMP$

T0S:

MOVTH0,#4CH

MOVTL0,#00H

INCR2

CJNER2,#20,NEXT;1S使P1.0取反一次。

CPLP1.0

MOVR2,#00H

NEXT:

RETI

END

 

实验结果:

1.当SW1置0时,现象如下:

八个灯(实际上仅后四个灯)常亮,但是不闪烁

2.当SW1置1时,现象如下:

八个灯(实际上仅后四个灯)闪烁

3.改变SW1的位置则继续按照上述规律变化

 

 

方案2:

采用T/C0与T/C1级联加软件计数的方法。

1)电路图如图4-5所示。

2)接线方法:

⑴断开DP-51PROC实验仪的电源,按图3-5接线,

使用排线将A2区的J61接口与D1区的J52接口相连,

⑵使用导线把A2区的P3.0与A2区T1(P3.5)相连。

3)参考程序:

ORG8000H

LJMPMAIN

ORG800BH

LJMPTC0SV

ORG801BH

LJMPtc1SV

ORG8100H

MAIN:

MOVSP,#70H

MOVTMOD,#61H

MOVTH1,#0FBH

MOVTL1,#0FBH

MOVTH0,#4CH;T0定时50MS,中断一次。

MOVTL0,#00H

SETBET1

SETBET0

SETBEA

SETBTR1

SETBTR0

MOVR2,#0

SETBP3.0

MOVA,#0FH

MOVP1,A

SJMP$

TC1SV:

INCR2

CJNER2,#2,NEXT

MOVR2,#0

CPLA

MOVP1,A

NEXT:

RETI

TC0SV:

MOVTH0,#4CH

MOVTL0,#00H

CPLP3.0

RETI

END

实验结果:

四个灯为一组,交替闪烁,右边的灯首先开始

2、计数器实验

采用T/C0每计1个数,使8个LED全部点亮。

设计方案:

采用T/C0方式2,计数,每计1个数中断一次,在中断服务程序中,点亮/熄灭8个LED。

使用排线将A2区的J61接口与D1区的J52接口相连,用导线将A2区的T0与D1区的SW1相连,请自行画出电路。

注意:

调试前,SW1一定处于1的位置。

参考程序:

ORG8000H

AJMPMAIN

ORG800BH

AJMPT0S

MAIN:

MOVSP,#60H

MOVTMOD,#06H;T/C0定时,方式2。

MOVTH0,#0FFH;计1个数,中断一次.

MOVTL0,#0FFH

SETBET0

SETBEA

SETBTR0

MOVP1,#0FFH

SETB00H

SJMP$

T0S:

JNB00H,MIEP1

MOVP1,#00H

CLR00H

RETI

MIEP1:

MOVP1,#0FFH

SETB00H

RETI

END

实验结果:

如下表

SW1值

灯的闪亮情况

1(初始)

0

1

0

1

0

1

0

1

 

三、思考题

1、将实验十一思考题2的软件延时修改为采用T/C0的硬件延时。

采用T/C0中断与/INT0中断方式实现8个LED循环点亮(左或右)。

设计程序如下

ORG8000H

LJMPMAIN

ORG8003H

LJMPINTSV

ORG800BH

LJMPTOS

MAIN:

MOVSP,#5FH

MOVTMOD,#01H

MOVTH0,#4CH

MOVTL0,#00H

MOVIE,#83H

MOVA,#0FEH

MOVR2,#00H

SETBIT0

SETBTR0

SETBPX0

CLRF0

SJMP$

TOS:

MOVTH0,#4CH+4

MOVTL0,#00H+4

INCR2

CJNER2,#255,NEXT

JBF0,TOS1

RRA

AJMPTOS2

TOS1:

RLA

NOP

TOS2:

MOVP1,A

MOVR2,#00H

NEXT:

RETI

INTSV:

CPLF0

RETI

END

实验结果:

LED从最后开始循环点亮

2、将实验1中T/C0定时改为25MS,软件计数应该为多少?

修改程序产生1S。

初值=65536-(25000*11.0592)/12=42496=0A600H

设计程序如下:

ORG8000H

AJMPMAIN

ORG800BH

AJMPT0S

MAIN:

MOVSP,#5FH

MOVTMOD,#01H

MOVTH0,#A6H

MOVTL0,#00H

MOVR2,#00H

MOVIE,#82H

SETBTR0

CLRP1.4

SJMP$

T0S:

INCR2

CJNER2,#40,NEXT

CPLP1.4

MOVR2,#00H

NEXT:

MOVTH0,#A6H

MOVTL0,#00H

RETI

END

实验结果:

LED4闪亮

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2