微机控制技术习题解答112(1)
第一章 第二章 三、练习题
28.设12位D/A 转换器 DAC1210与8031接口电路连接,如图示:
I 爾 I ■ r E ? A *4 r% / 4 t- r- -Mt MUI r-\ ■尸 q r * 更 1 ?feC r t r'ir-1 TSL
(1) .说明电路控制原理
(2) ?设数据存放在DABUFF 为首地址的连续两个存储单元,试编写一完成 D/A 转换的程序。
答:DAC1210是12位的D/A 转换器,单片机的数据线接
DAC1210的高八位DI4—DI11,数据线的P0.4至U
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 转换电路。
P0.7
POQ
wR
8031
P27
P26
F2.5 P24
Pill
Pl r
rZ £
Dh D 仃 Dt 2 Dh D[q 师
Inin?
AG ND
HXrri
DACIJIO
+5V
14
74LS138
B|靳
CS
LXiND
XFER
c
£
29.试用DAC0832芯片设计一个能够输出频率为 50HZ 的脉冲波电路及程序。
1. 数据线:单片机(AT89C51的 P0.0-P0.7 连接 DAC0832 的 D0-D7
2. 地址线:单片机的A8(P2.0)接CS 片选信号,地址是OFEFFH.
3. 控制线:单片机写信号接WR1.单缓冲控制形式.
2 :输出NN 个方波的程序。 START:
MOV DPTR,#OFEFFH MOV A,#0
MOV
R2,#NN
Pll
P32 PL3 PH PL5 PL6 Pl? Tl TO
T 31
EA/V?
Xi
AT33S5!
P27 P26 P25 P 刑 REiET 24
PSEM F22 P23
38 6
37
36
35 16
>4
):
).4
32
13 21 1
?£>1Q V K Dll ILE DI2 Vwf Dt3
DI4
DI6 [outl
(3
M2 WR1
WR2
AGHD
畑
£>GHD
DACC332
1HTC 1MT1
'1A74!
■J5V
%
20 (
8
rs -
ll
2
3
3
10
26 25
T :CD
RXD
JI
31. A/D 转换器的结束信号 EOC 有什么作用?根据该信号在 I/O 控制中的连接方式,A/D 转换有几种控制 方式?它们各在接口电路和程序设计上有什么特点?
答:EOC 信号反映A/D 转换是否结束,可以用作读转换结果的状态信号,也可以作为中断请求信号。
有三种控制方式:(1)。中断方式读数据。(2)查询方式读数据。(3)延时读数据。
(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=Q 正在转换。 答:(2)该电路采用查询方式读数据。
ST1:
MOVX
DPTR,A MOV A#0FFH LCALL DELAY1MS MOVX DPTR,A MOV A#0H
LCALL DELAY19MS DJNZ R2,ST1
END
33.某A/D 转换电路如图示
2.31 A/D 转换电路国
MOV A,#10000011B ;8255PB 输入,PCQ- PC3输入过程幵始
;PC4---PC7 输岀(方式0)
MOV DPTR,#7B00H
MOVX DPTR,A ;初始化
NOP
MOV R0, #BUFF1
MOV R2, 8
STA: MOV DPTR,#7A00H ; 送启动脉冲
MOV A,#0F0H
MOVX DPTR,A
NOP
MOV A,00H
MOVX DPTR,A
STAQ MOV
MOVX
ANL
JZ
JMP STA1: MOV
MOVX
MOV DPTR,#7A00H
A,DPTR
A,#08H ;PC3==0? STA1
STA0
DPTR,#7900H
A,DPTR
R0, A
INC R0
DJNZ R2, STA RET
END
第三章
27.试用8255A的C 口设计一个4*4=16的阵列,其中0—9为数字键,A---F为功能键,采用查询方式,设计一个接口电路,并编写键扫描程序。
HI Si I
3 2 1 0
7 6 5 4
B A 9 8
F E D C
图3.J用R255A接口的4X*键盘矩阵
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 口
MOVX A,DPTR ;读入列值
CPL A
ANL A,#0FH ;
JNZ KEY3 ;有键按下,求列值。
INC R4 ;无键按下,行寄存器加1
MOV A,R2
RL A ;左移一位, 扫描下一行
MOV R2,A
JB ACC.4,KEY2 ;四行扫描完?
AJMP KEYPRO
KEY3:CPL A ; 恢复列值模型
KEY4: INC R3 ;求列值
RRC A
JC KEY4
KEY5:ACALL D10MS
ACALL KEXAM
JNZ KEY5 ;若有键按下,转KEY5等待键释放
MOV A,R4 ;计算键值
CLR C
RLC A
RLC A
ADD A,R3
MOV BUFF,A ;存键值
AJMP KEYADR
;转查找功能键入口地址子程序
D10MS: MOV R5,#14H DL: MOV R6,#10FFH DL0: DJNZ R6,DL0
DJNZ R5,DL
RET
BUFF EQU 30H
KEXAM : MOV DPTR,#8200H MOV A,#0
MOVX DPTR,A
MOV DPTR,#8000H MOVX A,DPTR
CPL A
ANL A,#0FH
RET
30. 设电路如图:是回答下列问题。
(1)说明图中数码管应选哪一种类型的数码管答:选共阳极。
(2)属于哪一种显示方法。
静态显示。
(3)
4位BCD码输入转换成数码管显示和驱动(集电极开路输出)(4)
MOV RO, #60H
MOV R1, #DATABUF1
MOV A,R1
MOVX RO, A
INC R1
MOV RO, #63H
MOV A,R1
MOVX RO, A
第四章三,18题
程序如下:
MOV DPTR,#8300H;8255口A输入,PC—PC7 输入
MOV A,#10011000B ;8255 口B 输出,PC0---PC3 输出
MOVX DPTR,A