单片机习题参考答案08-12(4)

2019-04-14 12:36

7.设计一个AT89C51单片机的双机通信系统,并编写程序将甲机片外RAM 3400H~3420H单元中的数据块通过串行口传送到乙机的片内RAM 40H~60H单元中。

串行口定义在工作方式1下发送。采用定时器T1方式2作波特率发生器,设波特率为4800,fosc=11.0592MHz。

{fosc}?(SMOD?1)11.0592?106?(SMOD?1)

X?256??256?{波特率}?3844800?384SMOD=0时,X=250=FAH

SMOD=1时,X=244=F4H

本题取SMOD为0

双机异步通信连接图

解:编写发送子程序如下:

MOV TM0D,#20H ;设置定时器T1为方式2 MOV TL1,#0FAH ;设预置值 MOV TH1,#0FAH

SETB TR1 ;启动定时器T1

MOV SCON,#40H ;设置串行口为方式1 MOV PCON,#00H ;SMOD=0

MOV DPTR,#3400H ;设数据块指针 MOV R7,#21H ;设数据长度

TRS: MOVX A,@DPTR ;取数据送至A

MOV SBUF,A ;数据送至SBUF,启动发送

WAIT: JNB TI,$ ;判1帧是否发送完

CLR TI

INC DPTR ;更新数据单元 DJNZ R7,TRS ;循环发送至结束 RET ;返回

在进行双机通信时,两机应用相同的工作方式和波特率,因而接收子程序如下:

MOV TMOD,#20H ;设置定时器1为方式2 MOV TL1,#0FAH ;设预置值 MOV TH1,#0FAH

SETB TR1 ;启动定时器T1

MOV SCON,#40H ;设置串行口为方式3 MOV PCON,#00H ;SMOD=0

MOV R0,#40H ;设置数据块指针 MOV R7,#21H ;设数据块长度 SETB REN ;允许接收

WAIT: JNB RI,$ ;判1帧是否接收完

CLR RI

MOV A,SBUF ;读入一帧数据 MOV @R0,A ;存放数据

INC R0 ;修改地址指针

DJNZ R7,WAIT ;判断数据块接收完否 RET ;返回

16

8.利用80C51串行口控制8位发光二极管工作,要求发光二极管每1S交替地亮、灭,画出

电路图并编写程序。

;P3.1 EQU CLK

;P3.0 EQU SDA(A、B) ;P1.0 EQU CLR CLR P1.0 SETB P1.0

MOV SCON,#00H MOV A,#55H AA: MOV SBUF,A

JNB TI,$ CLR TI

ACALL DELAY_1S RR A AJMP AA

第8章作业参考答案

P199 3,5

3.AT89S51有几个中断源,各中断申请标志是如何产生的,又如何清“0”的?CPU响应中断时,中断入口地址各是多少?

答:AT89S51单片机有5个中断源,分别为:2个外部输入中断源INT0(P3.2)和INT1(P3.3)2个片内定时器T0和T1的溢出中断源TF0(TCON.5)和TF1(TCON.7);1个片内串行口发送和接收中断源TI(SCON.1)和RI(SCON.0)。 各中断标志的产生和清“0”如下: (1)外部中断类

外部中断是由外部原因引起的,可以通过两个固定引脚,即外部中断0INT0和外部中断INT1输入信号:

INT0——外部中断0请求信号,由P3.2脚输入。通过IT0(TCON.0)来决定中断请求信号是低电平有效还是下跳变有效。一旦输入信号有效,则向CPU申请中断,并且使IE0=1。硬件复位。

INT1——外部中断1请求信号,功能与用法类似外部中断0。 (2)定时中断类

定时中断是为满足定时或计数溢出处理的需要而设置的。当定时器/计数器中的计数结构发生计数溢出时,即表明定时时间到或计数值已满,这时就以计数溢出信号作为中断请求,去置位一个溢出标志位。这种中断请求是在单片机芯片内部发生的,无需在芯片上设置引入端,但在计数方式时,中断源可以由外部引入。

TF0——定时器T0溢出中断请求。当定时器T0产生溢出时,定时器T0中断请求标志TF0=1,请求中断处理。使用中断时由硬件复位,在查询方式下可由软件复位(即清“0”)。 TF1——定时器TI溢出中断请求。功能与用法类似定时器T0。 (3)串行口中断类

