微机控制技术习题解答112.docx
《微机控制技术习题解答112.docx》由会员分享,可在线阅读,更多相关《微机控制技术习题解答112.docx(14页珍藏版)》请在冰豆网上搜索。
![微机控制技术习题解答112.docx](https://file1.bdocx.com/fileroot1/2023-2/10/d22049b5-09f9-45eb-87fc-2a1e02a910f0/d22049b5-09f9-45eb-87fc-2a1e02a910f01.gif)
微机控制技术习题解答112
第一章
第二章
三、练习题
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)
MOVR0,#DABUFF;DABUFF是内存的首地址
MOVA,@R0;首地址存放高8位数据
INCR0
MOVDPTR,#1400H
MOVX@DPTR,A;送高8位数据
MOVA,@R0取低4位数据(高4位是有效数据,低4位为0)
MOVDPTR,#1C00H;
MOVX@DPTR,A送低4位数据
MOVDPTR,#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:
MOVDPTR,#0FEFFH
MOVA,#0
MOVR2,#NN
ST1:
MOVX@DPTR,A
MOVA#0FFH
LCALLDELAY1MS
MOVX@DPTR,A
MOVA#0H
LCALLDELAY19MS
DJNZR2,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地址是7800H8255端口B地址是7900H
8255端口C地址是7A00H,8255控制口地址是7B00H
8255的PB口设定为输入,读取A/D转换值,
PC4---PC7为输出,作为A/D转换的启动信号(启动脉冲)。
PC0---PC3为输入,可以读取EOC,查询是否转换结束,PC3=1转换结束,PC3=0,正在转换。
答:
(2)该电路采用查询方式读数据。
MOVA,#10000011B;8255PB输入,PC0—PC3输入
;PC4---PC7输出(方式0)
MOVDPTR,#7B00H
MOVX@DPTR,A;初始化
NOP
MOVR0,#BUFF1
MOVR2,8
STA:
MOVDPTR,#7A00H;送启动脉冲
MOVA,#0F0H
MOVX@DPTR,A
NOP
MOVA,00H
MOVX@DPTR,A
STA0:
MOVDPTR,#7A00H
MOVXA,@DPTR
ANLA,#08H;PC3==0?
JZSTA1
JMPSTA0
STA1:
MOVDPTR,#7900H
MOVXA,@DPTR
MOV@R0,A
INCR0
DJNZR2,STA
RET
END
;
第三章
27.试用8255A的C口设计一个4*4=16的阵列,其中0—9为数字键,A---F为功能键,采用查询方式,设计一个接口电路,并编写键扫描程序。
3
2
1
0
7
6
5
4
B
A
9
8
F
E
D
C
ORG0200H
KEYPRO:
ACALLDISUP;调用显示子程序
ACALLKEXAM;检查是否有键按下
JZKEYPRO;若无键按下,转KEYPRO
ACALLD10MS;有键按下,去抖。
ACALLKEXAM;再判是否有键按下
JZKEYPRO;若无键按下,转KEYPRO
KEY1:
MOVR2,#0FEH;输出使X0行为低电平
MOVR3,#0;列值和行值寄存器清零
MOVR4,#0
KEY2:
MOVDPTR,#8200H;指向8255C口
MOVA,R2;扫描第一行
MOVX@DPTR,A
MOVDPTR,#8000H;指向8255A口
MOVXA,@DPTR;读入列值
CPLA
ANLA,#0FH;
JNZKEY3;有键按下,求列值。
INCR4;无键按下,行寄存器加1
MOVA,R2
RLA;左移一位,扫描下一行
MOVR2,A
JBACC.4,KEY2;四行扫描完?
AJMPKEYPRO
KEY3:
CPLA;恢复列值模型
KEY4:
INCR3;求列值
RRCA
JCKEY4
KEY5:
ACALLD10MS
ACALLKEXAM
JNZKEY5;若有键按下,转KEY5,等待键释放
MOVA,R4;计算键值
CLRC
RLCA
RLCA
ADDA,R3
MOVBUFF,A;存键值
AJMPKEYADR;转查找功能键入口地址子程序
D10MS:
MOVR5,#14H
DL:
MOVR6,#10FFH
DL0:
DJNZR6,DL0
DJNZR5,DL
RET
BUFFEQU30H
KEXAM:
MOVDPTR,#8200H
MOVA,#0
MOVX@DPTR,A
MOVDPTR,#8000H
MOVXA,@DPTR
CPLA
ANLA,#0FH
RET
30.设电路如图:
是回答下列问题。
(1)说明图中数码管应选哪一种类型的数码管。
答:
选共阳极。
(2)属于哪一种显示方法。
静态显示。
(3)
4位BCD码输入转换成数码管显示和驱动(集电极开路输出)。
(4)
MOVR0,#60H
MOVR1,#DATABUF1
MOVA,@R1
MOVX@R0,A
INCR1
MOVR0,#63H
MOVA,@R1
MOVX@R0,A
第四章
三,18题
程序如下:
MOVDPTR,#8300H;8255口A输入,PC4—PC7输入
MOVA,#10011000B;8255口B输出,PC0---PC3输出
MOVX@DPTR,A
MOVR0,#MAX
MOVR1,#MIN
MOVR2,#8
MOVR3,#0
STT0:
MOVDPTR,#8200H
MOVA,R3
ORLA,#08H
MOVX@DPTR,A
NOP
NOP
NOP
MOVDPTR,#8200H
MOVA,R3
MOVX@DPTR,A
ACALLDELAY0.2MS
MOVDPTR,#8000H
MOVXA,@DPTR
MOVB,A
CLRC
SUBBA,@R0
JNCATM0;大于MAX值,转上限报警。
CLRC
MOVA,B
SUBBA,@R1
JCATM1;小于MIN值,转下限报警。
ACALLDISUP0;正常值显示。
ATM3:
INCR3
INCR0
INCR1
DJNZR2,STT0
ATM0:
ACALLDISUP2;上限报警模式
SJMPATM3
ATM1:
ACALLDISUP3;下限报警模式
SJMPATM3
END
三.19.P114表4.4
20.某电机控制系统如图。
(1)说明图中光电隔离器4N25的作用。
PC0为1时,4N25输出端高电平,IRF640导通,电机运行。
PC0为0时,4N25输出端低电平,IRF640不导通,电机停转。
(4)8255的端口地址符号地址AD8255A/AD8255B/AD8255C/AD8255D
ORG200H
MOVDPTR,#AD8255D
MOVA,#10001000B;PC0—PC3输出,PC4—PC7输入(方式0)
MOVX@DPTR,A
TTT2:
MOVDPTR,#AD8255C
MOVXA,@DPTR
JBACC.7,TTT1
MOVA,#0
TTT3:
MOVX@DPTR,A
SJMPTTT2
TTT1:
MOVA,#1
SJMPTTT3
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)