ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:40.78KB ,
资源ID:10955167      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10955167.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理及其接口技术王敏课后作业答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理及其接口技术王敏课后作业答案.docx

1、单片机原理及其接口技术王敏课后作业答案第二章作业(P40)2-4 MCS-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-1

2、0 开机复位以后,CPU使用哪一组工作寄存器?它们的地址是什么?如何改变当前工作寄存器?答:使用第0组工作寄存器,00H-07H,通过修改PSW中的RS1和RS0两位来改变当前的工作寄存器。第三章作业(P75)3-7 指出指令中的50H或66H个代表什么?解: MOV A, #50H 立即数MOV A, 50H 直接地址MOV 50H, #20H 直接地址MOV C, 50H 位地址MOV 50H, 20H 直接地址 MOV R0, #66H 立即数MOV R6, #66H 立即数MOV 66H, #45H 直接地址MOV 66H, C 位地址MOV 66H, R1 直接地址3-9 写出能完成

3、下列数据传送的指令:解: R1中内容传送到R0; MOV A, R1 MOV R0,A 内部RAM 20H单元中的内容送到30H单元; MOV 30H, 20H 外部RAM 20H单元中的内容送到内部RAM 20H单元; MOV R0, #20H MOVX A, R0 MOV 20H, A 外部RAM 2000H单元中的内容送到内部RAM 20H单元; MOV DPTR, #2000H MOVX A, DPTR MOV 20H, A 外部ROM 2000H单元中的内容送到内部RAM 20H单元; MOV DPTR, #2000H MOV A, #00H MOVC A, A+DPTR MOV 2

4、0H, A 外部2000H单元中的内容送到外部RAM 3000H单元; MOV DPTR, #2000H MOVX A, DPTR MOV DPTR, #3000H MOVX DPTR, A3-11 已知:(20H)=X;(21H)=Y;(22H)=Z,请用图示说明下列程序执行后堆栈的内容是多少? MOV SP, #70H MOV SP, #60H PUSH 20H PUSH 22HPUSH 21H PUSH 21HPUSH 22H PUSH 20H解:(73H)=Z; (72H)=Y; (71H)=X;(63H)=X; (62H)=Y; (61H)=Z;3-20 试编出能完成如下操作的程序:

5、解: 使20H单元中数的高两位变“0”,其余位不变; ANL 20H, #3FH 使20H单元中数的高两位变“1”,其余位不变; 0RL 20H, #0C0H 使20H单元中数的高两位变反,其余位不变; XRL 20H, #0C0H 使20H单元中数的高四位变“1”,低四位变“0”; MOV 20H, #0F0H 使20H单元中数的所有位变反。 XRL 20H, #0FFH3-27 已知:外部RAM 2000H为始址的存储区有20个带符号补码数,请编一程序把正数和正零取出来放到内部RAM 20H为始址的存储区(负数和负零不作处理)。解: ORG 0000HAJMP MAINORG 0100HM

6、AIN: MOV R0, #14H MOV R1, #20H MOV DPTR, #2000HROT: MOVX A, DPTR JB ACC.7, NEXT MOV R1, A INC R1NEXT: INC DPTR DJNZ R0, ROT SJMP $ END第四章作业(P104)4-7 已知RAM的BLOCK单元,请编写其中可以统计正负数个数分别存入NUM和NUM+1单元的程序。解: ORG 0100HLEN DATA 20HNUM DATA 21HBLOCK DATA 23HMAIN: MOV NUM, #00HMOV NUM+1,#00HMOV R0, #BLOCKLOOP: M

7、OV A, R0 JNB ACC.7,POSI INC NUM+1SJMP NEXTPOSI: INC NUMNEXT: INC R0 DJNZ LEN, LOOP SJMP $ END4-9 外部RAM从2000H-2100H单元有一数据块,请编出将它们传送到外部RAM 3000H-3100H区域的程序。解:采用当型循环,判断程序结束条件ORG 1000HMOV DPTR,#2000HNEXT: MOVX A, DPTRORL DPH , #10H ; 将DPH中的20H变成30HMOVX DPTR, A ANL DPH , #0EFH ; 将DPH中的30H变成20HINC DPTRMOV

