好文档 - 专业文书写作范文服务资料分享网站

MCS51单片机课后作业解答

天下 分享 时间: 加入收藏 我要投稿 点赞

MOV TH0, #3CH CPL P2.0 RETI 2.采用c51语言

定时为50ms,采用方式1,X=216 -50000*(12/12) #include sbit P2_0 = P2^0; void main(void) {

TMOD = 0x01; P2_0 = 0;

TH0 = (65536 – 500000)/256 ; TL0 = (65536 – 500000)%6 ; EA=1 ; ET0 =1; TR0 =1;

Do{} while (1); }

Void timer0(void) interrupt 1 {

TL0 = (65536 – 500000)%6 ; TH0 = (65536 – 500000)/256 ; P2_0 = !P2_0; }

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当 中断3次时清0,满10次重新置1。 ORG 000BH

LJMP T0_INT MAIN: MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV R2,#0 SETB ET0 SETB IE SETB TR0 SETB P1.0 SJMP $

T0_INT: MOV TL0, #0B0H MOV TH0, #3CH INC R2

CJNE R2,#3,T0_INT1 CLR P1.0 RETI

T0_INT1:CJNE R2,#10, T0_INT2 SETB P1.0 MOV R2,#0 T0_INT2: RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12) #include sbit P1_0 = P1^0; uchar NUM =0; void main(void) {

TMOD = 0x01; P1_0 = 1;

TH0 = (65536 – 500000)/256 ; TL0 = (65536 – 500000)%6 ; EA=1 ; ET0 =1; TR0 =1;

Do{} while (1); }

Void timer0(void) interrupt 1 {

TL0 = (65536 – 500000)%6 ; TH0 = (65536 – 500000)/256 ; NUM++;

If (NUM ==3) P1_0 = 0; Else if (NUM ==10) {

NUM =0; P1_0 =1; } }

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当 中断10次时清0,满20次重新置1。 ORG 000BH

LJMP T0_INT MAIN: MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV R2,#0 SETB ET0 SETB IE SETB TR0 SETB P1.7 SJMP $

T0_INT: MOV TL0, #0B0H MOV TH0, #3CH INC R2

CJNE R2,#10,T0_INT1 CLR P1.7 RETI

T0_INT1:CJNE R2,#20, T0_INT2 SETB P1.7 MOV R2,#0 T0_INT2: RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12) #include sbit P1_7 = P1^7; uchar NUM =0; void main(void) {

TMOD = 0x01; P1_7 = 1;

TH0 = (65536 – 500000)/256 ; TL0 = (65536 – 500000)%6 ; EA=1 ; ET0 =1; TR0 =1;

Do{} while (1); }

Void timer0(void) interrupt 1

{

TL0 = (65536 – 500000)%6 ; TH0 = (65536 – 500000)/256 ; NUM++;

If (NUM ==10) P1_7 = 0; Else if (NUM ==20) {

NUM =0; P1_7 =1; } }

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当中断10次时p1.0=0,外部INT0中断时 p1.0=1,启动定时器。 ORG 0000H

LJMP MAIN ORG 0003H

LJMP INT0_INT ORG 000BH

LJMP T0_INT

MAIN: MOV TMOD, #01H MOV TH0, #3CH MOV TL0, #0B0H MOV R2,#0 SETB ET0 SETB IE

SETB EX0 SETB IT0 SETB P1.0 CLR P1.1 SJMP $

T0_INT: MOV TL0, #0B0H MOV TH0, #3CH INC R2

CJNE R2,#10, T0_INT2

SETB P1.0 CLR P1.1 CLR TR0 T0_INT2: RETI

INT0_INT: SETB TR0 MOV R2,#0 CLR P1.0 SETB P1.1 RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12) #include sbit P1_0 = P1^0; sbit P1_1 = P1^1; uchar NUM =0; void main(void) {

TMOD = 0x01; P1_0 = 1; P1_1 = 0;

TH0 = (65536 – 500000)/256 ; TL0 = (65536 – 500000)%6 ; EA=1 ; ET0 =1; EX0 =1; IT0 =1;

Do{} while (1); }

Void timer0(void) interrupt 1 {

TL0 = (65536 – 500000)%6 ;

MCS51单片机课后作业解答

MOVTH0,#3CHCPLP2.0RETI2.采用c51语言定时为50ms,采用方式1,X=216-50000*(12/12)#includesbitP2_0=P2^0;voidmain(void){TMOD=0x01;
推荐度:
点击下载文档文档为doc格式
3j0j00qxtx5gf8x599ez10e609m87w01bbh
领取福利

微信扫码领取福利

微信扫码分享