单片机原理及其接口技术王敏课后作业答案Word格式文档下载.docx
- 文档编号:21502437
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:22
- 大小:104.21KB
单片机原理及其接口技术王敏课后作业答案Word格式文档下载.docx
《单片机原理及其接口技术王敏课后作业答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及其接口技术王敏课后作业答案Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
⑥外部2000H单元中的内容送到外部RAM3000H单元;
MOVDPTR,#3000H
MOVX@DPTR,A
3-11已知:
(20H)=X;
(21H)=Y;
(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少?
②MOVSP,#60H
PUSH22H
PUSH21H
(73H)=Z;
(72H)=Y;
(71H)=X;
(63H)=X;
(62H)=Y;
(61H)=Z;
3-20试编出能完成如下操作的程序:
①使20H单元中数的高两位变“0”其余位不变;
ANL20H,#3FH
2使20H单元中数的高两位变“1”其余位不变;
0RL20H,#0C0H
3使20H单元中数的高两位变反,其余位不变;
XRL20H,#0C0H
4使20H单元中数的高四位变“1”低四位变“0”
MOV20H,#0F0H
5使20H单元中数的所有位变反。
XRL20H,#0FFH
3-27已知:
外部RAM2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM20H为始址的存储区(负数和负零不作处理)。
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVR0,#14H
MOVR1,#20H
ROT:
MOVXA,@DPTR
JBACC.7,NEXT
MOV@R1,A
INCR1
NEXT:
INCDPTR
DJNZR0,ROT
SJMP$
END
第四章作业(P104)
4-7已知RAM勺BLOCK单元,请编写其中可以统计正负数个数分别存入NUM和NUM+单元的程序。
LENDATA20H
NUMDATA21H
BLOCKDATA23H
MOVNUM,#00H
MOVNUM+,1#00H
MOVR0,#BLOCK
LOOP:
MOVA,@R0
JNBACC.7,POSI
INCNUM+1
SJMPNEXT
POSI:
INCNUM
INCR0
DJNZLEN,LOOP
4-9外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM3000H-3100H区域的程序。
采用当型循环,判断程序结束条件
ORG1000H
MOVDPT,R#2000H
ORLDPH,#10H;
将DPI■中的20H变成30H
ANLDPH,#0EFH;
将DPH中的30H变成20H
INCDPTR
MOVA,DPH
CJNEA,#21H,NEXT
MOVXA,@DPTR;
将2100H单元的数据送A
MOVDPH,#31H
MOVX@DPTR,A;
将A的数据送3100H单元
4-11将内部RAM勺AAA单元中8位无符号数转换成BCD码表示的十进制数。
(要求用连续除10的方法实现)
AAADATA20H
BAIDATA21H
SHIDATA22H
GEDATA23H
MOVA,AAA
MOVB,#0AH
DIVAB
MOVGE,B
MOVSHI,B
MOVBAI,A
4-15请编写能从内部RAM的BLOCKS起始地址的20个无符号数找出最小值,并把它送到MIN单元的程序。
MINDATA20H
BLOCKDATA21H
MAIN:
MOVR2,#13H
MOVA,@R0
LOOP:
INCR0
MOVB,@R0
CJNEA,B,NEXT
NEXT:
JCNEXT1
NEXT1:
DJNZR2,LOOP
MOVMIN,A
第五章作业(P155)
6-4编程,利用定时器T0(工作在方式1)产生一个50Hz的方波,由P1.0输出,晶振频率为12MHz。
按照题意,定时器T0需要工作在方式1定时10ms则TMOD空制字为01H;
已知
fosc=12MHz,则机器周期为1卩s。
定时初值=216-10ms/1卩s=55536=D8F0H,即
TH0=0D8HTL0=0F0H则相应的程序如下:
6-5在8051单片机中,已知晶振频率为12MHz试编程使P1.0和P1.2分别输出周期为2ms和500ms的方波。
设晶振频率为6MHz试用T0作为外部计数器,编程实现每当计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环下去
1)按照题意,定时器T0需要工作在方式1定时1ms贝UTMOD控制字为01H;
已知fosc=12MHz,则机器周期为1卩s。
定时初值=216-1ms/1卩s=64536=FC18H即TH0=0FCHTL0=18H则相应的程序如下:
主程序:
START:
MOVTMO,D#01H
MOVTH0,#0FCH
MOVTL0,#18H
MOVIE,#82H;
开T0中断
SETBTR0;
启动T0
MOVR0,#0FAH;
软件计数器赋初值
SJMP$;
等待中断
中断程序:
ORG000BH
AJMPBRT0
ORG0080H
BRT0:
CPLP1.0
DJNZR0,NEXT
CPLP1.2;
250ms
MOVR0,#0FAH
NEXT:
MOVTH0,#0FCH
RETI
;
250ms未到,转NEXT
到,改变P1.2电平
方式,则TMO控制字为15H;
TO计数初值为216-1000=64536=FC18H,即THO=OFCHTL0=18H;
已知fosc=6MHz,则机器周期为2卩s。
T1定时初值=216-2ms/2卩s=64536=FC18H即TH1=0FCHTL仁18H则相应的程序如下:
ORG2000H
MOVTMOD#15H
写入工作方式字
MOVTH0,
#0FCH
写入计数初值
MOVTL0,
#18H
MOVTH1,
MOVTL1,
SETBTR0
J
启动T0
JBCTF0,PE
TF0=1溢出转移PE,并清除TF0
AJMPLOOP
TF0
为0转LOOP等待
PE:
SETBTR1
启动T1定时,关T0计数
CLRTR0LOOP:
1JBCTF1,PE1
TF1=1溢出转移PE1,并清除TF1
AJMPLOOP1
TF1
为0转LOOP1等待
PE1:
MOVTH0,
重装初值
启动T0计数,关T1定时
CLRTR1
6-6已知单片机系统时钟频率为6MHz若要求定时值分别为0.1ms、1ms和10ms定时器T0工作在方式0、方式1和方式2时,定时器对应的初值各为多少?
已知fosc=6MHz,则机器周期为2卩so
方式0的初值分别为:
8142(仆CEH,即TH0=0FEHTL0=0EH7692(1E0CH),即
TH0=0F0HTL0=0CH3192(0C78H),即卩TH0=63HTL0=18H
方式1的初值分别为:
65486(FFCEH);
65036(FE0CH);
60536(EC78H)o
方式2定时0.1ms的初值为206(CEH,不能直接定时1ms和10mso
第六章作业(P210)
8-2什么是半双工、全双工方式?
MCS-51单片机属于哪种传送方式?
1)半双工方式——通信双方只有一条双向传输线,允许数据双向传送,但每个时刻
上只能有一方发送,另一方接收,这是一种能够切换传送方向的单工方式;
2)全双工方式——通信双方有两条传输线,允许数据同时双向传送,其通信设备应具有完全独立的收发功能。
单片机属于全双工传送方式。
8-6设串行口通信波特率为2400bps,异步帧信号由8位数据,无校验位和一个停止位组成,请问传输1024个字节数据,需要多少时间?
每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则每秒钟可以传送240个字节数据,传输1024个字节数据共需要4.2667秒
8-7请用中断法编出串行口方式1下的发送程序,设单片机主频为1200bps,发送数据缓冲区在外部RAM始址为Tblock,数据块长度为放在发送数据第8位(数据块长度不发送)。
串行口工作在方式1,定时器T1工作在方式2,作为波特率发生器定时常数:
X=256—(fosc*2SMOD/(384*波特率)
取SMOD=1贝UX=229.96=230=E6H(若取SMOD=0则X=F3H)采用中断方式编程,单片机发送程序如下:
6MHz波特率为
30,采用偶校验,
TblockDATA2000H
MOVTMOD,#20H
MOVTL1,#0E6H
MOVTH1,#0E6H
CLRET1
SETBTR1
MOVSCON,#40H
MOVPCON,#80H
MOVDPTR,#Tblock
MOVR7,#1EH
TRS:
MOVC,PSW.0
MOVACC.7,C
MOVSBUF,A
DECR7
SETBEA
WAIT:
SETBESSJMPWAIT中断服务程序:
ORG0023H
LJMPSBV
SBV:
CLRES
CLRTI
DJNZR7,NEXTSJMP$
;
定时器(波特率)初始化
关定时器T1中断;
启动T1
串行口初始化(方式1)
SMOD=1
启动发送
允许串行口中断
等待串行口中断
中断返回
第七章作业(补充题)
7-1如下图所示8051的P1.4〜P1.7接有4个发光二极管,P1.0〜P1.3接有4个开关,
最下方按键用于产生中断请求信号。
每中断一次,采集一次P1.0〜P1.3的开关状态反映
到P1.4〜P1.7的发光二极管上。
程序清单如下:
ORG0000H;
主程序
SJMPMAIN
ORG0003H
AJMPINT0;
转入服务程序
ORG0030H
设INT0为边沿触发
允许INT0中断;
开放总允许
中断服务程序:
;
从P1口输入开关状态;
交换高、低4位
低4位不变,高4位取反;
输出
SETBIT0
SETBEX0
INT0:
ORLP1,#0FH
MOVA,P1
SWAPA
XRLA,#0F0HMOVP1,A
7-2单片机P1端口并行连接两只共阴极数码管显示器,利用扫描方式循环显示两位数00、
01、02、……98、99。
1)写出共阴极接法下数码管显示0~9的字型码;
2)编写程序实现上述功能。
1)3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
2)程序清单如下:
AJMPTIMER
TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
MOVR0,#00H
MOVDPTR,#30H
MOVTMOD,#01H
MOVTH0,#0D8H
MOVTL0,#0F0H
SETBET0
START:
CJNER0,#100,NEXT
MOVR0,#00H
MOVA,R0
MOVB,10
MOVR1,A;
十位缓存
MOVR2,B;
个位缓存
MOVR4,#200
DELAY:
MOVR5,#200
DJNZR5,$
DJNZR4,DELAY
AJMPSTART
TIMER:
CLRTR0
MOVP1,A
SETBP2.1
MOVR6,#200
DJNZR6,$
CLRP2.1
MOVA,R2
SETBP2.0
MOVR6,#200
CLRP2.0
8031内部定时器
第八章作业(补充题)
8-1根据图9-3电路,请编写如下图所示梯形波,要求梯形波的下底由实现。
(设fosc=12MHz)
MOVTMO,D#10H;
写入工作方式控制字
MOVTH1,#3CH;
写入计数初值
MOVTL1,#B0H
MOVR0,#0FEH
CLRA
DOW:
NMOVX@R,0A;
线性下降段
INCA
JNZDOWN
WAITJBCTF1,NEXT
SJMPWAIT
NEXTCLRTR1
MOVTH1,#3CH
MOVTL1,#B0H
MOVA,#0FEH
UP:
MOVX@R0A
DECA
JNZUP
SJMPDOWN
启动T1工作
等待50ms时间到
关闭T1
重装计数初值
线性上升段
8-2用查询和中断方式实现AD转换编程,要求对通道5连续采集3次取中值作为本次采样值,并存于内部RAM30H单元。
中断方法:
主程序
MOVR0,
#0F0H
MOVR1
#30H
MOVR2
#05H
IN5通道号
MOVR3
#03H
循环次数
SETBEX1
开外中断0
SETBIT1
中断请求信号为下降沿触发
MOVA,
R2
选通道IN5
MOVX@R0
A
启动A/D转换
SJMPLOOP
等待中断
中断服务程序
ADINT0:
MOVXA,@R0
DJNZR3,ROT
ACALLADSHUJU;
CLREX0
JMPEXIT
MOVA,R2
MOVX@DPTR,A
EXIT:
RETI;
数据处理子程序ADSHUJ:
UMOVA,30H
CJNEA,31H,NEXT1
JCNEXT2
XCHA,31H
NEXT2:
CJNEA,32H,NEXT3NEXT3:
JCNEXT4
XCHA,32H
读取A/D转换数据;
存储数据
数据指针加1
调用数据处理子程序
启动A/D转换
交换
NEXT4:
MOV30H,A;
(30H)=Min
MOVA,31H
CJNEA,32H,NEXT5
NEXT5:
JCNEXT6
NEXT6:
MOV31H,A
MOV30H,31H
RET
END查询方法:
;
主程序
(31H)=Mid,(32H)=Max;
取中间数送(30H)
IN5通道号
选通道IN5
启动A/D转换;
等待转换开始;
查询转换是否结束;
读取A/D转换数据
存储数据;
SETBP3.3
MOVR0,#0F0H
MOVR1,#30H
MOVR2,#05H
MOVR3,#03H
MOVA,R2
MOVX@R0,AWAIT0:
JNBP3.3,WAIT0WAIT:
JBP3.3,WAIT
ADINT0:
MOVXA,@R0
ACALLADSHUJU
JMPWAIT;
MOV30H,A
CJNEA,32H,NEXT5
EXIT:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 及其 接口 技术 课后 作业 答案