8、 A, DPHCJNE A, #21H, NEXTMOVX A, DPTR ;将2100H单元的数据送AMOV DPH, #31HMOVX DPTR, A ;将A的数据送3100H单元SJMP $ END4-11 将内部RAM的AAA单元中8位无符号数转换成BCD码表示的十进制数。(要求用连续除10的方法实现)解:ORG 0100HAAA DATA 20HBAI DATA 21HSHI DATA 22HGE DATA 23HMOV A, AAAMOV B,#0AHDIV ABMOV GE, BMOV B,#0AHDIV ABMOV SHI, BMOV BAI, A SJMP $ END4-15

9、 请编写能从内部RAM的BLOCK为起始地址的20个无符号数找出最小值,并把它送到MIN单元的程序。解: ORG 0100H MIN DATA 20HBLOCK DATA 21HMAIN:MOV R0,#BLOCK MOV R2,#13H MOV A,R0 LOOP:INC R0 MOV B,R0 CJNE A,B,NEXT NEXT:JC NEXT1 MOV A,R0 NEXT1:DJNZ R2,LOOP MOV MIN,A SJMP $ END第五章作业(P155)6-4 编程,利用定时器T0(工作在方式1)产生一个50Hz的方波,由P1.0输出,晶振频率为12MHz。解:按照题意,定时器

10、T0需要工作在方式1定时10ms,则TMOD控制字为01H;已知fosc=12MHz,则机器周期为1s。定时初值216 10ms/1s= 55536=D8F0H,即TH0=0D8H,TL0=0F0H。则相应的程序如下:ORG 0000HAJMP STARTORG 2000HSTART:MOV TMOD,#01H ;写入工作方式字 MOV TH0, #0D8H ;写入计数初值 MOV TL0, #0F0H SETB TR0 ;启动T0LOOP:JBC TF0, PE ;TF0=1溢出转移PE,并清除TF0 AJMP LOOP ;TF0为0转LOOP等待PE:MOV TH0,#0D8H ;重装初值

11、 MOV TL0,#0F0H CPL P1.0 ;取反 AJMP LOOP ;转LOOP等定时时间到 END6-5 在8051单片机中,已知晶振频率为12MHz,试编程使P1.0和P1.2分别输出周期为2ms和500ms的方波。设晶振频率为6MHz,试用T0作为外部计数器,编程实现每当计到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,这样反复循环下去。解:1)按照题意,定时器T0需要工作在方式1定时1ms,则TMOD控制字为01H;已知fosc=12MHz,则机器周期为1s。定时初值216 1ms/1s= 64536=FC18H,即TH0=0FCH,TL0=18H。则相应

12、的程序如下:主程序: ORG 1000HSTART:MOV TMOD,#01H MOV TH0, #0FCH MOV TL0, #18H MOV IE, #82H ;开T0中断 SETB TR0 ;启动T0 MOV R0,#0FAH ;软件计数器赋初值 LOOP: SJMP $ ;等待中断 中断程序: ORG 000BH AJMP BRT0 ORG 0080HBRT0:CPL P1.0DJNZ R0,NEXT ;250ms未到,转NEXT CPL P1.2 ;250ms到,改变P1.2电平 MOV R0,#0FAH NEXT:MOV TH0, #0FCH MOV TL0, #18H RETI

13、END2)按照题意,定时器T0需要工作在方式1计数方式,定时器T1需要工作在方式1定时方式,则TMOD控制字为15H;T0计数初值为216 1000= 64536=FC18H,即TH0=0FCH,TL0=18H;已知fosc=6MHz,则机器周期为2s。T1定时初值216 2ms/2s= 64536=FC18H,即TH1=0FCH,TL1=18H。则相应的程序如下:ORG 2000HSTART:MOV TMOD,#15H ;写入工作方式字 MOV TH0, #0FCH ;写入计数初值 MOV TL0, #18H MOV TH1, #0FCH MOV TL1, #18H SETB TR0 ;启动

14、T0LOOP:JBC TF0, PE ;TF0=1溢出转移PE,并清除TF0 AJMP LOOP ;TF0为0转LOOP等待PE:SETB TR1 ;启动T1定时,关T0计数 CLR TR0LOOP1:JBC TF1, PE1 ;TF1=1溢出转移PE1,并清除TF1 AJMP LOOP1 ;TF1为0转LOOP1等待PE1:MOV TH0,#0FCH ;重装初值 MOV TL0,#18H MOV TH1, #0FCH MOV TL1, #18H SETB TR0 ;启动T0计数,关T1定时 CLR TR1 AJMP LOOP END6-6 已知单片机系统时钟频率为6MHz,若要求定时值分别为

