单片机课后习题答案(6)

2019-04-21 20:13

26 错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。

//中断服务程序

void time0_int(void) interrupt 1 {

TH0=0xFC;TL0=0x18; P1_0=!P1_0; }

19. 8051系统中,已知振荡频率为12MHz,用定时/计数器T1,实现从P1.1产生周期为2s的方波。要求分别用汇编语言和C语言进行编程。

解:

从P1.1产生2s的方波,应产生500ms的周期性的定时,定时到对P1.1取反就可实现。由于定时时间较长,一个定时/计数器T1不能直接实现,采用定时/计数器T1产生周期性为10ms的定时,然后用一个寄存器R2对10ms计数100次来实现。系统时钟为12MHZ,定时/计数器T1定时10ms,计数值N为10000,只能选方式1,方式控制字为00010000B(10H),初值X:

X=65536-10000=55536=1101100011110000B 则TH1=11011000B=D8H,TL1=11110000B=F0H。 定时/计数器T1采用中断处理方式。 汇编程序:

ORG 0000H LJMP MAIN

ORG 001BH LJMP INTT1

ORG 0100H MAIN: MOV TMOD,#10H

MOV TH1,#0D8H MOV TL1,#0F0H MOV R2,#00H SETB EA SETB ET1 SETB TR1 SJMP $

错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。

INTT1:

MOV TH1,#0D8H MOV TL1,#0F0H INC R2

CJNE R2,#64H,NEXT CPL P1.1 MOV R2,#00H

NEXT:

RETI END

C语言程序:

#include //包含特殊功能寄存器库 sbit P1_1=P1^1; char i; void main() {

TMOD=0x10;

TH1=0xD8;TL1=0xf0; EA=1;ET1=1; i=0; TR1=1; while(1); }

void time0_int(void) interrupt 3 //中断服务程序 {

TH1=0xD8;TL1=0xf0; i++;

if (i= =100) {P1_1=! P1_1;i=0;} }

20. 8051系统中,已知振荡频率为12MHz,用定时/计数器T1,实现从P1.1产生高电平宽度为10ms,低电平宽度为20ms的矩形波。要求分别用汇编语言和C语言进行编程。

解:

27

本题处理方式有多种,这里采用对定时/计数器T1形成10ms周期定时,用R2对10ms计数,当计到1,则对P1.1置1,当计到2和3,则对P1.1置0来实现。用定时/计数器T1形成10ms周期定时见上题。

程序如下:

ORG 0000H

28 错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。 LJMP MAIN

ORG 001BH LJMP INTT1

ORG 0100H MAIN: MOV TMOD,#10H

MOV TH1,#0D8H MOV TL1,#0F0H MOV R2,#00H SETB EA SETB ET1 SETB TR1 SJMP $

INTT1:

MOV TH1,#0D8H MOV TL1,#0F0H INC R2

CJNE R2,#01H,NEXT SETB P1.1 SJMP EXIT

NEXT:

CJNE R2,#02H,NEXT1 CLR P1.1 SJMP EXIT

NEXT1:CJNE R2,#03H,NEXT

SETB P1.1 MOV R2,#00

EXIT:

RETI

错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。 END

C语言程序:

#include //包含特殊功能寄存器库 sbit P1_1=P1^1; char i; void main() {

TMOD=0x10;

TH1=0xD8;TL1=0xf0; EA=1;ET1=1; i=0; TR1=1; while(1) {

if (i= =0) {P1_1=1;} if (i= =1) {P1_1=0;} if (i= =2) {P1_1=0;} } ; }

void time0_int(void) interrupt 3 //中断服务程序 {

TH1=0xD8;TL1=0xf0; i++;

if (i= =3) {i=0;} }

29

21. 用8051单片机的串行口扩展并行I/O接口,控制16个发光二极管依次发光,画出电路图,用汇编语言和C语言分别编写相应的程序。

解:

采用在串口连接两个CD4094来实现,电路图如下:

8051 RXD TXD P1.0 DATA CLK DATA CLK STB STB

程序如下;

30 错误!使用“开始”选项卡将 标题 1,部分标题 1 应用于要在此处显示的文字。 ORG 0000H LJMP MAIN

ORG 0100H

MAIN: MOV SCON,#00H MOV R4,#10H MOV R3,#00H MOV R2,#01H CLR P1.0

START:MOV A,R3

MOV SBUF,A

LOOP:

JNB TI,LOOP MOV A,R2 MOV SBUF,A

LOOP1:JNB TI,LOOP1

SETB P1.0 ACALL DELAY CLR TI CLR C MOV A,R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A CLR P1.0 DJNZ R4,START1 SJMP MAIN


单片机课后习题答案(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学物理综合练习六[KH3D]

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: