微机控制技术习题解答112-(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章

第二章

三、练习题

28. 设12位D/A转换器DAC1210与8031接口电路连接,如图示:

(1).说明电路控制原理

(2).设数据存放在DABUFF为首地址的连续两个存储单元,试编写一完成D/A转换的程序。

答:DAC1210是12位的D/A转换器,单片机的数据线接DAC1210的高八位DI4—DI11,数据线的P0.4到P0.7接DAC1210的数据线的低4位DI0---DI3.DAC1210连线接成双缓冲形式。

地址码写高8位数据时译码器Y2有效,则B1/B2=1,写高8位数据,地址是1400H

写低4位数据时译码器Y3有效,则B1/B2=0,写低4位数据,地址是1C00H

将12位数据同时送到12位DA转换电路,译码器Y4有效,地址是2400H

解答(2)

MOV R0,#DABUFF ;DABUFF是内存的首地址

MOV A,@R0 ;首地址存放高8位数据

INC R0

MOV DPTR,#1400H

MOVX @DPTR,A ;送高8位数据

MOV A,@R0 取低4位数据(高4位是有效数据,低4位为0)

MOV DPTR,#1C00H;

MOVX @DPTR,A 送低4位数据

MOV DPTR,#2400H

MOVX @DPTR,A 打开第二级缓冲,将数据送到DA转换电路。

29.试用DAC0832芯片设计一个能够输出频率为50HZ的脉冲波电路及程序。

1.数据线:单片机(AT89C51)的P0.0-P0.7连接DAC0832的D0-D7

2.地址线:单片机的A8(P2.0) 接CS 片选信号,地址是0FEFFH.

3.控制线:单片机写信号接WR1. 单缓冲控制形式.

2:输出NN个方波的程序。

START: MOV DPTR,#0FEFFH

MOV A,#0

ST1:MOVX @DPTR,A

MOV A#0FFH

LCALL DELAY1MS

MOVX @DPTR,A

MOV A#0H

LCALL DELAY19MS

DJNZ R2,ST1

END

31. A/D转换器的结束信号EOC有什么作用?根据该信号在I/O控制中的连接方式,A/D转换有几种控制方式?它们各在接口电路和程序设计上有什么特点?

答:EOC信号反映A/D转换是否结束,可以用作读转换结果的状态信号,也可以作为中断请求信号。

有三种控制方式:(1)。中断方式读数据。(2)查询方式读数据。(3)延时读数据。

33. 某A/D转换电路如图示

(1)。写出A/D转换器的地址。

(2)。该电路采用什么控制方式?画出该种转换的程序流程。

(3)。用8051单片机汇编语言写出完成上述转换的程序。

答:(1)A/D转换的启动地址是7A00H 读转换是否结束的地址7A00H

A/D转换读数据的地址是7B00H.

8255端口A地址是7800H 8255端口B地址是7900H

8255端口C地址是7A00H, 8255控制口地址是7B00H

8255的PB口设定为输入,读取A/D转换值,

PC4---PC7为输出,作为A/D转换的启动信号(启动脉冲)。

PC0---PC3为输入,可以读取EOC,查询是否转换结束,PC3=1转换结束,PC3=0,正在转换。

答:(2)该电路采用查询方式读数据。

;PC4---PC7 输出(方式0)MOV DPTR,#7B00H

MOVX @DPTR,A ;初始化

NOP

MOV R0,#BUFF1

MOV R2,8

STA: M OV DPTR,#7A00H ; 送启动脉冲

MOV A,#0F0H

MOVX @DPTR,A

NOP

MOV A,00H

MOVX @DPTR,A

STA0:MOV DPTR,#7A00H

MOVX A,@DPTR

ANL A,#08H ;PC3==0?

JZ STA1

JMP STA0

STA1: MOV DPTR,#7900H

MOVX A,@DPTR

MOV @R0,A

INC R0

DJNZ R2,STA

RET

END

;

第三章

27.试用8255A的C口设计一个4*4=16的阵列,其中0—9为数字键,A---F为功能键,采用查询方式,设计一个接口电路,并编写键扫描程序。

3210

7654

B A98

F E D C

ORG 0200H

KEYPRO: ACALL DISUP ;调用显示子程序

ACALL KEXAM ;检查是否有键按下

JZ KEYPRO ;若无键按下,转KEYPRO

ACALL D10MS ;有键按下,去抖。

ACALL KEXAM ;再判是否有键按下

JZ KEYPRO ;若无键按下,转KEYPRO

KEY1:MOV R2,#0FEH ;输出使X0行为低电平

MOV R3,#0 ;列值和行值寄存器清零

MOV R4,#0

KEY2:MOV DPTR,#8200H ;指向8255 C口

MOV A,R2 ;扫描第一行

MOVX @DPTR,A

MOV DPTR,#8000H ;指向8255 A口

相关文档
最新文档