《单片机原理及应用》黄友锐主编课后习题答案-zyf(共32页).doc
《《单片机原理及应用》黄友锐主编课后习题答案-zyf(共32页).doc》由会员分享,可在线阅读,更多相关《《单片机原理及应用》黄友锐主编课后习题答案-zyf(共32页).doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第1章1-1 什么是单片机?它与一般微型计算机在结构上何区别?答:单片微型计算机简称为单片机(Single Chip Computer),又称为微控制器(MCU即Micro-Controller Unit)。它是在一块芯片上集成了中央处理器(CPU)、存储器(RAM、ROM)、定时器/计数器、中断控制、各种输入/输出(I/O)接口(如并行I/O口、串行I/O口和A/D转换器)等为一体的器件。微型计算机的基本结构由CPU(运算器、控制器)、存储器、输入设备和输出设备五大部分组成,各部分通过外部总线连接而成为一体。单片机的结构是在一块芯片上集成了中央处理器(CPU)、存储
2、器、定时器/计数器、中断控制、各种输入/输出接口(如并行I/O口、串行I/O口和A/D转换器)等,它们通过单片机内部部总线连接而成为一体。1-2 MCS-51系列单片机内部资源配置如何?试举例说明8051与51兼容的单片机的异同。答:MCS-51系列单片机内部资源配置AT89S5312KB Flash ROM256B3163219/2SPI,WDT,2个数据指针W77E5832KB Flash ROM256B+1024B31636212/2扩展了4位I/O口,双数据指针,WDT。资源。第2章2-1 MCS-51系列单片机内部有哪些主要的逻辑部件?答: 一个8位CPU;一个片内振荡器及时钟电路;
3、4K字节ROM程序存储器;128字节RAM数据存储器;两个16位定时器/计数器;可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;32条可编程的I/O线(四个8位并行I/O端口);一个可编程全双工串行口;具有五个中断源、两个优先级嵌套中断结构2-2 MCS-51设有4个8位端口(32条I/O线),实际应用中8位数据信息由哪一个端口传送?16位地址线怎样形成?P3口有何功能?答:实际应用中8位数据信息由P0口传送。16位地址线由P0口输出低8位地址A7A0,P2口输出高8位地址A15A8。P3口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同P1口;当作第二功能使
4、用时,P3.0RXD串行输入(数据接收)口,P3.1TXD串行输出(数据发送)口,P3.2外部中断0输入线,P3.3外部中断1输入线,P3.4T0定时器0外部输入,P3.5T1定时器1外部输入,P3.6外部数据存储器写选通信号输出,P3.7外部数据存储器读选通信号输入。2-3 MCS-51的存储器结构与一般的微型计算机有何不同?程序存储器和数据存储器各有何作用?答:MCS-51存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统、控制信号和功能。 程序存储器用来存放程序和始终要保留的常数,如经汇编后所编程序的机器码。数据存储器通常用来存放程序运行中所需
5、要的常数或变量,例如模/数转换时实时采集的数据等。2-4 MCS-51内部RAM区功能结构如何分配?4组工作寄存器使用时如何选用?位寻址区域的字节地址范围是多少?答:MCS-51系列单片机内部数据存储器:00H 7FH单元组成的低128字节地址空间的RAM区,又分为为工作寄存器区(00H1FH)、位寻址区(20H2FH)和用户RAM区(30H7FH)。 80H FFH(128 255)单元组成的高128字节地址空间的特殊功能寄存器(又称SFR)区。对于8032、8052、8752的单片机还有80HFFH单元组成的高128字节地址空间的RAM区。 4组工作寄存区是由程序状态字PSW(特殊功能寄存
6、器,字节地址为0D0H)中的D4、D3位(RS1和RS0)来决定的。位寻址区域的字节地址范围是20H2FH(对应的位地址范围是00H7FH)。2-5 特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么?答:P0字节地址80H,TCON字节地址88H,P1字节地址90H,SCON字节地址98H,P2字节地址A0H,IE字节地址A8H,P3字节地址B0H,IP字节地址B8H,PSW字节地址D0H,ACC字节地址E0H,B字节地址F0H。2-6 简述程序状态字PSW中各位的含义。答:CY(PSW7)进位标志,AC(PSW6)辅助进位标志,F0(PSW5)用户标志位,RS1、RS0(PSW4、
7、PSW3)寄存器区选择控制位,OV(PSW2)溢出标志,P(PSW0)奇偶标志,每个指令周期都由硬件来置位或清“0”,以表示累加器A 中1的位数的奇偶数.2-7 一个时钟频率为6MHz的单片机应用系统,它的振荡信号周期、时钟周期、机器周期分别是多少?答:振荡信号周期=16us、时钟周期=13us、机器周期=2us。2-8 堆栈有何功能?堆栈指针的作用是什么?二者的关系?为什么在程序设计时,要对SP重新赋值?答:堆栈的主要功能:保护断点和程序现场,保存用户数据。堆栈指针的作用是:堆栈指针SP是一个8位特殊功能寄存器,指示出堆栈顶部在内部RAM中的位置。两者的关系:堆栈指针SP给定当前的栈顶,SP
8、的初始值越小,堆栈深度就越深。系统复位后,SP初始化为07H,使得堆栈事实上由08H 单元开始。考虑到08H1FH单元分属于工作寄存器区13,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值如60H,SP的初始值越小,堆栈深度就越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。第3章3-4:(1)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #21HADD A, #45HADD A, #78HSJMP $END(2)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #78HADD A, #4
9、5HCLR C;SUBB A, #21HSUBB A, #09HSJMP $END(3)ORG 0000HAJMP STARTORG 0100HSTART:MOV A, #34HADD A, #0ABHMOV R0, AMOV A, 12ADDC A, #21HMOV R1, ASJMP $END(3)ORG 0000HAJMP STARTORG 0100HSTART:CLR C;MOV A, #0BCHSUBB A, #0CDHMOV R0, AMOV A, 1#2AHSUBB A, #0FHMOV R1, ASJMP $END3-5:请编程实现:将片内20H存储单元的8位二进制数转换成BC
10、D码,并存放在片外以2000H起始的单元中,2000H单元存放转换后的BCD码的百位,2001H单元存放转换后的BCD码的十位/个位。ORG 0000HAJMP STARTORG 0050HSTART:MOV A,20H ;A被除数MOV B, #100 ; B除数100DIV AB ;AB,A商(百位数BCD码),B余数MOVX 2000H,A ;(2000H)将百位数BCD码MOV A,B ;A余数作被除数MOV B,#10 ;B除数10DIV AB;AB,A商(十位数BCD码),B余数(个位BCD码)SWAP A;十位BCD码调整到A中高4位ADD A,B ;A中压缩成2位BCD码MOV
11、X 2001H,A ; (2001H)十位、个位BCD码SJMP $END3-6: 将片内RAM 20H,21H,22H,23H(千/百/十/个位)中的十进制的ascii码转换成bcd码,并压缩放于片内30H,31H两个单元,其中31H中放bcd码的十位/个位,30H中放bcd码的千位/百位。MOV A, #00H ;这一句不是必须MOV R0, #20HMOV R1, #21HXCHD A, R0 ;A(20H)SWAP A ;A高4位(20H)的BCD码数字XCHD A, R1 ;A低4位(21H)的BCD码数字MOV 30H,AMOV A, #00H ;这一句不是必须MOV R0, #2
12、2H MOV R1, #23HXCHD A, R0 ;A(22H)SWAP A ;A高4位(22H)的BCD码数字XCHD A, R1 ;A低4位(21H)的BCD码数字MOV 31H,A3-7:片内RAM的30H32H单元中连续存放了6个压缩BCD码,编制程序将它们转换为ASCII码,存入片外3000H开始的连续存储区中MOV R0,#30H MOV DPTR,3000HLOOP: MOV A,R0 SWAP A ANL A,#0FH ADD A,#30H ;30H= 0 MOVX DPTR,A INC DPTRMOV A,R0 ANL A,#0FH ADD A,#30H MOVX DPTR
13、,A INC DPTRINC R0 CJNE R0,#33H, LOOP3-9: 从外部RAM 2000H 单元开始存放着100个无符号数,编写程序统计出:(1)最大数;(2)最小数;(6)大于50,小于50,等于50的个数。(1) MOV DPTR, #2000H MOV 30H, #0 ;先用0当做最大数 (求最小数时,用255) MOV R2, #100LOOP: MOVX A, DPTR CJNE A, 20H, TTT ;(A)-(20H)TTT: JNC NEXT ;不够减转移 (求最小数时,用JNC NEXT) MOV 30H, A ;够减,这个数是大数,给(20H)NEXT:
14、INC DPTR DJNZ R2, LOOPSJMP $END(6)ORG 0600H MOV DPTR, #2000H MOV R2, #100 ;总数 MOV R3, #0 ; 小于50的数的个数 MOV R4, #0 ; 等于50的数的个数 MOV R5, #0 ; 大于50的数的个数LOOP: MOVX A, DPTR CLR C SUBB A, #50 JZ EQU_50 JNC BIG INC R3 ;小于50的个数 JMP NEXTEQU_50: INC R4 JMP NEXTBIG: INC R5NEXT: INC DPTR DJNZ R2, LOOP MOV 30H,R3 ;
15、 小于50的数的个数 MOV 31H,R4 ; 等于50的数的个数 MOV 32H,R5 ; 大于50的数的个数SJMP $3-10 MCS-51片外RAM区1000H1007H单元中存有8个无符号数,编程求其平均值,将结果存于1008H中。%先加,加的结果可能超出8位,所以存储结果于(30H)和(40H)单元中。MOV DPTR, #1000HMOV R7, #08HMOV 30H, #00HMOV 40H, #00HSS1:MOVX A, DPTRADD A, 30HMOV 30H, ACLR AADDC A, 40HMOV 40H, AINC DPTR DJNZ R7, SS1MOV R
16、7, #03H ;移位3次,等于除以8SS2:CLR C MOV A, 40H RRC AMOV 40H, AMOV A, 30HRRC AMOV 30H, A DJNZ R7, SS2MOVX DPTR, A3-11下面是以数学公式,X值存于片内20H,Y值存于21H单元中。Y=X2(X0) 0(X=0) 2X(X0)MAIN:MOV A,20H JZ SUL JB ACC.7,NEGMOV B,A MUL AB SJMP SULNEG:CLR C RLC A SUL:MOV 21H ,A 3-12试编写程序,将外部 RAM 2000H20FFH数据块,传送到3000H30FFH区域。MOV
17、 R6,#0FFHMOV R2,#00HMOV R3,#20H;暂存2000H地址MOV R4,#00HMOV R5,#30H;暂存3000H地址NEXT:MOV DPL,R2MOV DPH,R3MOVX A,DPTRMOV DPL,R4MOV DPH,R5MOVX DPTR,AINC R2INC R4DJNZ R6,NEXT3-13:振荡频率:6MHz(机器周期:2us),(1)1ms延时ORG 2000H MOVR7,125LOP1:NOP NOP DJNZR7,LOP1 RET(2) 100ms延时ORG 2000H MOVR6,100LOP2:MOVR7,125LOP1:NOPNOPD
18、JNZR7,LOP1DJNZR6,LOP2RET(3)1s延时ORG 2000H MOV R5,10LOP3: MOVR6,100LOP2:MOVR7,125LOP1:NOP NOP DJNZR7,LOP1 DJNZR6,LOP2 DJNZR5,LOP3RET3-14:片内RAM30H有一数(015),查表求平方值,存入31H中。ORG 1000HMAIN: MOV DPTR,#TABMOV 30H, #13 ;NUMB=015 MOV A, 30H MOVC A,A+DPTR MOV 31H,A SJMP $TAB: DB 0,1,4,9,16,25,36,49,64,81,100,121,
19、144,169,196,255第4章4-4 试编程实现,将设为高优先级中断,且为电平触发方式;T0溢出中断设为低优先级中断,串行口中断为高优先级中断,其余中断源设为禁止状态。SETB PX0CLR IT0 CLR PT0 SETB PS MOV IE,#93H4-9 试用中断技术设计一个秒闪电路,其功能是发光二极管LED每秒闪亮400ms。主机频率为6MHz。(仿真见exercise4_9.ms11)题意可理解为LED每次亮400ms,灭600ms。设使用定时器T1,定时时间为100ms,用P1.0作输出,设P1.0为高时灯灭。 ORG 0000H AJMP START ORG 000BH A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 单片机 原理 应用 黄友锐 主编 课后 习题 答案 zyf 32
限制150内