1、单片机原理及应用课后习题整理单片机原理及应用课后习题整理第一章5什么叫单片机?其主要特点有哪些?答:在一片集成电路芯片上集成微处理器、存储器、I/O 接口电路,从而构成了单芯片微型计算机,即单片机。单片机主要特点有:控制性能和可靠性高;体积小、价格低、易于产品化;具有良好的性能价格比。7当前单片机的主要产品有哪些?各有何特点?答:多年来的应用实践已经证明,80C51 的系统结构合理、技术成熟。因此,许多单片机芯片生产厂商倾力于提高80C51 单片机产品的综合功能,从而形成了80C51 的主流产品地位,近年来推出的与80C51 兼容的主要产品有: ATMEL 公司融入Flash 存储器技术推出的
2、AT89 系列单片机; Philips 公司推出的80C51、80C552 系列高性能单片机; 华邦公司推出的 W78C51、W77C51 系列高速低价单片机; ADI 公司推出的ADC8xx 系列高精度ADC 单片机; LG 公司推出的GMS90/97 系列低压高速单片机; Maxim 公司推出的DS89C420 高速(50MIPS)单片机; Cygnal 公司推出的C8051F 系列高速SOC 单片机等。8简述单片机的开发过程。答:系统需求分析,硬件方案设计,软件编程,仿真调试,实际运行。9单片机应用系统开发方法有哪些新方法?答:在系统编程(ISP)技术,在应用编程(IAP)技术。第二章2
3、 80C51 单片机的存储器的组织采用何种结构?存储器地址空间如何划分?各地址空间的地址范围和容量如何?在使用上有何特点?答:采用哈佛结构,在物理上设计成程序存储器和数据存储器两个独立的空间;80C51 基本型单片机片内程序存储器为4KB,地址范围是0000H-0FFFH,用于存放程序或常数;片内数据存储器为128 字节RAM,地址范围是00H-7FH,用于存放运算的中间结果、暂存数据和数据缓冲;另外在80H-FFH 还配有21 个SFR。380C51 单片机的P0P3 口在结构上有何不同?在使用上有何特点?答:作为通用I/O 口时,P0、P1、P2 和P3 都是准双向口。P0 可以作为地址/
4、数据总线,此时是一个真正的双向口;P2 口可以作为地址线的高8 位;P3 口是双功能口,每条口线还具有不同的第二功能。另外,P0 口的驱动能力为8 个TTL 负载,而其它口仅可驱动4 个TTL 负载。4如果80C51 单片机晶振频率分别为6 MHz、11.0592 MHz、12MHz 时,机器周期分别为多少?答:机器周期分别为2s,1.085s,1s。580C51 单片机复位后的状态如何?复位方法有几种?答:复位后,PC 内容为0000H,P0 口P3 口内容为FFH,SP 内容为07H,SBUF 内容不定,IP、IE 和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。复位方法一种
5、是上电复位,另一种是上电与按键均有效的复位。680C51 单片机的片内、片外存储器如何选择?答:80C51 的EA 引脚为访问片内、片外程序存储器的选择端。访问片内、片外数据存储器需要采用不同的指令加以区分。780C51 单片机的PSW 寄存器各位标志的意义如何?答:CY:进位、借位标志。有进位、借位时 CY=1,否则CY=0;AC:辅助进位、借位标志(高半字节与低半字节间的进位或借位);F0:用户标志位,由用户自己定义;RS1、RS0:当前工作寄存器组选择位;OV:溢出标志位。有溢出时OV=1,否则OV=0;P:奇偶标志位。存于ACC 中的运算结果有奇数个1 时P=1,否则P=0。8 80C
6、51 单片机的当前工作寄存器组如何选择?答:当前工作寄存器组的选择由特殊功能寄存器中的程序状态字寄存器PSW 的RS1、RS0 来决定。980C51 单片机的控制总线信号有哪些?各信号的作用如何?答:RST/VPD:复位信号输入引脚/备用电源输入引脚;ALE/PROG :地址锁存允许信号输出引脚/编程脉冲输入引脚;EA /VPP:内外存储器选择引脚/片内EPROM(或FlashROM)编程电压输入引脚;PSEN :外部程序存储器选通信号输出引脚。1080C51 单片机的程序存储器低端的几个特殊单元的用途如何?答:0000H:单片机复位入口地址;0003H:外部中断0 的中断服务程序入口地址;0
7、00BH:定时/计数器0 溢出中断服务程序入口地址;0013H:外部中断1 的中断服务程序入口地址;001BH:定时/计数器1 溢出中断1的服务程序入口地址;0023H:串行口的中断服务程序入口地址。第三章10完成某种操作可以采用几条指令构成的指令序列实现,试写出完成以下每种操作的指令序列。(1)将R0 的内容传送到R1;(2)内部RAM 单元60H 的内容传送到寄存器R2;(3)外部RAM 单元1000H 的内容传送到内部RAM 单元60H;(4)外部RAM 单元1000H 的内容传送到寄存器R2;(5)外部RAM 单元1000H 的内容传送到外部RAM 单元2000H。答:(1)MOV A
8、,R0MOV R1,A(2)MOV R2,60H(3)MOV DPTR,#1000HMOVX A,DPTRMOV 60H,A(4)MOV DPTR,#1000HMOVX A,DPTRMOV R2,A(5)MOV DPTR,#1000HMOVX A,DPTRMOV DPTR,#2000HMOVX DPTR, A11若(R1)=30H,(A)=40H,(30H)=60H,(40H)=08H。试分析执行下列程序段后上述各单元内容的变化。MOV A,R1MOV R1,40HMOV 40H,AMOV R1,#7FH答:(R1)=7FH(A)=60H(30H)=08H(40H)=60H14试用位操作指令实
9、现下列逻辑操作。要求不得改变未涉及的位的内容。(1)使ACC.0 置位;(2)清除累加器高4 位;(3)清除ACC.3,ACC.4,ACC.5,ACC.6。答:(1)SETB ACC.0(2)ANL A,#0FH(3)ANL A,#87H15试编写程序,将内部RAM 的20H、21H、22H 三个连续单元的内容依次存入2FH、2EH 和2DH 单元。答:MOV 2FH,20HMOV 2EH,21HMOV 2DH,22H16试编写程序,完成两个16 位数的减法:7F4DH2B4EH,结果存入内部RAM 的30H 和31H 单元,30H 单元存差的高8 位,31H 单元存差的低8 位。(注意:此题
10、与书上的题要求不一样,书中要求31H 单元存差的高8 位,30H 单元存差的低8 位)答:CLR CYMOV 30H,#7FHMOV 31H,#4DHMOV R0, #31HMOV A,R0SUBB A ,#4EMOV R0,A ;保存低字节相减结果DEC R0MOV A, R0SUBB A,#2BHMOV R0,A ;保存高字节相减结果17试编写程序,将R1 中的低4 位数与R2 中的高4 位数合并成一个8 位数,并将其存放在R1 中。答:MOV A,R2ANL A,#0F0HORL R1,A18试编写程序,将内部RAM 的20H、21H 单元的两个无符号数相乘,结果存放在R2、R3 中,R
11、2 中存放高8 位,R3 中存放低8 位。答:MOV A,20HMOV B,21HMUL ABMOV R3,AMOV R2,B19若(CY)=1,(P1)=10100011B,(P3)=01101100B。试指出执行下列程序段后,CY、P1 口及P3口内容的变化情况。MOV P1.3,CMOV P1.4,CMOV C,P1.6MOV P3.6,CMOV C,P1.0MOV P3.4,C- 81 -答:(CY)=1, (P1)=10111011B, (P3)=00111100B 第四章9若80C51 的晶振频率为6MHz,试计算延时子程序的延时时间。DELAY:MOV R7,#0F6HLP:MO
12、V R6,#0FAHDJNZ R6,$DJNZ R7,LPRET答:延时时间: 2s*1+((1+2*250+2)*246)+2+2=0.247486 秒(含调用指令2 个机器周期)10在内部RAM 的30H37H 单元存有一组单字节无符号数。要求找出最大数存入BIG 单元。试编写程序实现。答:ORG 0000HBIG DATA 2FHONE DATA 2AHTWO DATA 2BHSTART:MOV R7,#7 ;比较次数MOV R0,#30HLOOP:MOV A,R0MOV ONE,AINC R0MOV TWO,R0CLR CSUBB A,R0JC NEXT ;ONE 小,TWO 大继续比
13、下一对数MOV R0,ONE ;ONE 大放后面(交换)DEC R0MOV R0,TWO ;TWO 小放前面INC R0 ;NEXT:DJNZ R7,LOOPMOV BIG,37HSJMP $END11编写程序,把累加器A 中的二进制数变换成3 位BCD 码,并将百、十、个位数分别存放在内部RAM的50H、51H、52H 中。答:单字节二进制数转换为压缩的BCD 码仅需要2 个字节;在将压缩的BCD 码拆分存于3 个单元。org 0MOV 52H,#0MOV 51H,#0MOV 50H,#0MOV A,#0FDhLCALL DCDTHSJMP $DCDTH:MOV R7,#8MOV R0,A
14、;暂存于R0LOOP:CLR CMOV A,R0RLC AMOV R0,AMOV R1,#51H;MOV A,R1 ;ADDC A,R1 ;DA A ;MOV R1,A ;DEC R1MOV A,R1ADDC A,R1DA AMOV R1,ADJNZ R7,LOOPINC R1 ;50H 已是结果,R1 指向51H,51H 单元需拆分MOV A,#00HXCHD A,R1MOV 52H,AMOV A,R1SWAP AMOV R1,ARETEND12编写子程序,将R1 中的2 个十六进制数转换为ASCII 码后存放在R3 和R4 中。答:ORG 0MOV R1,#5BHMOV A,R1ANL A
15、,#0F0HSWAP AACALL ASCIIMOV R3,AMOV A,R1ANL A, #0FHACALL ASCIIMOV R4, ASJMP $ASCII:PUSH ACCCLR CSUBB A, #0AHPOP ACCJC LOOPADD A, #07HLOOP: ADD A, #30HRETEND13编写程序,求内部RAM 中50H59H 十个单元内容的平均值,并存放在5AH 单元。答:ORG 0000HMOV R7,#10MOV R0,#50HMOV B,#10CLR CCLR ALOOP:ADDC A,R0INC R0DJNZ R7,LOOPDIV ABMOV 5AH,ASJM
16、P $END第五章2.某系统有三个外部中断源1、2、3,当某一中断源变低电平时便要求CPU 处理,它们的优先处理次序由高到低为3、2、1,处理程序的入口地址分别为2000H、2100H、2200H。试编写主程序及中断服务程序(转至相应的入口即可)。答:将3 个中断信号经电阻线或,接INT1。ORG 0000HLJMP MAINORG 00013HLJMP ZDFZORG 0040HMAIN:SETB EASETB EX1SJMP $0RG 0200HZDFZ:PUSH PSWPUSH ACCJB P1.0,DV0JB P1.1,DV1JB P1.2,DV2INRET:POP ACCPOP PS
17、WRETIORG 2000HDV0:-JMP INRETORG 2100HDV1:-JMP INRETORG 2200HDV2:-JMP INRET8.利用定时/计数器T0 从P1.0 输出周期为1s,脉宽为20ms 的正脉冲信号,晶振频率为12MHz。试设计程序。答:采用定时20ms,然后再计数1、49 次的方法实现。a、T0 工作在定时方式1 时,控制字TMOD 配置:M1M0=01,GATE=0,C/ T =0,可取方式控制字为01H;b、计算计数初值X:晶振为12 MHz,所以机器周期Tcy为1s 。Nt/ Tcy 20103/110620000X216N655362000045536
18、4E20H即应将4EH 送入TH1 中,20H 送入TL1 中。c、实现程序如下:ORG 0000HAJMP MAIN ;跳转到主程序ORG 0030HMAIN:MOV TMOD,#01H ;设T1 工作于方式2MOV TH0,# 4EH ;装入循环计数初值MOV TL0,#20H ;首次计数值LP0:SETB P1.0ACALL NT0CLR P1.0MOV R7,#49 ;计数49 次LP1:ACALL NT0DJNZ R7,LP1AJMP LP0NT0:MOV TH0,# 4EHMOV TL0,#20HSETB TR0JNB TF0,$CLR TR0CLR TF0RETEND9.要求从P
19、1.1 引脚输出1000Hz 方波,晶振频率为12MHz。试设计程序。答:采用T0 实现a、T0 工作在定时方式1 时,控制字TMOD 配置:M1M0=01,GATE=0,C/ T =0,可取方式控制字为01H;- 90 -b、计算计数初值X:- 91 -晶振为12 MHz,所以机器周期Tcy为1s 。1/1000=1103Nt/ Tcy 0.5103/1106500X216N6553650065036FE0CH即应将FEH 送入TH0 中,0CH 送入TL0 中。c、实现程序如下:ORG 0000HAJMP MAIN ;跳转到主程序ORG 000BH ;T0 的中断入口地址LJMP DVT0
20、ORG 0030HMAIN:MOV TMOD,#01H ;设T0 工作于方式2MOV TH0,# 0FEH ;装入循环计数初值MOV TL0,#0CH ;首次计数值SETB ET0 ;T0 开中断SETB EA ;CPU 开中断SETB TR0 ;启动T0SJMP $ ;等待中断DVT0:CPL P1.1MOV TH0,# 0FEHMOV TL0,# 0CHSETB TR0RETIEND10.试用定时/计数器T1 对外部事件计数。要求每计数100,就将T1 改成定时方式,控制P1.7 输出一个脉宽为10ms 的正脉冲,然后又转为计数方式,如此反复循环。设晶振频率为12MHz。答:a、T1 工作
21、在计数方式2 时,控制字TMOD 配置:M1M0=10,GATE=0,C/ T =1,可取方式控制字为60H;T1 工作在定时方式1 时,控制字TMOD 配置:M1M0=01,GATE=0,C/ T =0,可取方式控制字为10H;b、计算初值X:定时10ms 时:晶振为12 MHz,所以机器周期Tcy为1s 。Nt/ Tcy 10103/110610000X216N655361000055536D8F0H即应将D8H 送入TH1 中,F0H 送入TL1 中。计数100 时:N100X28N2561001569CHc、实现程序如下:ORG 0000HAJMP MAIN ;跳转到主程序ORG 00
22、1BH ;T1 的中断入口地址LJMP DVT1ORG 0030HMAIN:MOV TMOD,#60H ;T1 工作于计数方式2MOV TH1,#9CH ;装入计数初值MOV TL1,#9CH ;CLR P1.7SETB ET1 ;T1 开中断SETB EA ;CPU 开中断SETB TR1 ;启动T1SJMP $ ;等待中断DVT1:SETB P1.7CLR ET1CLR TR1MOV TMOD,#10H ;T1 工作于定时方式1MOV TH1,#0D8H ;装初值MOV TL1,#0F0HSETB TR1JNB TF1,$ ;查询等待10msCLR TF1CLR TR1CLR P1.7MO
23、V TMOD,#60H ;T1 工作于计数方式2MOV TH1,#9CH ;装初值MOV TL1,#9CH ;SETB ET1 ;T1 开中断SETB TR1 ;启动T1RETIEND第六章3在串行通信中通信速率与传输距离之间的关系如何?答:最大距离与传输速率及传输线的电气特性有关。当传输线使用每0.3m(约1 ft)有50PF 电容的非平衡屏蔽双绞线时,传输距离随传输速率的增加而减小。当波特率超过1000 bps 时,最大传输距离将迅速下降。第七章1以80C31 为主机,用2 片27C256 扩展64K EPROM,试画出接口电路。答:3当单片机应用系统中数据存储器RAM 地址和程序存储器EPROM 地址重叠时,它们内容的读取是否会发生冲突,为什么?答:不会。由于80C51 对ROM 的读操作由PSEN 控制,指令用MOVC 类;对RAM 读操作用RD 控制,指令用MOVX。所以,尽管ROM 与RAM 的逻辑地址是重叠的,它们内容的读取也不会发生冲突。4.7.第八章
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1