15、0.1ms、1ms和10ms,定时器T0工作在方式0、方式1和方式2时,定时器对应的初值各为多少?解:已知fosc=6MHz,则机器周期为2s。方式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(EC78H)。方式2定时0.1ms的初值为206(CEH),不能直接定时1ms和10ms。第六章作业(P210)8-2 什么是半双工、全双工方式?MCS-51单片机属于哪种传

16、送方式?解:1)半双工方式通信双方只有一条双向传输线,允许数据双向传送,但每个时刻上只能有一方发送,另一方接收,这是一种能够切换传送方向的单工方式;2)全双工方式通信双方有两条传输线,允许数据同时双向传送,其通信设备应具有完全独立的收发功能。 单片机属于全双工传送方式。8-6 设串行口通信波特率为2400bps,异步帧信号由8位数据,无校验位和一个停止位组成,请问传输1024个字节数据,需要多少时间?解:每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则每秒钟可以传送240个字节数据,传输1024个字节数据共需要4.2667秒8-7 请用中断法编出串行口方式1下的发送程序,设

17、单片机主频为6MHz,波特率为1200bps,发送数据缓冲区在外部RAM,始址为Tblock,数据块长度为30,采用偶校验,放在发送数据第8位(数据块长度不发送)。解: 串行口工作在方式1,定时器T1工作在方式2,作为波特率发生器。 定时常数:X=256 (fosc*2SMOD)/( 384*波特率) 取SMOD=1,则X=229.96=230=E6H。 (若取SMOD=0,则X=F3H)采用中断方式编程,单片机发送程序如下:主程序: ORG 2000H Tblock DATA 2000HMOV TMOD, #20H ;定时器(波特率)初始化 MOV TL1, #0E6H MOV TH1, #

18、0E6H CLR ET1 ;关定时器T1中断 SETB TR1 ;启动T1 MOV SCON, #40H ;串行口初始化(方式1) MOV PCON, #80H ;SMOD=1 MOV DPTR, #TblockMOV R7, #1EH TRS: MOVX A, DPTR MOV C, PSW.0 MOV ACC.7,CMOV SBUF, A ;启动发送 DEC R7 INC DPTRSETB EA ;允许串行口中断WAIT: SETB ES SJMP WAIT ;等待串行口中断 中断服务程序: ORG 0023H LJMP SBV ORG 0100H SBV: CLR ES CLR TI M

19、OVX A, DPTR MOV C, PSW.0 MOV ACC.7,C MOV SBUF, A ;启动发送DJNZ R7,NEXTSJMP $ NEXT: INC DPTRRETI ;中断返回 END第七章作业(补充题)7-1 如下图所示8051的P1.4P1.7接有4个发光二极管,P1.0P1.3接有4个开关,最下方按键用于产生中断请求信号。每中断一次,采集一次P1.0P1.3的开关状态反映到P1.4P1.7的发光二极管上。解:程序清单如下: ORG 0000H ;主程序 SJMP MAIN ORG 0003H AJMP INT0 ;转入服务程序 ORG 0030H MAIN: SETB

20、IT0 ;设INT0为边沿触发 SETB EX0 ;允许INT0中断 SETB EA ;开放总允许 SJMP $INT0: ORL P1, #0FH ;中断服务程序: MOV A, P1 ;从P1口输入开关状态 SWAP A ;交换高、低4位 XRL A, #0F0H ;低4位不变, 高4位取反 MOV P1,A ;输出 RETI END7-2单片机P1端口并行连接两只共阴极数码管显示器,利用扫描方式循环显示两位数00、01、02、98、99。1) 写出共阴极接法下数码管显示09的字型码;2) 编写程序实现上述功能。解:1)3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH,

21、07H, 7FH, 6FH2) 程序清单如下: ORG 0000HAJMP MAINORG 000BHAJMP TIMERORG 0030HTAB DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FHMAIN: MOV R0,#00HMOV DPTR, #30HMOV TMOD, #01HMOV TH0, #0D8HMOV TL0, #0F0HSETB ET0SETB EASETB TR0START: INC R0CJNE R0,# 100, NEXTMOV R0,#00HNEXT: MOV A, R0MOV B,10DIV ABMOV R1,