串行口中断是为串行数据的传送需要而设置的。串行中断请求也是在单片机芯片内部发生的,但当串行口作为接收端时,必须有一完整的串行帧数据从RI端引入芯片,才可能

17

引发中断。

RI或TI——串行中断请求。当接收或发送完一串行帧数据时,使内部串行口中断请求标志RI或TI=1,并请求中断。响应中断后必须软件复位。

CPU响应中断时,各中断源的中断入口地址是:

中断源 外部中断0 外部中断1 串行口中断 入口地址 0003H 0013H 0023H 定时器T0中断 000BH 定时器T1中断 001BH 定时器T2中断 002BH(仅AT89S52有) 5.用定时器T1定时,要求在P1.6口输出一个方波,周期是1min。晶振频率为12MHz,请

用中断方式实现,并分析采用中断后的优点。

解:计算半周期为250μS方波的时间初值。

8

(2-X)×1μS=250μs X=6=06H 即TH0=06H,TL0=06H;

采用定时器1,方式2定时250μS,则TMOD=20H;采用中断方式工作,IE=88H

输出周期为:P1.6为1min

ORG 0000H AJMP MAIN ORG 001BH AJMP AA ORG 0030H

MAIN: MOV TH0,#06H MOV TL0,#06H MOV TMOD,#20H MOV IE,#88H SETB TR0

MOV R5,#40 ;250μS×40=10ms

MOV R6,#100 ;10ms×100=1S MOV R7,#30 ;1S×30=0.5min

SJMP $ 中断服务子程序

AA: DJNZ R5,BB ;250μS到中断,判10ms到?

MOV R5,#40

DJNZ R6,BB ;10ms到,判到1S? MOV R6,#100

DJNZ R7,BB ;1S到,判到0.5min?

MOV R7,#30 ;半周期0.5min到,P1.6求反 CPL P1.6

BB: RETI

第9章习题参考答案

P236 3,4,5

3.以AT89S51为主机,扩展2片6264 RAM存储器芯片,设计硬件布线图。

18

(1)译码法:

IC0芯片地址范围0000H-1FFFH, IC1芯片地址范围2000H-3FFFH。 (2)线选法:

4.根据图9.5所示线路设计程序。其功能是:按下K0~K3后,对应LED4~LED7发光,按下K4~K7后,对应LED0~LED3发光。

19

解: ORG 1000H

LOOP: MOV DPTR,#0FEFFH MOVX A,@DPTR SWAP A

MOVX @DPTR,A SJMP LOOP

5.请利用74HC138设计一个译码电路,分别选中2片29C256和2片62256,且列出各芯片所占的地址范围。

VCC74HC138E3 E2 E1C Y1BA Y0774HC373 Q7 Q0ALEGOED7 D0EAP0PSENWRRDA7 A0IC029C256D7 D0 OEA7 A0IC129C256D7 D0 OEA7 A0IC262256WE D7 D0 OEA7 A0IC262256WE D7 D0 OECEA14 A87CEA14 A87CEA14 A87CEA14 A8AT89S51 P2.7P2.6 P2.0

IC0芯片地址范围0000H-7FFFH, IC1芯片地址范围8000H-FFFFH, IC2芯片地址范围0000H-7FFFH, IC3芯片地址范围8000H-FFFFH。

注:外部程序存储器一般应包括0000H附近地址,此时/EA接地。

7.试编程对8255进行初始化,使其A口为基本输出,B口为基本输入,C口上半部为输出,C口下半部为输入。

解: 电路图参见P221页图9.8。

20

A口为基本输出(方式0),B口为基本输入(方式0),C口上半部为输出,C口半班部为输入。

控制字为10010101B,其控制口地址为FF7FH。

按方式0输入,B口按方式1输出,C口上半部按方式0输出,C口半班部按方式1输入。 解: 电路图参见P211页图9.8。

控制字为1000 0011B,其控制口地址为FF7FH。 其初始化程序为:

MOV DPTR,#0FF7FH MOV A,#83H MOVX @DPTR,A

21


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

下一篇:反渗透膜的污染及清洗方法

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

马上注册会员

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