版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题参考解答 ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV 30H,#34H ;存第一个加数 MOV 31H,#12H MOV 40H,#78H ;存第二个加数 MOV 41H,#56H MOV A,#30H ADD A,#40H ;加低字节 MOV 50H,A ;保存结果 MOV A,#31H ADDC A,#41H ;加高字节 MOV 51H,A ;保存结果 END2-2编制完整的汇编语言程序实现如下功能:在内部RAM的60H单元中存放有一个无符号字节数据,求该数据对应的十进制数,将其百位、十位和个位上的十进制数字字符的ASCII码依次存入从61H开始的单元。例如,假设60H单元中存放的数据为7BH,表示的十进制数大小为123,执行程序后,将从61H单元开始依次存放1、2、3的ASCII码,即31H、32H和33H。程序如下: ORG 0000H AJMP MAIN ORG 0100HMAIN: MOV 60H,#7BH MOV A,60H MOV B,#10 DIV AB ORL B,#30H MOV 63H,B ;存个位代码的ASCII码 MOV B,#10 DIV AB ORL A,#30H ;存百位代码的ASCII码 MOV 61H,A ORL B,#30H MOV 62H,B ;存十位代码的ASCII码 END
第3章思考练习3-1填空题(1)在MCS-51单片机中,具有第二功能的并口是P3口。(2)在MCS-51单片机中,存在漏极开路问题的并口是P0口,在用作普通并口时,必须在单片机外部将该并口的各引脚接上拉电阻。(3)MCS-51单片机复位时,所有并口引脚都输出高电平。(4)为了使单片机的P1.7引脚输出低电平,可以使用指令CLRP1.7,为了使P1口的全部引脚输出高电平,可以用指令MOVP1,#0FFH实现。(5)已知P3=0FFH,则执行指令CPLP3.7后,P3.7引脚输出低电平,P3=7FH。(6)在位逻辑运算指令中,目的操作数必须是C。(7)已知某程序中JZLP指令汇编后的机器码为60H、0F0H,存放在ROM中0120H和0121H单元,则当A=00H时,执行该指令将跳转到地址为0112H的单元。(8)已知某程序中DJNZR7,LP指令汇编后的机器码为0DFH、20H,存放在ROM中011EH和011FH单元,则当R7=2和1时,执行该指令后将分别继续执行地址为0140H和0120H单元中存放的指令。40H0AH41H0BH42H00H43H02H40H0AH41H0BH42H00H43H02H44H04H图3-26RAM单元分配(10)已知SP=4AH,则执行LCALL指令后,SP=4CH。(11)已知SP=4AH,则执行RET指令后,SP=48H。(12)已知执行ACALLDLY指令后,内部RAM单元的分配情况如图3-26所示,并且当前栈顶为43H,则该子程序调用指令存放在ROM中地址为01FEH开始的单元。(13)在51单片机中,外部中断利用引脚P3.2或P3.3的第二功能引入单片机。(14)不管响应哪个中断请求,都必须用指令SETBEA开中断,为了响应外部中断0,还需要执行SETBEX0指令。(15)根据中断源所处的位置,51单片机的中断分为内部中断和外部中断两种。3-2选择题(1)在51单片机的4个并口中,具有第二功能的是(D) A.P0 B.P1 C.P2 D.P3(2)当并口用作普通输入口连接一个输入设备时,在程序中应先做的操作是(B) A.输出低电平 B.输出高电平 C.输出 D.开中断 (3)已知P1.7引脚上连接一个LED的阴极,则要点亮该LED,不能执行的指令是(A)。 A.CPL P1.7 B.MOV P1,#7FH C.CLRP1.7 D.ANLP1,#7FH (4)已知P2.0引脚连接了一个LED的阳极,则要点亮该LED,可以用指令(C)实现。 A.CPL P2.0 B.CLRP2.0 C.SETB0A0H D.XRLP2,#1 (5)执行指令CJNEA,#20H,NEXT时,不做的操作是(B)。 A.将A中的数据与常数20H进行比较 B.将A中的数据与20H相减,差存入A C.根据A和常数20H的相对大小,设置C标志位 D.如果A≠20H,则跳转到NEXT标号处(6)已知SP=50H,则执行3次入栈操作和1次出栈操作后,SP=(C)。 A.50H B.51H C.52H D.53H(7)已知SP=50H,则执行子程序中的RET指令后,SP=(D)。 A.50H B.49H C.4FH D.4EH(8)在51单片机中,外部中断1的中断服务程序必须从ROM的(C)单元开始存放。 A.0000H B.0003H C.0013H D.0100H3-3在图3-9中,已知LED-RED的参数如图3-27所示,计算限流电阻R1的阻值。图3-27LED的参数答:R1=(5-2.2)/10=280W3-4简述MCS-51单片机中当并口用作输入口时的基本操作步骤。答:当并口用作输入口时,应先通过并口输出高电平,之后才能读取并口引脚的状态。3-5在本章各案例中,都是用单片机的并口引脚控制LED的阴极电平。如果用并口控制LED的阳极,而将阴极通过限流电阻接地,能否正常控制LED的亮灭?电路(包括元件参数)和控制程序该如何修改?答:考虑到单片机复位时默认情况下各并口都输出高电平,因此在这种情况下,复位时LED将点亮。但在实际系统中,一般都希望刚开始运行时LED是熄灭状态。因此在程序中必须首先由并口引脚输出低电平。此外,单片机并口内部的上拉电阻是弱上拉(阻值只有20W左右),因此还必须外接限流电阻,以避免在点亮时由于电流过大烧毁LED。3-6写出实现下列功能的指令(假设LED都采用共阳极接法):(1)将P1口各引脚连接的所有LED亮灭切换一次;(2)将P1.7~P1.4口连接的4个LED熄灭,另外4个引脚连接的LED保持原来的亮灭状态;(3)要求用字节操作指令将P1.7引脚连接的LED点亮,而其余7个LED的亮灭状态保持不变。答:(1)XRLP1,#0FFH (2)ORLP1,#0F0H (3)ANLP1,#7FH3-7已知常数1000事先已经存入R6(低字节)和R7(高字节),分别分析如下两个循环程序实现的功能。假设单片机的时钟频率为6MHz,执行两个循环分别需要多少时间?(1)NEXT: CLR C ;1个机器周期 MOV A,R6 ;1个机器周期 SUBB A,#1 ;2个机器周期 MOV R6,A ;1个机器周期 MOV A,R7 ;1个机器周期 SUBB A,#0 ;2个机器周期 MOV R7,A ;1个机器周期 ORL A,R6 ;1个机器周期 JNZ NEXT ;2个机器周期(2) LP: MOV A,R7 DEC R7 MOV R2,0x06 ;2个机器周期 JNZ CON ;2个机器周期 DEC R6CON: ORL A,R2 JZ DONE ;2个机器周期 SJMP LP ;2个机器周期DONE: ……答:(1)上述循环实现1000次循环。每次循环需要的时间为(1*6+2*3)*2=24ms,因此循环执行完毕一共需要24*1000=24ms的时间。(2)上述循环实现1000次循环。循环执行完毕所需要的时间为[1000*(1+1+2+2+1+1+2+2)-0E7H-2*0FFH]*2≈22.5ms其中两项减运算是每次循环,当R7没有减到0时,不做DECR6的操作。3-8已知R6=10H,R7=20H,A=00H,SP=40H,执行如下程序段:41H00H42H10H41H00H42H10H43H20HPUSH 06HPUSH 07HPOP 06HPOP 07H(1)当执行完第3条指令后,画出堆栈的存储单元分配图;(2)当执行完上述程序段后,A=00H,R6=20H,R7=10H,SP=41H。3-9如下汇编语言程序段实现的功能是:将内部RAM从地址为30H开始的单元中存放的数据进行累加。当累加和刚超过200时,点亮LED(LED阴极接P1.0)。将程序补充完整,每处横线位置只能填一条指令。 SETB P1.0 ;初始熄灭LED CLR A MOV R0,#30HLP: ADD A,@R0 ;累加 INC R0 CJNE A,#200,NEXT ;累加和超过200?NEXT: JC LP ;否,则继续 CLR P1.0 ;是,则点亮LED3-10如下汇编语言程序段实现的功能是:将内部RAM中30H~37H单元的数据传送到34H开始的单元。将程序补充完整,每处横线位置只能填一条指令。 MOV R0,#37H ;设置目的和源起始地址 MOV R1,#3BH MOV R7,#8 ;设置数据个数LP: MOV A,@R0 ;传送一个字节 MOV @R1,A DEC R0 ;修改地址 DEC R1 DJNZ R7,LP ;循环综合设计3-1编写完整的汇编语言程序实现如下功能(要求加上必要的注释):(1)子程序DISP实现如下功能:根据R0入口参数中的字节数据点亮或熄灭相应的LED灯。例如,假设调用该子程序时R0=0F0H,则点亮L1~L4灯并熄灭L5~L8灯,其中8个LED分别采用共阳极接法与单片机的P2.0~P2.7相连接。(2)主程序中调用上述子程序,从P1口读入开关数据并点亮相应的LED。参见文件p3_1.asm。3-2在ROM中从0200H单元开始存放有20个有符号数,编制完整的汇编语言程序实现如下功能(要求加上必要的注释):(1)统计其中非负数的个数(提示:默认情况下,有符号数在单片机中都用补码表示,负数补码的最高位为1);(2)将统计结果转换为BCD码,并用8个LED显示。假设LED采用共阳极接法与P1相连接。参见文件p3_2.asm。3-3编写子程序实现一个通用延时子程序,延时的时间由子程序的入口参数确定。在主程序中调用该子程序,控制一个LED以不同的时间间隔进行闪烁。例如,亮1s、灭2s、亮1s、……。参见文件p3_3.asm。3-4在51单片机系统中,有两个LED灯L1和L2分别连接在P1.0和P1.1引脚,用两个按钮B1和B2分别作为两个外部中断INT0和INT1,采用中断方式控制两个LED的闪烁。要求初始两个灯都点亮。当按动B1时,L1闪烁,直到按动B2;当按动B2时,L2闪烁,直到按钮B1。(1)画出单片机与LED和按钮的连接电路;(2)编制主程序和中断服务程序。(1)电路原理图参见文件p3_4.pdsprj。(2)程序参见文件p3_4.asm。
第4章思考练习4-1填空题(1)7段共阴极数码管内部由7个LED构成,其阴极接在一起并接com引脚。(2)用共阴极数码管显示某字符所需的字段码为2AH,要在共阳极数码管上显示该字符,需要送入的字段码为0D5H。(3)8位共阳极数码管与单片机并口的连接如图所示,为了在最左侧数码管上显示字符“5”,单片机应该送出的字段码为49H,位选码为10000000B。(4)当74LS48的DCBA端输入0011B时,QG~QA端输出的字段码为1001111B。(5)已知C=0,A=0F0H,执行RLA指令后,A=0E1H,执行RLCA指令后,A=0E0H。(6)对矩阵键盘,通过全扫描按断有无按键按下,通过列扫描实现按键识别。(7)通过列扫描识别按键后,必须等到按键释放才能进行后续操作。(8)在LCD1602液晶显示器中,为了在第1行和第2行的第3列(首列为第1列)分别显示两个字符,在将这两个字符的ASCII码写入之前,必须分别先发送命令字082H和0C2H。(9)在LCD1602中,利用RS信号来区分是写入的命令还是显示数据。(10)设置LCD12864显示以16´16点阵显示字符,要将某字符显示到LCD12864右半屏第2字符行、第3字符列(首行为第0行、首列为第0列),应该发送的页设置命令字为0BCH,列设置命令为70H。4-2选择题(1)要将A中的无符号数除以2,可以选用的指令是(D)。 A.RLA B.RLCA C.RRA D.RRCA(2)指令MOVCA,@A+PC访问的单元在(A)存储区。 A.ROM B.内部RAM C.外部RAM D.不确定(3)指令MOVCA,@A+DPTR中,操作数的寻址方式为(C)。 A.寄存器寻址 B.直接寻址 C.变址寻址 D.寄存器间接寻址(4)在某系统中,8个共阴极数码管的字段码和位选码输入端分别接在P1口和P2口,为了使数码管全部熄灭,可以选用的指令是(B)。 A.ANLP2,#0FFH B.ANLP1,#0 C.XRLP2,#0 D.ORLP1,#0FFH(5)某2×8矩阵键盘中,从左向右8根列线C1~C8依次接在P3.7~P3.0引脚,则为了识别按键是否在C2列,由P3口送出的列扫描码应为(A)。 A.0BFH B.7FH C.40H D.80H4-3在4.1.3节中介绍点阵显示器显示的基本原理类似于数码管的动态扫描显示,其中行码相当于字段码,列码相当于位选码。对图4-14所示8´8点阵显示器,分析说明能否用与数码管类似的静态显示方法进行显示控制。答:行码相当于数码管的字段码,每个字节的行码控制一列点阵的显示,而所有列对应的行码都通过点阵显示器的同一组行线送入,也就是通过单片机的同一个并口送来,因此如果采用静态显示,各列点阵将显示完全相同的图形。而对于实际需要显示的字符或图形,各列所需的行码是各不相同的,必须采用动态扫描显示。4-4有如下循环程序:MAIN: MOV R7,#4 MOV R0,#8 CLR A MOV B,ALP: MOV A,R0 ADD A,#2 MOVC A,@A+PC ADD A,B MOV B,A INC R0 DJNZ R7,LP SJMP $TAB: DB 1,-2,3,-4,-5,6,7,-8(1)分析执行完循环后A、B、R0和R7中的结果分别为多少?(2)分析概括上述程序段实现的功能。(3)如果要求将程序中的MOVCA,@A+PC指令替换为MOVCA,@A+DPTR,修改上述程序实现同样的功能。答:(1)A=0F8H,B=0F8H,R0=0CH,R7=00H(2)实现的功能是将TAB表中第2~5个有符号数进行累加。(3)修改的程序如下:MAIN: MOV R7,#4 CLR A MOV B,A MOV DPTR,#TABLP: MOV A,#1 MOVC A,@A+DPTR ADD A,B MOV B,A INC DPTR DJNZ R7,LP SJMP $TAB: DB 1,-2,3,-4,-5,6,7,-84-5编制程序段实现如下功能。(只需要写出实现具体功能的部分代码!)(1)将内部30H和31H单元中存放的16位无符号数除以2,假设30H单元存放的是高8位,31H单元存放的是低8位。要求用移位指令实现,不使用DIV指令,不考虑余数。 CLR C ;清除C标志位 MOV A,30H RRC A ;高8位除以2,余数存入C MOV 30H,A MOV A,31H RRC A ;低8位除以2 MOV 31H,A (2)将内部RAM的30H单元中的无符号数除以8,并放回原位置。要求用移位指令实现,不使用DIV指令,不考虑余数。 MOV R7,#3 ;设置循环次数 MOV A,30HLP: CLR C RRC A ;每循环一次,除以2 DJNZ R7,LP MOV 30H,A ;保存结果(3)在内部RAM的40H单元中存放有一个字节数据,统计其中有多少个1码和0码,结果分别存入R0和R1。 MOV R0,#0 ;1码的个数初始化为0 MOV R1,#0 ;0码的个数初始化为0 MOV A,40H ;数据存入A RLC A JNC ZERO ;检测到一位0码,则跳转 INC R0 ;否则,1码个数加1 SJMP DONE ZERO: INC R1 ;0码个数加1DONE: SJMP LP综合设计4-18个共阴极数码管上的段选端与单片机的P1口相连接,位选码接P3口。编写程序实现将同一个字符每隔20ms从左向右循环滚动显示。原理图如图所示:完整的汇编语言程序只需要在案例程序p4.1_2.asm的基础上改动得到,参见文反面p4_1.asm。4-2矩阵键盘也可以采用中断方式进行扫描。具体步骤是:有任一键按下时,向单片机发出中断请求。单片机响应后,在中断服务程序中实现列扫描和按键识别。对图4-12所示4´4键盘,要求其行线和列线分别与P1口的高四位和低四位相连接,键盘的中断请求信号由P3.3引脚送入单片机。(1)画出单片机与键盘的连接线路图;(2)编制主程序和中断服务程序,将从键盘输入的各按键键码滚动存入内部RAM中30H开始的键盘输入缓冲区。原理图如下,程序参见文件p4_2.asm。图4-318´16点阵显示器图4-318´16点阵显示器答:两个8´8点阵显示器的行线接在一起,并与单片机的P1相连接;列线分别与单片机P3和P2相连接。程序参见文件p4_3.asm。4-4根据图4-26所示电路连接,编写一个通用子程序DISP,实现在LCD12864的任意位置(第几行、第几列)以8(宽)´16(高)点阵显示指定的0~9数字字符,并在主程序调用。参见文件p4_4.asm
第5章思考练习5-1填空题(1)MCS-51单片机的P3.5工作在第二功能时称为T1信号引脚,用于输入定时/计数器所需的计数脉冲。(2)MCS-51单片机的P3.2工作在第二功能时称为INT0信号引脚,通过该引脚输入的信号可以作为定时/计数器的门控信号。(3)要设置定时/计数器T0工作在方式1的计数方式,允许门控;设置定时/计数器T1工作在方式2的定时方式,禁止门控,相应的指令为MOVTMOD,#00101101B。(4)在程序中,指令JNBTF1,$实现的功能是等待定时/计数器T1出现计数溢出。(5)已知单片机的时钟频率为6MHz,设置TMOD=01000000B,要用定时/计数器T0实现2ms定时,则应设置TH0=0E0H,TL0=18H。(6)已知串口每秒传送1000个字符,每个字符由1位起始位、8位数据位和1位停止位构成,则波特率为10kbit/s,传输一位二进制所需的时间为0.1ms。(7)利用串口进行数据的收发时,发送和接收的数据都在SBUF中。(8)通过串口发送数据之前,必须用指令将TI位复位,否则无法发送数据。当数据发送完毕,该位会自动置位。(9)51单片机从串口读走接收到的数据后,必须用指令将RI位复位。当串口接收到下一个数据时,该位会自动被置位。(10)当单片机需要通过串口接收数据时,必须在初始化时将REN位置位。(11)RS-232C串行通信接口标准采用负逻辑电平,即逻辑1用-3V~-15V电平表示,逻辑0用+3V~+15V表示。(12)51子系列单片机有2个外部中断和3个内部中断。(13)在51单片机中,不管要使用哪个中断,都必须用指令SETBEA开中断。(14)51单片机将所有中断的优先级分为两组,即高优先级和低优先级。5-2选择题(1)要使定时/计数器T0停止计数,可以选用的指令是(D)。 A.CLRIT0 B.CLRTF0 C.CLRIE0 D.CLRTR0(2)定时/计数器T1用作计数功能时,计数脉冲由(A)提供。 A.P3.5引脚 B.P3.4引脚 C.P0.0引脚 D.内部时钟电路(3)已知51单片机时钟频率为12MHz,要利用定时/计数器工作在方式1实现1ms定时,所需的计数初值为(B)。 A.03E8H B.0FC18H C.0FCH D.18H(4)要允许用启动定时/计数器T0的计数,则必须将TMOD中的(C)。 A.位置位 B.位复位 C.GATE位置位 D.GATE位复位(5)要利用SETBTR0启动定时/计数器T0的计数,必须将TMOD中的(A)。 A.位置位 B.位复位 C.GATE位置位 D.GATE位复位(6)采用查询方式检测到定时/计数器T0计数溢出时,计数溢出标志位TF0应(D)。 A.由硬件自动复位 B.由硬件自动置位 C.用程序指令置位 D.用程序指令复位(7)当定时/计数器T1计数溢出时,TF1=(B)。 A.0 B.1 C.0FFH D.当前计数值(8)要从串口读入接收到的数据,可以选用的指令是(C)。 A.MOVA,DPTR B.MOVA,SCON C.MOVA,SBUF D.MOVA,TCON(9)51单片机串口发送数据的顺序是(A)。 ①数据送SBUF ②硬件自动将TI置位 ③通过P3.1引脚串行发送一帧数据完毕 ④用软件将TI复位 A.①③②④ B.①②③④ C.④③①② D.③④①②(10)51单片机串口接收数据的顺序是(B)。 ①从P3.0接收一帧数据后,硬件将RI置位 ②用软件将RI复位 ③从SBUF读取接收到的数据 ④REN位置位 A.①②③④ B.④①②③ C.④③①② D.③④①②(11)串口工作在方式0时,P3.1引脚传送的是(C)。 A.发送的数据 B.接收的数据 C.同步时钟 D.空闲(12)51单片机串口适合用于点点双机通信的工作方式是(B)。 A.方式0 B.方式1 C.方式2 D.方式3(13)下面有关串口功能的描述,错误的是(D)。 A.将发送的并行数据转换为串行数据 B.在发送的串行数据中自动人添加起始位和停止位 C.一帧数据接收完毕将RI置位 D.接收到的数据由CPU读走后,自动将TI复位(14)51单片机复位后,下列中断源中默认优先级最低的是(B)。 A.外部中断 B.串口中断 C.定时/计数器T0中断 D.定时/计数器T1中断(15)当CPU相应定时/计数器T0中断时,PC中自动装入的值是(B)。 A.0003H B.000BH C.0013H D.001BH(16)下面有关中断优先级的描述,错误的是(C)。 A.每个中断源都有两个优先级B.低优先级的中断处理可以被高优先级打断C.相同优先级的中断,可以按照默认优先级实现嵌套处理D.复位后,所有中断都属于低优先级5-3简述定时和计数功能的主要区别。答:何一个计数器都可以实现计数和定时功能,二者基本的区别在于计数脉冲是已知频率和周期的,还是频率和周期未知或者不确定的。如果计数脉冲是频率恒定的时钟脉冲,则一般用于实现定时。如果计数脉冲的频率或周期是未知的,或者不断变化的,则一般称为计数。5-4简述51单片机定时/计数器查询方式实现定时功能时程序的基本流程。答:(1)设置TMOD,其中C/T位必须复位;(2)计算计数初值,并存入TH和TL;(3)TR位置位,启动定时;(4)通过查询TF位是否为1确定定时是否到;(5)定时到,实现期望的功能,同时将TF复位;(6)重装计数初值,重复(4)、(5)。5-5简述51单片机中定时/计数器方式2与方式0和1的主要区别。答:方式2与方式0和1的主要区别有两点:(1)计数位数不同,方式2是8位计数,方式0和1分别为13位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026)度全国中小学生安全知识竞赛试题库及答案
- 2026年心肺复苏理论考试试题及答案
- 2026中国量子计算技术商业化进程与市场规模预测分析报告
- 2026中国涡流泵运维管理智能化解决方案报告
- 2026中国食品行业市场趋势分析及投资价值评估研究报告
- 2026基因编辑技术在育种领域的商业化应用与监管趋势报告
- 2026汽车零部件供应链管理优化与现代企业运营模式
- 2026汽车制造行业市场需求供给状况及未来发展策略研究报告
- 2026中国智能穿戴设备行业竞争格局分析及行业投资机会发展策略报告
- 煤矿安全生产专项整治考核试卷
- 工艺纪律检查方案
- 江苏盐城东台市2026年专职网格员招聘考试试卷-含答案解析
- 2026年消化系统内镜报告规范解读手册
- 2026年CCAA国家注册审核员考试(有机产品认证基础)复习题及答案
- 汽车维修管理制度大全
- 2026年初级注册安全工程师《安全生产专业实务(其他安全)》真题试卷(附答案解析)
- 药剂师招聘笔试题试题集详解
- 胆南星临床应用现状
- 原材料采购价格监督制度
- 方言词汇调查条目表
- 疼痛管理与康复医学
评论
0/150
提交评论