22、 A ;十位缓存MOV R2, B ;个位缓存MOV R4, #200DELAY:MOV R5, #200DJNZ R5, $DJNZ R4, DELAYAJMP STARTTIMER: CLR TR0 MOV A, R1 MOVC A, A+DPTR MOV P1, A SETB P2.1 MOV R6, #200 DJNZ R6, $ CLR P2.1 MOV A, R2 MOVC A, A+DPTR MOV P1, A SETB P2.0 MOV R6,#200 DJNZ R6, $ CLR P2.0 MOV TH0, #0D8H MOV TL0, #0F0H SETB TR0 RETI

23、END第八章作业(补充题)8-1 根据图9-3电路,请编写如下图所示梯形波,要求梯形波的下底由8031内部定时器实现。(设fosc=12MHz)解:ORG 0000HAJMP STARTORG 0100HSTART:MOV TMOD,#10H ;写入工作方式控制字 MOV TH1,#3CH ;写入计数初值 MOV TL1,#B0H MOV R0,#0FEH CLR ADOWN: MOVX R0,A ;线性下降段 INC A JNZ DOWNSETB TR1 ;启动T1工作WAIT:JBC TF1,NEXT ;等待50ms时间到SJMP WAIT NEXT:CLR TR1 ;关闭T1MOV TH

24、1,#3CH ;重装计数初值 MOV TL1,#B0H MOV A,#0FEH UP: MOVX R0,A ;线性上升段 DEC A JNZ UP SJMP DOWN END8-2用查询和中断方式实现AD转换编程,要求对通道5连续采集3次取中值作为本次采样值,并存于内部RAM 30H单元。中断方法:;主程序 ORG 0100HSTART: MOV R0,#0F0H MOV R1,#30H MOV R2,#05H ;IN5通道号 MOV R3,#03H ;循环次数 SETB EA SETB EX1 ;开外中断0 SETB IT1 ;中断请求信号为下降沿触发 MOV A,R2 ;选通道IN5 MO

25、VX R0,A ;启动A/D转换 LOOP: SJMP LOOP ;等待中断;中断服务程序 ORG 1000HADINT0: MOVX A,R0 ;读取A/D转换数据 MOV R1,A ;存储数据 INC R1 ;数据指针加1 DJNZ R3,ROT ACALL ADSHUJU ;调用数据处理子程序CLR EX0 JMP EXITROT: MOV A,R2 MOVX DPTR,A ;启动A/D转换EXIT: RETI ;数据处理子程序ADSHUJU:MOV A,30H CJNE A,31H,NEXT1NEXT1:JC NEXT2 XCH A,31H ;交换NEXT2:CJNE A,32H,NE

26、XT3NEXT3:JC NEXT4 XCH A,32H ;交换NEXT4:MOV 30H,A ; (30H)=Min MOV A,31H CJNE A,32H,NEXT5NEXT5:JC NEXT6 XCH A,32H ;交换NEXT6:MOV 31H,A ;(31H)=Mid,(32H)=Max MOV 30H,31H ;取中间数送(30H) RET END查询方法:;主程序ORG 0100H SETB P3.3START: MOV R0,#0F0H MOV R1,#30H MOV R2,#05H ;IN5通道号 MOV R3,#03H ;循环次数 MOV A,R2 ;选通道IN5 MOVX

27、 R0,A ;启动A/D转换WAIT0:JNB P3.3,WAIT0 ;等待转换开始WAIT:JB P3.3,WAIT ;查询转换是否结束ADINT0:MOVX A,R0 ;读取A/D转换数据 MOV R1,A ;存储数据 INC R1 ;数据指针加1 DJNZ R3,ROT ACALL ADSHUJU ;调用数据处理子程序 JMP EXITROT: MOV A,R2 MOVX DPTR,A ;启动A/D转换 JMP WAIT;数据处理子程序ADSHUJU:MOV A,30H CJNE A,31H,NEXT1NEXT1:JC NEXT2 XCH A,31H ;交换NEXT2:CJNE A,32H,NEXT3NEXT3:JC NEXT4 XCH A,32H ;交换NEXT4:MOV 30H,A ;(30H)=Min MOV A,31H CJNE A,32H,NEXT5NEXT5:JC NEXT6 XCH A,32H ;交换NEXT6:MOV 31H,A ;(31H)=Mid,(32H)=Max MOV 30H,31H ;取中间数送(30H) RETEXIT:END

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1