版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章1.单片机内部至少包含哪些部件?答:中央处理器CPU、I/O口、随机存储器RAM、只读存储器ROM。2. 根据程序存储器的差别,单片机可以分为哪几种类型?答:MCS-51系列单片机按片内不同程序存储器的配置来分,可以分为以下3种类型:1、片内带Mask ROM(掩膜ROM)型:例如8051、80C51、8052、80C52。此类芯片是由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到ROM中。其应用程序只能委托半导体厂家“写入”,一旦写入后不能修改。此类单片机适合大批量使用。2、片内带EPROM型:例如8751、87C51、8752。此类芯片带有透明窗口,可通过紫外线擦
2、除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。此类单片机价格较贵,不宜于大批量使用。3、片内带EEPROM(电可擦可编程只读存储器)型:例如8951、89C51、8952。此类芯片可以在电脑上或专用设备上擦除已有信息,重新编程。此类单片机目前应用很广。4、片内无ROM(ROMLess)型:例如8031、80C31、8032。此类芯片的片内没有程序存储器,使用时必须在外部并行扩展程序存储器存储芯片。此类单片机由于必须在外部并行扩展程序存储器存储芯片,造成系统电路复杂,目前较少使用。3.单片机的主要特点是什么?它适宜构成通用微机系统还是专用微机系统?为什
3、么?答:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。其主要特点如下:1、价格便宜。2、功能不大。只能专用在适用的领域,但在适用的领域中,性价比却是最佳。3、可靠性高,抗干扰能力强。4、功耗比较低。对电源要求低,适用面广。5、外围扩展能力强。可以应用到不同的控制系统中。根据其特点可知,单片机功能不大,不适宜构成通用微机系统,只适宜构成专用微机系统。4
4、. 研制微机应用系统时,应如何选择单片机的型号?答:在单片机应用研究系统开发中,单片机是整个设计的核心。在进行正式的单片机应用研究系统开发之前,需要根据不同单片机的特性,从中作出合理的选择。1.仔细调查市场,尽量选用主流的、货源充足的单片机型号,这些器件使用比较广泛,有许多设计资料供学习或参考。2.尽量选择所需硬件集成在单片机内部的型号,例如ADC、DAC、I2C、SPI和USB等。这样便于整个控制系统的软件管理,减少外部硬件的投入,缩小整体电路板的面积,从而减少总体投资等。3.对于手持设备,移动设备或者其他需要低功耗的设备,尽量选择低电压、低功耗的单片机型号,这样可以减少能量的消耗,延长设备
5、的使用寿命。4.在资金等条件允许的情况下,尽量选择功能丰富,扩展能力强的单片机,这样便于以后的功能升级和扩展。5.对于体积有限制的产品,尽量选择贴片封装的单片机型号,这样可以减少电路板面积,从而降低硬件成本,同时也有助于电磁兼容设计。第二章1.分别写出一个MCS-51中ROM、EPROM、无ROM型单片机的型号和内部资源。其中哪个产品内部具有固化的软件?该软件能否被所有用户所使用?怎样使用该种产品?答:1、8051、80C51、8052、80C52。此类芯片带有4K字节的掩膜ROM,由半导体厂家在芯片生产过程中,将用户的应用程序代码通过掩膜工艺制作到ROM中。其应用程序只能委托半导体厂家“写入
6、”,一旦写入后不能修改。2、8751、87C51、8752。此类芯片带有4K字节的EPROM,带有透明窗口,可通过紫外线擦除存储器中的程序代码,应用程序可通过专门的编程器写入到单片机中,需要更改时可擦除重新写入。3、8031、80C31、8032。此类芯片片内无ROM,使用时必须在外部并行扩展程序存储器芯片。其中8051、80C51、8052、80C52等产品具有固化软件,该软件不能被所有用户所使用,应用程序只能委托半导体厂家“写入”。2.MCS-51中无ROM型单片机在应用中P2口和P0口能否直接作为输入/输出口连接开关、指示灯之类的外围设备?为什么?答:不能。因为无ROM型单片机在应用中必
7、须扩展程序存储器,P0口必须作为地址总线的低8位及数据总线复用, P2口必须作为高8位地址总线送出高8位地址,因此P2口和P0口的输出信号都是不稳定的,不能直接作为输入/输出口连接开关、指示灯之类的外围设备。3. 什么是堆栈?8032的堆栈区可以设在什么地方?一般应设在什么区域?如何实现?试举例说明。答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。堆栈操作指令PUSH direct、POP direct只能采用直接寻址方式,8032的片内RAM中只有低
8、128字节可以采用直接寻址方式访问,因此,尽管8032片内RAM的地址范围是00H-0FFH,但堆栈区只可以设在内部RAM中的00H-7FH的区域内,一般应设在30H-7FH的范围内。可以通过赋值的方式设置堆栈区,如:MOV SP,#60H。4. 8031的内部RAM中,哪些可以作为数据缓冲区?答:8031内部RAM的128字节均可以作为数据缓冲区,但00H1FH通常作为工作寄存器区使用,20H2FH通常作为位寻址区使用。5.对于8052单片机,地址为90H的物理单元有哪些?答:一个是P1口,P1口的物理地址就是90H,使用直接寻址方式访问;还有一个是RAM单元,必须使用寄存器间接寻址方式访问
9、。6. MCS-51单片机构成系统时,程序存储器的容量最大是多少?答:MCS-51单片机构成系统时,程序存储器的容量最大是64KB。7. 当单片机系统的程序存储器的容量为8KB时,程序存储器的开始地址为多少?答: 因为单片机复位时,PC=0000H,程序都是从0000H开始执行,所以无论何种情况,程序存储器的开始地址都必须是0000H。8.MCS-51单片机构成系统时,外部数据存储器的容量最大是多少?答:MCS-51单片机构成系统时,外部存储器的容量最大是64KB。9. 当单片机系统外部数据存储器的容量为8KB时,数据存储器的开始地址一定要是0000H吗?答:不一定。10.什么是单片机的的节电
10、方式?答:MCS-51系列运行时耗电小,还提供两种节电工作方式空闲方式和掉电方式。在单片机空闲时程序停止运行,进入待机状态,在接收到一个中断时退出空闲方式,处理完后继续进入空闲方式,就这样断断续续的工作以达到节电目的。11.CHMOS型单片机,进入掉电方式时,单片机的振荡器是否工作?采用什么办法能使单片机退出掉电方式?答:不工作。在掉电方式中,振荡器停止工作,单片机内部所以功能部件停止工作。在掉电方式期间,内部RAM和寄存器的内容维持不变。退出掉电方式的唯一方法是硬件复位。12. CHMOS型单片机,进入空闲方式时,单片机的振荡器是否工作?采用什么办法能使单片机退出空闲方式?答:工作。进入空闲
11、方式中,中断、串行口和定时器继续工作。CPU现场、内部RAM和其他特殊功能寄存器内容维持不变。有两种方法退出空闲方式,一是采用被允许的中断源请求中断;二是硬件复位,因为空闲方式中,振荡器在工作,所以仅需两个机器周期便完成复位。第三章1. 指出下列指令中划线操作数的寻址方式和指令的操作功能。答:MOV A, #78H; 立即寻址,将立即数送入累加器A MOV A, 78H; 直接寻址,将内部RAM 78H单元内容送累加器A MOV A, R6; 寄存器寻址,将R6内容送累加器A INC R0; 寄存器间接寻址,将指针R0指向的内部RAM单元内容加1 PUSH ACC; 直接寻址,将累加器A的内容
12、入栈 RL A; 寄存器寻址,将累加器A的内容左移1位 CPL 30H; 位寻址,将位变量30H的内容取反 SJMP $; 相对寻址,原地等待MOVC A, A+PC;基寄存器加变址寄存器间接寻址,程序存储器PC和累加器A中内容相加形成ROM地址,取数送到累加器A。2.指出下列指令中哪些是非法的? INC R1DEC DPTR MOV A, R2 MOV R1, R0 MOV P1.1, 30H MOV #30H, A MOV 20H,21H MOV OV, 30H MOV A, A+DPTR RRC 30H RL B ANL 20H,#30H XRL C, 30H 答:DEC DPTR DE
13、C DPLMOV A, R2 MOV A, R1MOV R1, R0 MOV A, R0 MOV P1.1, 30H MOV C, 30H和MOV P1.1, C MOV #30H, A MOV A, #30H MOV OV, 30H MOV C, 30H和MOV OV,CMOV A, A+DPTR MOVC A, A+DPTRRRC 30H RRC A 因为所有的移位指令均是对累积器A进行的RL B RL AXRL C, 30H 错,因为位操作指令中,没有位的异或运算3.如何将1个立即数30H送入内部RAM 90H单元?如何将立即数送特殊功能寄存器P1?答:(1) MOV R0, #90H
14、MOV R0, #30H(2)MOV P1, #30H4.执行下列一段程序后,试分析有关单元内容。答:MOV PSW, #0; (PSW)=00HMOV R0, #30H; (R0)=30HMOV 30H, #40H (30H)=40HMOV 40H, #50 (40H)=32HMOV A, R0 (A)=40HADDC A, #0CEH (A)=40H+0CEH+0=0EH PSW=10000001B=81HINC R0 (R0)=31H最后的执行结果:(R0)=31H, (30H)=40H, (40H)=32H, (A)=0EH, (PSW)=81H5.试编写一段程序,将内部RAM 40H
15、、41H单元内容传送到外部RAM 2000H、2001H单元中去。答:MOV DPTR, #2000H MOV R0,#40H MOV A, R0 MOVX DPTR, A INC R0 INC DPTR MOV A, R0 MOVX DPTR, A6.试编写一段程序,根据累加器A的内容,到程序存储器1000H起始的表格中取一双字节数,送内部RAM 50H、51H单元。答:MOV DPTR, #1000H PUSH ACC MOVC A, A+DPTR MOV 50H, A POP ACC INC DPTR MOVC A, A+DPTR MOV 51H, A7.试编写一段程序,进行两个16位数
16、的相减运算:6483H-56E2H。结果高8位存内部RAM 40H,低8位存41H。答:CLR C MOV A, #83H SUBB A, #0E2H MOV 41H, A MOV A, #64H SUBB A, #56H MOV 40H, A8.试编写一段程序,将30H、31H单元中存放的BCD数,压缩成一个字节(原30H单元内容为高位),并放入30H单元。答:MOV A, 30H SWAP A ORL A, 31HMOV 30H, A9.试编写一段程序,将30H32H单元中的压缩BCD拆成6个单字节BCD数,并放入33H到38H单元。答:MOV A, 30H MOV R0, #33H AC
17、ALL LPMOV A, 31H ACALL LP MOV A, 32H ACALL LP SJMP $ LP: MOV B, A ANL A, #0FH MOV R0, A INC R0 MOV A, B SWAP A ANL A, #0FH MOV R0, A INC R0 RET10.设晶振频率为6MHz,试编写一个延时1ms的子程序,并利用该子程序,编写一段主程序,在P1.0引脚上输出高电平宽2ms、低电平宽1ms的方波信号。答:机器周期T=2s, 延时1ms的子程序应运行500T, 子程序为:DELAY: MOV R0, #248; 1T DJNZ R0, $; 2T NOP; 1T
18、 RET 2T子程序运行机器周期数为:1T+248*2T+1T+2T=500T,500T=1ms主程序为:MOV PSW, #00H LOOP: SETB P1.0 ACALL DELAY ACALL DELAY CLR P1.0 ACALL DELAY SJMP LOOP 第四章1.试根据P1口和P3口的结构特性,指出它们作为输入口或第二功能输入/输出的条件。答:P1口作为输入口时,相应的口锁存器必须先置“1”,使输出场效应管T截止,CPU读P1时才能准确读取外部电路的输入信息。同理,P3口作为第二功能I/O口时,相应的口锁存器也必须先置“1”。2.MCS-51中无ROM型单片机,在应用中P
19、0口和P2口能否直接作为输入/输出口连接开关、指示灯之类的外围设备?为什么?答:不能。因为无ROM型单片机在应用中必须扩展程序存储器,P0口必须作为地址总线的低8位及数据总线复用, P2口必须作为高8位地址总线送出高8位地址,因此P2口和P0口的输出信号都是不稳定的,不能直接作为输入/输出口连接开关、指示灯之类的外围设备。3.什么是堆栈?堆栈的作用有哪些?答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。作用:(1)子程序调用和中断服务时CPU自动将当前
20、PC值压栈保存,返回时自动将PC值弹出堆栈。(2)保护现场/恢复现场(3)数据传输4.MCS-51的T0、T1的定时器和计数器的方式差别是什么?试举例说明这两种方式的用途。答:MCS-51的T0、T1的定时器和计数器本质上都是计数器, 定时器方式是对单片机内部的机器周期数进行计数, 计数器方式是对T0、T1引脚上输入的外部脉冲(方波)信号进行计数。定时器方式用来产生定时信号,可用于串行通信,也可以通过口输出脉冲和方波信号;计数器方式可以用来检测外部信号的频率和脉宽。5. 晶振为12MHz,用T0产生1ms的定时,可以选择哪几种方式?分别写出定时器的方式字和计数初值。如需要1s的定时,应如何实现
21、?答:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得1ms的定时时间,定时器必须工作在方式0或方式1。机器周期T =12×1/12×10-6s=1s,计数值T计数=1ms/1m=1000。1、采用方式0,定时器的方式字TMOD=00H,定时器的计数初值为TC= MT/ T计数= 213 1*103/1=7192=1C18H,TH0应装1CH;TL0应装#18H。2、采用方式1,定时器的方式字TMOD=01H,定时器的计数初值为TC= MT/ T计数= 216 1*103/1=64536=FC18H,TH0应装0FCH;TL0应装#18H。如
22、需要1s的定时,可以采用查询相应溢出标志位,结合软件计数100循环,即可实现1s的定时。6.晶振为12MHz,如何用T0来测试20Hz1000Hz之间的方波信号(设高低电平宽度相同)的周期?又如何测试频率为0.5MHz左右的脉冲频率?答: 1、使用定时器方式,利用方波的边沿触发定时器的开始与结束,比如使用上升沿来启动定时器计数,机器周期T为1s,下降沿停止计数。依据计数值N计算周期,周期=2N*T。2、T0工作在计数器方式,待测试的脉冲信号引入T0引脚计数,同时T1工作在定时器方式,定时1ms,1ms定时结束时取T0计数值,脉冲频率=1000* T0计数值。7.若晶振为11.0592MHz,串
23、行口工作于方式1、波特率为4800bit/s,分别写出用T1、T2作为波特率发生器的方式字和计数初值。答:T1作为波特率发生器。由:波特率=2SMOD*振荡器频率/32*12*(256-X)设SMOD=0,可得,4800=20*11059200/32/12/(256-X),可得的计数初值X=250=0FAH,将X值装入TH1中,TMOD=20H。MOV TMOD,#20H; T1方式2MOV TH1,#0FAHT2作为波特率发生器,需对T2CON(置“1”TCLK、RCLK)、TH2、TL2、RCAP2H、RCAP2L初始化编程,再置“1”TR2,具体略。8.串行口方式0能否外接多个74LS1
24、64?若不可以,说明原因;若可以,画出逻辑框图并说明数据输出方法。答:串口工作方式0时,可以外接多个74LS164。此时TXD用于发送同步脉冲接74LS164的CLK端,RXD用于发送数据接第一片74LS164的数据输入端DSA和DSB,74LS164的/CR和Vcc端接+5V,Vss端接地,后一片74LS164的数据输入端DSA和DSB接前一片74LS164的Q7。只要将数据载入SUBF之后,时钟脉冲和数据就会自动出现在单片机的I/O端口,程序不需要对I/O口再进行干预。出现在74LS164的数据低位在右,高位在左。将数据多次载入SUBF,就可以在多个74LS164的输出端得到稳定的数据。逻
25、辑框图略,可参考教材的例4-8.9.MCS-51的中断处理程序能否存储在64KB程序存储器的任意区域?若可以,如何实现?答:可以。因为每个中断源的中断入口地址处均预留了8个单元的空间,8个单元足够存放一条跳转指令,使程序转向64KB程序存储区的任意区域。在相应的中断入口使用JMP指令进行跳转就可以实现。10.在一个8031系统中,晶振为12MHz,一个外部中断请求信号是一个宽度为500ms的负脉冲,则应该采用哪种中断触发方式,如何实现?答:应该采用边沿触发方式,采用SETB IT0或 SETB IT1即可。若采用电平触发方式,由于外部中断请求信号长期存在,可能会引起重复中断。11.若外部中断请
26、求信号是一个低电平有效的信号,是否一定要选择电平触发方式?为什么?答:不一定。因为采用边沿触发,能自动锁存中断信号,是一种可靠的中断管理方式。第五章1. 若晶振为6MHz,试编写一个2ms延时子程序。答:晶振为6MHz,机器周期T为2s,应计满1000个T。DELAY: MOV R7, #10DLY0: MOV R6, #49DLY1: DJNZ R6, DLY1;2T DJNZ R7, DLY0;2TRET 2.试编制一个子程序,对串行口初始化,使串行口以方式1,波特率1200bit/s(晶振为11.059MHz)发送字符串“MCS-51”。答:ORG 0000HAJMP MAINORG 0
27、100HMAIN: MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON,#42HMOV R4,#0MOV DPTR,#TABFS1: MOV A,R4 MOVC A,A+DPTR CJNE R4,#6,FS2 SJMP FSJSFS2: JBC TI,FS3 SJMP FS2FS3: MOV SBUF,A INC R4 SJMP FS1FSJS: SJMP $TAB: M,C,S,-,5,1 END3.晶振为11.059MHz,串行口工作与方式3,波特率为2400bit/s,第9位数据为奇校验位。编制一个程序,对串行口初始化,并用查询
28、方式接受串行口上输入的10个字符存入内部RAM中30H开始的区域。答:RECS: MOV SCON,#0D0H ;串行口方式3允许接收MOV TMOD,#20H ;T1方式2定时MOV TL1, #0F4H ;写入T1时间常数MOV TH1, #0F4HSETB TR1 ;启动T1MOV R0, #30H ;设数据指针 MOV R7, #10 ;接收数据长度WAIT: JBC RI,NEXT ;等待串行口接收 SJMP WAITNEXT:MOV A,SBUF ;取一个接收字符JNB P,COMP ;奇偶校验JNB RB8,ERR ;PRB8,数据出错SJMP RIGHT ;P=RB8,数据正确
29、COMP: JB RB8,ERRRIGHT: MOV R0,A ;保存一个字符INC R0 ;修改指针DJNZ R7,WAIT ;全部字符接收完?CLR F0 ;F0 =0,接收数据全部正确 ERR: SETB F0 ;F0 =1,接收数据出错RET4.写一个子程序,其功能是将(R0)指出的两个RAM单元中的数转化为ASCII字符,并用查询方式从串行口上发送出去。答:设串行口以方式1工作,波特率为1200bit/s,晶振为11.059MHz。 ORG 0000HAJMP MAINORG 0100HMAIN: MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB
30、 TR1MOV SCON,#42HMOV R4,#2FS1: MOV A,R0ANL A,#0FHMOV DPTR,#TABMOVC A,A+DPTRFS2: JBC TI,FS3 SJMP FS2FS3: MOV SBUF,A INC R0 DJNZ R4,FS1FSJS: SJMP $TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,41H,43H,44H,45H,46H END5.试编写一个子程序将字符串“MCS-51 Microcomputer”装入外部RAM 8000H开始的显示缓冲区。答:ORG 0000HAJMP 0030HM
31、IAN: MOV DPTR,#8000HMOV R1,#0MOV R0,#20LOOP: MOV A,R1ADD A,#6MOVC A,A+PCMOVX DPTR,AINC DPTRINC R1DJNZ R0,LOOPSJMP $TAB:DBMCS-51 MicrocomputerEND6. 试设计一个n字节的无符号十进制数加法子程序,其功能为将(R0)和(R1)指出的内部RAM中两个n字节压缩BCD码无符号十进制数相加,结果存放于被加数单元中。子程序入口时,R0,R1分别指向被加数和加数的低位字节,字节数n存于R2,出口时R0指向和的最高位字节,CY为进位位。答: LEN EQU n ORG
32、 0000H AJMP MAIN ORG 0030H MAIN: MOV SP. #60H MOV R2, #LEN ACALL ADD_NBYTE SJMP $ ADD_NBYTE: CLR C LOOP: MOV A, R0 ADDC A, R1 DA A MOV R0, A INC R0 INC R1 DJNZ R2, LOOP RET END7.试设计一个n字节的无符号十进制数减法子程序,其功能是将R0指出的内部RAM中n字节无符号压缩BCD码减去(R1)指出的内部RAM中n字节无符号压缩BCD码,结果存放在被减数单元中。子程序入口时,R0,R1分别指向被减数和减数的低位字节,字节数n
33、存于R2,出口R0指向差的高位字节,CY=1为正,CY=0为负,结果为补码。答:以n=2为例。1. 将2字节无符号压缩BCD码被减数转换4位BCD码,存入60H63H,再转换为二进制数,存R3R4。MOV A,R0 ANL A,#0FHMOV 63H,AMOV A,R0SWAP A ANL A,#0FHMOV 62H,AINC R0MOV A,R0 ANL A,#0FHMOV 63H,AMOV A,R0SWAP A ANL A,#0FHMOV 62H,ADTB:MOV R0,#60HMOV R3,#3MOV R3,#0MOV A,R0MOV R4,ALOOP:MOV A,R4MOV B,#10
34、MUL ABMOV R4,AMOV A,BXCH A,R3MOV B,#10MUL ABADD A,R3MOV R3,AINC R0MOV A,R4ADD A,R0MOV R4,AMOV A,R3ADDC A,#0MOV R3,ADJNZ R2,LOOP2. 用相同程序可将2字节无符号压缩BCD码减数转换4位BCD码,存入60H63H,再转换为二进制数,存R5R6。3. 双字节无符号数减法程序,差存入R7R1NSUB1:MOV A,R4 CLR C SUBB A,R6 MOV R1,A MOV A,R3 SUBB A,R5 MOV R7,A JBC POUTCMPT:MOV A,R1;负数求补
35、 CPL A ADD A,#1 MOV R1,A MOV A,R7 CPL A ADDC A,#0 MOV R0,A DEC R0 MOV R0,R1 INC R0 RET8.试设计一个子程序,其功能为判断R2R3R4R5中的压缩BCD码十进制数最高位是否为0,若最高位为0,且该十进制数不为0,则通过左移使最高位不为0。略9.试设计一个双字节无符号整数乘法子程序,其功能将R3R2和R5R4相乘,积存于30H-33H单元。答:MULTB: CLR A MOV 30H, AMOV 31H, AMOV 32H, AMOV 33H, AMOV R0,#30HMOV A,R2MOV B,R4MUL AB
36、ACALL RADDMOV A,R2MOV B,R5MUL ABDEC R0ACALL RADDMOV A,R4MOV B,R3MUL ABDEC R0DEC R0ACALL RADDMOV A,R5MOV B,R3MUL ABDEC R0ACALL RADDSJMP $RADD: ADD A,R0MOV R0,AMOV A,BINC R0ADDC A,R0MOV R0,AINC R0MOV A,R0ADDC A,#00HMOV R0,ARET10.试设计一个子程序,其功能将无符号二进制整数R2R3R4R5除以R6R7,其商存放于30H,31H单元,余数存于R2R3。略11.试设计一个子程序,
37、其功能为将R0指出的内部RAM中6个单字节正整数按从小到大的次序重新排列。答:ORG 0200HMOV 30H,#6SUM1 EQU 30HSUM2 EQU 31HLOOP1: MOV A,R0 INC A MOV R1,A MOV SUM2,SUM1 DJNZ SUM1,LOOP2 SJMP DONELOOP2: DJNZ SUM2,LOOP3SJMP LOOP1LOOP3: MOV A,R0 CLR C SUBB A,R1 JC NEXT XCH A,R1 MOV R0,ANEXT: INC R0 INC R1 SJMP LOOP2DONE: END12.试设计一个子程序,其功能为应用查表
38、指令:MOVC A,A+PC,求累加器A的平方值,结果送入A,入口时A<15。答:MEMO:INC AMOVC A,A+PCRETTAB: DB 0,1,4,9,16,25,36,49DB 64,81,100,121,144,169,196,22513.试设计一个子程序,其功能将R0指出的内部RAM中双字节压缩BCD码转化为二进制数存放于R1指出的内部RAM中,并将结果再转化为BCD码存放于30H开始的单元中。答:先将压缩BCD码转化为BCD码存放于30H开始的单元中MOV R2,R0MOV A,R0PUSH ACCANL A,#0FHMOV 30H,APOP ACCSWAP AANL
39、A,#0FHMOV 31H,AINC R0MOV A,R0PUSH ACCANL A,#0FHMOV 32H,APOP ACCSWAP AANL A,#0FHMOV 33H,AMOV A,31H; ( R1)=(31H)*10+(30H)MOV B,#10MUL ABADD A,30HMOV R1,AMOV A,32H; (R1)+1)( R1)=(32H)*100+( R1)MOV B,#100MUL ABADD A,R1MOV R1,AINC R1MOV A,BADDC A,R1MOV R1,AMOV A,33H; (R1)+1)( R1)= (33H)*1000+(R1)+1)( R1)
40、MOV B,#232MUL ABDEC R1ADD A,R1PUSH PSWMOV R1,AINC R1MOV R1,BMOV A,33HMOV B,#3MUL ABPOP PSWADDC A,R1MOV R1,A14.若晶振为6MHz,用T0产生500us的定时中断,试编写有关的初始化程序和对时钟进行计数的T0中断服务程序。时钟计数单元为:30H,31H,32H,分别存放压缩BCD码的时分秒参数。答:晶振为6MHz,机器周期T为2s,500us=250T,T0可以工作在方式2。有关的初始化程序和对时钟进行计数的T0中断服务程序如下: ORG 0000H SJMP MAIN ORG 000BH
41、 SJMP PT0 ORG 0030HMAIN: MOV TMOD,#02H MOV TH0,#6 MOV IE,82H SETB TR0 CLR A MOV 30H,A MOV 31H,A MOV 32H,A MOV 33H,A MOV 34H,A MOV 35H,A MOV R7,#40 MOV R6,#50 SJMP $PT0: DJNZ R7,A1 MOV R7,#40 DJNZ R6,A1 MOV R6,#50 INC 33H CJNE 33H,#60,A2 MOV 33H,#0 MOV 30H,#0 INC 34H CJNE 34H,#60,A3 MOV 34H,#0 MOV 31H,#0 INC 35H CJNE 35H,#24,A4 MOV 35H,#0 MOV 32H,#0A1: RETIA2: MOV A,33H MOV B,#10 DIV AB SWAP A MOV 30H,B MOV R0,#30H XCHD A,R0 MOV 30H,A SJMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 挫折教育课程设计
- 液体包装机机械课程设计
- 公司纳税筹划课程设计
- 托管班假期活动课程设计
- 物流操作系统 课程设计
- 2025年小升初数学复习之小题狂练300题(选择题):测量(10题)
- 2024年统编版2024九年级物理下册阶段测试试卷含答案344
- 2024年人民版九年级生物上册阶段测试试卷含答案119
- 电子电路小白课程设计
- 涡轮驱动器课程设计
- 光伏电站安全管理及运行制度
- 儿童保健服务内容与流程
- 珠宝店贵重物品管理规范(大全)
- 库存管理中的供应与需求平衡
- 中建八局一公司新员工手册
- WB原理流程课件
- 智能安防智慧监控智慧管理
- 2024年甘肃兰州生物制品研究所有限责任公司招聘笔试参考题库附带答案详解
- 保单检视报告活动策划
- 室外消火栓安装工程检验批质量验收记录表
- 辽宁省沈阳市铁西区2023-2024学年七年级上学期期末考试英语试题(含听力)
评论
0/150
提交评论