89C51实验三定时计数器实验Word下载.docx

上传人:b****3 文档编号:16712042 上传时间:2022-11-25 格式:DOCX 页数:17 大小:126.86KB
下载 相关 举报
89C51实验三定时计数器实验Word下载.docx_第1页
第1页 / 共17页
89C51实验三定时计数器实验Word下载.docx_第2页
第2页 / 共17页
89C51实验三定时计数器实验Word下载.docx_第3页
第3页 / 共17页
89C51实验三定时计数器实验Word下载.docx_第4页
第4页 / 共17页
89C51实验三定时计数器实验Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

89C51实验三定时计数器实验Word下载.docx

《89C51实验三定时计数器实验Word下载.docx》由会员分享,可在线阅读,更多相关《89C51实验三定时计数器实验Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

89C51实验三定时计数器实验Word下载.docx

MAIN:

MOVR0,#0FFH

LOOP:

INCR0

CJNER0,#16,SHOW

MOVR0,#0

SHOW:

MOVA,R0

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

ACALLDELAY1S

AJMPLOOP

DELAY1S:

;

误差0us

MOVR7,#0A7H

DL1:

MOVR6,#0ABH

DL0:

MOVR5,#10H

DJNZR5,$

DJNZR6,DL0

DJNZR7,DL1

NOP

RET

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH

3、见图二,利用动态扫描显示法,,让数码管显示数字01234567。

(数码管元件7SEG-MPX8-CA-BLUE,共阳极数码管)

图二

AJMPMAIN

ORG000BH

AJMPTEF

ORG33H

MOVSP,#60H

MOVR4,#0

MOVR3,#80H

MOVTMOD,#02H

MOVTH0,#06H

MOVTL0,#06H

SETBET0

SETBEA

SETBTR0

LP:

CJNER4,#8,NEXT

NEXT:

MOVA,R4

MOVR5,A

AJMPLP

TEF:

PUSHACC

MOVA,R3

RLA

MOVP1,A

MOVP2,R5

INCR4

MOVR3,A

POPACC

RETI

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH

END

4、见图二,利用动态扫描显示法,,让数码管显示数字12.34.56,每隔一秒,数字变化相当于时间计时器。

对应数字分别为小时.分钟.秒。

ORG0000H

AJMPTRF0

ORG001BH

AJMPTRF1

ORG30H

SECEQU40H

MINEQU41H

HOUREQU42H

MOVSP,#60H

MOVR1,#80H

MOVDPTR,#TAB

MOVTMOD,#21H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#06H

MOVTL1,#06H

MOVIE,#0AH

SETBEA

MOVTCON,#50H

MOVB,#10

MOVA,SEC

DIVAB

MOVR7,A

MOVR6,B

MOVA,MIN

MOVR5,A

MOVR4,B

MOVA,HOUR

MOVR3,A

MOVR2,B

NT0:

CJNER1,#01H,NT1

MOVA,R3

MOVCA,@A+DPTR

MOVP2,A

NT1:

CJNER1,#02H,NT2

MOVA,R2

NT2:

CJNER1,#04H,NT3

MOVP2,#7FH

NT3:

CJNER1,#08H,NT4

MOVA,R5

NT4:

CJNER1,#10H,NT5

MOVA,R4

NT5:

CJNER1,#20H,NT6

NT6:

CJNER1,#40H,NT7

MOVA,R7

NT7:

CJNER1,#80H,NT0

MOVA,R6

LJMPLOOP

TRF1:

PUSHACC

MOVA,R1

RLA

MOVR1,A

MOVP1,A

POPACC

RETI

TRF0:

PUSHPSW

CLRRS1

SETBRS0

INCR7

CJNER7,#20,EXIT

MOVR7,#0

INCSEC

CJNEA,#60,EXIT

MOVSEC,#0

INCMIN

MOVMIN,#0

INCHOUR

CJNEA,#24,EXIT

MOVHOUR,#0

EXIT:

POPACC

POPPSW

RETI

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

5、见图三。

假设单片机晶振频率设定为6MHz。

完成以下要求,且通过虚拟示波器观看波形。

A、使用定时器1以方式0产生周期为500us的等宽方波连续脉冲,并由P1.0输出。

#include<

reg51.h>

sbitP1_0=P1^0;

voidmain()

