单片机原理及其接口技术王敏课后作业答案.docx
- 文档编号:2385660
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:18
- 大小:67.04KB
单片机原理及其接口技术王敏课后作业答案.docx
《单片机原理及其接口技术王敏课后作业答案.docx》由会员分享,可在线阅读,更多相关《单片机原理及其接口技术王敏课后作业答案.docx(18页珍藏版)》请在冰豆网上搜索。
单片机原理及其接口技术王敏课后作业答案
第二章作业(P40)
2-4MCS-51单片机中执行程序的地址放在哪?
由几个位组成?
最大寻址范围是多少?
答:
放在程序计数器PC中,16位,64KB。
2-5在程序存储器中,0000H、0003H、000BH、0013H、001BH、0023H这6个单元有什么特定的含义?
答:
0000H复位后,PC=0000H,开始执行程序的地址
0003H外部中断0(INT0)入口地址
000BH定时器0中断(TF0)入口地址
0013H外部中断1(INT1)入口地址
001BH定时器1中断(TF1)入口地址
0023H串行口中断TI/RI入口地址
2-10开机复位以后,CPU使用哪一组工作寄存器?
它们的地址是什么?
如何改变当前工作寄存器?
答:
使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。
第三章作业(P75)
3-7指出指令中的50H或66H个代表什么?
解:
①MOVA,#50H立即数
MOVA,50H直接地址
MOV50H,#20H直接地址
MOVC,50H位地址
MOV50H,20H直接地址
②MOV@R0,#66H立即数
MOVR6,#66H立即数
MOV66H,#45H直接地址
MOV66H,C位地址
MOV66H,R1直接地址
3-9写出能完成下列数据传送的指令:
解:
①R1中内容传送到R0;
MOVA,R1
MOVR0,A
②内部RAM20H单元中的内容送到30H单元;
MOV30H,20H
③外部RAM20H单元中的内容送到内部RAM20H单元;
MOVR0,#20H
MOVXA,@R0
MOV20H,A
④外部RAM2000H单元中的内容送到内部RAM20H单元;
MOVDPTR,#2000H
MOVXA,@DPTR
MOV20H,A
⑤外部ROM2000H单元中的内容送到内部RAM20H单元;
MOVDPTR,#2000H
MOVA,#00H
MOVCA,@A+DPTR
MOV20H,A
⑥外部2000H单元中的内容送到外部RAM3000H单元;
MOVDPTR,#2000H
MOVXA,@DPTR
MOVDPTR,#3000H
MOVX@DPTR,A
3-11已知:
(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少?
①MOVSP,#70H②MOVSP,#60H
PUSH20HPUSH22H
PUSH21HPUSH21H
PUSH22HPUSH20H
解:
(73H)=Z;
(72H)=Y;
(71H)=X;
(63H)=X;
(62H)=Y;
(61H)=Z;
3-20试编出能完成如下操作的程序:
解:
①使20H单元中数的高两位变“0”,其余位不变;
ANL20H,#3FH
②使20H单元中数的高两位变“1”,其余位不变;
0RL20H,#0C0H
③使20H单元中数的高两位变反,其余位不变;
XRL20H,#0C0H
④使20H单元中数的高四位变“1”,低四位变“0”;
MOV20H,#0F0H
⑤使20H单元中数的所有位变反。
XRL20H,#0FFH
3-27已知:
外部RAM2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM20H为始址的存储区(负数和负零不作处理)。
解:
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVR0,#14H
MOVR1,#20H
MOVDPTR,#2000H
ROT:
MOVXA,@DPTR
JBACC.7,NEXT
MOV@R1,A
INCR1
NEXT:
INCDPTR
DJNZR0,ROT
SJMP$
END
第四章作业(P104)
4-7已知RAM的BLOCK单元,请编写其中可以统计正负数个数分别存入NUM和NUM+1单元的程序。
解:
ORG0100H
LENDATA20H
NUMDATA21H
BLOCKDATA23H
MAIN:
MOVNUM,#00H
MOVNUM+1,#00H
MOVR0,#BLOCK
LOOP:
MOVA,@R0
JNBACC.7,POSI
INCNUM+1
SJMPNEXT
POSI:
INCNUM
NEXT:
INCR0
DJNZLEN,LOOP
SJMP$
END
4-9外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM3000H-3100H区域的程序。
解:
采用当型循环,判断程序结束条件
ORG1000H
MOVDPTR,#2000H
NEXT:
MOVXA,@DPTR
ORLDPH,#10H;将DPH中的20H变成30H
MOVX@DPTR,A
ANLDPH,#0EFH;将DPH中的30H变成20H
INCDPTR
MOVA,DPH
CJNEA,#21H,NEXT
MOVXA,@DPTR;将2100H单元的数据送A
MOVDPH,#31H
MOVX@DPTR,A;将A的数据送3100H单元
SJMP$
END
4-11将内部RAM的AAA单元中8位无符号数转换成BCD码表示的十进制数。
(要求用连续除10的方法实现)
解:
ORG0100H
AAADATA20H
BAIDATA21H
SHIDATA22H
GEDATA23H
MOVA,AAA
MOVB,#0AH
DIVAB
MOVGE,B
MOVB,#0AH
DIVAB
MOVSHI,B
MOVBAI,A
SJMP$
END
4-15请编写能从内部RAM的BLOCK为起始地址的20个无符号数找出最小值,并把它送到MIN单元的程序。
解:
ORG0100H
MINDATA20H
BLOCKDATA21H
MAIN:
MOVR0,#BLOCK
MOVR2,#13H
MOVA,@R0
LOOP:
INCR0
MOVB,@R0
CJNEA,B,NEXT
NEXT
:
JCNEXT1
MOVA,@R0
NEXT1:
DJNZR2,LOOP
MOVMIN,A
SJMP$
END
第五章作业(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=0D8H,TL0=0F0H。
则相应的程序如下:
ORG0000H
AJMPSTART
ORG2000H
START:
MOVTMOD,#01H;写入工作方式字
MOVTH0,#0D8H;写入计数初值
MOVTL0,#0F0H
SETBTR0;启动T0
LOOP:
JBCTF0,PE;TF0=1溢出转移PE,并清除TF0
AJMPLOOP;TF0为0转LOOP等待
PE:
MOVTH0,#0D8H;重装初值
MOVTL0,#0F0H
CPLP1.0;取反
AJMPLOOP;转LOOP等定时时间到
END
6-5在8051单片机中,已知晶振频率为12MHz,试编程使P1.0和P1.2分别输出周期为2ms和500ms的方波。
设晶振频率为6MHz,试用T0作为外部计数器,编程实现每当计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环下去。
解:
1)按照题意,定时器T0需要工作在方式1定时1ms,则TMOD控制字为01H;已知fosc=12MHz,则机器周期为1µs。
定时初值=216–1ms/1µs=64536=FC18H,即TH0=0FCH,TL0=18H。
则相应的程序如下:
主程序:
ORG1000H
START:
MOVTMOD,#01H
MOVTH0,#0FCH
MOVTL0,#18H
MOVIE,#82H;开T0中断
SETBTR0;启动T0
MOVR0,#0FAH;软件计数器赋初值
LOOP:
SJMP$;等待中断
中断程序:
ORG000BH
AJMPBRT0
ORG0080H
BRT0:
CPLP1.0
DJNZR0,NEXT;250ms未到,转NEXT
CPLP1.2;250ms到,改变P1.2电平
MOVR0,#0FAH
NEXT:
MOVTH0,#0FCH
MOVTL0,#18H
RETI
END
2)按照题意,定时器T0需要工作在方式1计数方式,定时器T1需要工作在方式1定时方式,则TMOD控制字为15H;T0计数初值为216–1000=64536=FC18H,即TH0=0FCH,TL0=18H;已知fosc=6MHz,则机器周期为2µs。
T1定时初值=216–2ms/2µs=64536=FC18H,即TH1=0FCH,TL1=18H。
则相应的程序如下:
ORG2000H
START:
MOVTMOD,#15H;写入工作方式字
MOVTH0,#0FCH;写入计数初值
MOVTL0,#18H
MOVTH1,#0FCH
MOVTL1,#18H
SETBTR0;启动T0
LOOP:
JBCTF0,PE;TF0=1溢出转移PE,并清除TF0
AJMPLOOP;TF0为0转LOOP等待
PE:
SETBTR1;启动T1定时,关T0计数
CLRTR0
LOOP1:
JBCTF1,PE1;TF1=1溢出转移PE1,并清除TF1
AJMPLOOP1;TF1为0转LOOP1等待
PE1:
MOVTH0,#0FCH;重装初值
MOVTL0,#18H
MOVTH1,#0FCH
MOVTL1,#18H
SETBTR0;启动T0计数,关T1定时
CLRTR1
AJMPLOOP
END
6-6已知单片机系统时钟频率为6MHz,若要求定时值分别为0.1ms、1ms和10ms,定时器T0工作在方式0、方式1和方式2时,定时器对应的初值各为多少?
解:
已知fosc=6MHz,则机器周期为2µs。
方式0的初值分别为:
8142(1FCEH),即TH0=0FEH,TL0=0EH;7692(1E0CH),即TH0=0F0H,TL0=0CH;3192(0C78H),即TH0=63H,TL0=18H。
方式1的初值分别为:
65486(FFCEH);65036(FE0CH);60536
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 及其 接口 技术 课后 作业 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)