{

TMOD=0x00;

TH1=0xFC;

TL1=0x02;

TR1=1;

while

(1)

{

if(TF1)

{

TH1=0xFC;

TL1=0x02;

P1_0=~P1_0;

TF1=0;

}

}

}

B、使用定时器0以方式2产生周期为200us的等宽方波连续脉冲,并由P1.1输出。

TMOD=0x02;

TH0=0xCE;

TL0=0xCE;

TR0=1;

if(TF0)

TF0=0;

C、编程使T0工作于定时工作方式1,产生500us等宽方波从P2.7输出。

T1工作于计数工作方式2,其计数外部脉冲由T0产生,即P2.7引脚与P3.5(T1引脚)相连,T1每计数100个,P1.2取反输出一次。

ORG0

AJMPTIME0OVF

AJMPCOUNTER1

ORG0030H

SETBP2.7

SETBP1.2

MOVTMOD,#61H

MOVTH0,#0FFH

MOVTH1,#156

MOVTL1,#156

MOVIE,#0AH

MOVTCON,#50H

AJMP$

TIME0OVF:

CPLP2.7

COUNTER1:

CPLP1.2

D、编程使T0工作于定时工作方式1,产生500us等宽方波从P2.6输出到P3.3(INT1脚),如图所示。

T1工作于定时工作方式2,由T1来测量P3.3脚信号的正脉冲宽度,并通过示波器加以验证。

AJMPTIMER0OVF

AJMPTIMER1OVF

SETBP2.6

MOVTMOD,#0A1H

MOVTH0,#0FEH

MOVTL0,#0CH

MOVTH1,#0

MOVTL1,#0

JBP2.6,$

SETBTR1

JNBP2.6,$

CLRTR1

MOVDPL,TL1

TIMER0OVF:

CPLP2.6

TIMER1OVF:

INCDPH

图三

6、见图四。

假设单片机晶振频率设定为12MHz。

编程实现以下功能:

A、发光二极管D1的秒闪。

(即亮一秒灭一秒)

ORG0

SETBP1.0

MOVR2,#20

MOVTMOD,#01H

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZR2,EXIT

CPLP1.0

EXIT:

B、实现发光二极管的同时亮灭、交替亮灭。

(即第一秒内,发光二极管同时亮灭,间隔0.1秒;

第二秒内,发光二极管交替亮灭(例如D1D3D5D7亮D2D4D6D8灭),间隔0.1秒)

ORG0

LJMPTIMER0OVF

MOVR3,#1

MOVR4,#2

MOVR6,#0FFH

MOVR7,#0AAH

CLRA

DJNZR2,NEXT

XRLA,R3

MOVR5,A

DJNZR4,EXIT

JNZTURN

MOVA,R6

XRLA,#0FFH

MOVR6,A

MOVA,R5

AJMPEXIT

TURN:

MOVA,R7

MOVR7,A

C、利用一个按键开关进行计数,计数十次,D1的闪烁1次;

计数20次,D2循环闪烁,计数30次,D1、D2熄灭,以此循环。

(本题只是用到D1D2)

SETBP0.0

MOVC,P0.0

JCMAIN

INCR2

INCR3

JNBP0.0,$

CJNER2,#10,NEXT1

MOVR2,#0

CLRP1.0

ACALLDELAY100MS

NEXT1:

CJNER3,#20,NEXT2

MOVR3,#0

CLRP1.1

SETBP1.1

JCLOOP

INCA

LOOP1:

JNBP0.0,LOOP1

CJNEA,#10,LOOP

NEXT2:

CJNEA,#10,MAIN

MOVA,#0

DELAY100MS:

MOVR7,#13H

MOVR6,#14H

MOVR5,#82H

图四

三、实验心得:

通过定时计数器的实验,我觉得自己对书本的理论知识掌握得不够扎实,经常忘了书中的一些指令,而且对那些指令的作用还不是很了解。

对于简单点的数码管的静态和动态扫描显示法的编程还是能比较熟悉的编写出来,但到了下面的定时计数器的初始化编程就不太熟悉了,要通过反复看书和上网找资料才能勉强的写出来。

通过整个实验的程序编写,还是学会了一点用定时计数器进行单片机控制程序设计,感觉自己做完这个实验后对单片机编程又有了提高。

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

当前位置:首页 > 教学研究 > 教学反思汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1