单片机基础(第三版)课后答案李广弟
单片机基础 第3版 (李广第)课后习题答案

填空1、1110、0EH、10011100、011001002、43、255、-774、输入设备5、846、6553607、位、字节、字、Bit、Byte、word8、11111111、00100100、110110119、110、89、-115、-50选择1、D2、B3、C4、A5、B6、B7、B8、C9、B第二章填空1、PC、PC2、反相器、石英晶体、电容、低3、加电复位、手动复位、07H、0、00H、07H4、6、2、1、125、数据指针DPTR、DPH、DPL6、64KB1、D2、C3、C4、A5、C6、A7、D第三章一、填空1、1031H2、34H,1,1,13、P3.0=P1.0∧P1.1∧/P1.24、1100H5、26、30H 7AHA5HA5H75HA7HAAH 0 11FH 1 0AAH 0 120H 1 0D4H 1 149H 0 0二、选择1、C2、C3、B4、D5、C6、A三、判断× × √× × ×√ × ×√ × √√ √ √× √√× √ ×× √四、编程1、方案一:MOV C, /10HORL C, P1.0MOV D, CMOV C, 11HORL C,CYANL D,C方案二:ORL C,11HMOV 20H,CMOV C, 10HORL C, P1.0ANL C,20HMOV D,C(D、E 需要位定义;用A做位传送;要先将CY存起来,否则CY改变)2、方案一:MOV C,ACC.2ANL C,P2.7MOV E,CMOV C,ACC.1ANL C,P2.0ORL E,C方案二:MOV C,P2.7ANL C,ACC.2ORL C,ACC.1ANL C,P2.03、方案一:MAIN: MOV R0,#20H MOV R7,#04H LOOP: MOV @R0,#0F0H INC R0DJNZ R7,LOOP HERE:SJMP $方案二:MOV 20H,#0F0HMOV 21H,#0F0HMOV 22H,#0F0HMOV 23H,#0F0H4、方案一:MOV R0,#mINC R0ADD m,@R0DA m方案二:MOV A,mADDC A,m+1DA AMOV m,A5、方案一:MAIN: MOV R0,#data MOV R7,#0AH MOV A,#00H LOOP: ADD A,@R0 INC R0DJNZ R7,LOOP MOV sum,A HERE:SJMP HERE6、方案一:MOV A,R0MOV R1,AANL A,#80HMOV A,R1CPL AINC ASETB ACC.7MOV R1,ADONE:RET方案二:START:CLR CYMOV P0,R0MOV C,P0.7MOV A,#80HDL0: SUBB A,P0DL1: JC第四章一、填空1、25H,40H, 03H2、2914us3、(X∧Y)∨4、(A)=(30H),(A)>(30H),(A)<(30H)二、编程1、方案一:MOV R0,#inbufMOV DPTR,#outbuf MOV R7,#10HCR EQU #0DH LOOP: MOV A,@R0 CJNE A,CR,NEXT SJMP DONE NEXT: MOVX @DPTR,A INC R0INC DPTRDJNZ R7,LOOP DONE:END方案二:MOV R0,#inbufMOV R1,#outbuf MOV R2,#10HCR EQU #0DH LOOP: MOV A,@R0 MOVX @R1,AINC R0INC R1DJNZ R2,LOOP2、方案一:MOV DPTR,#listMOV A,@DPTR LOOP: INC DPTRMOV R0,@DPTR CJNE R0,#FFH,NEXT1 MOV R1,ARETNEXT1:CJNE A,R0,NEXT2 NEXT2:JC, LOOPMOV A,R0SJMP LOOP方案二:CLR CMOV R0,#listMOV A,@R0LOOP: CJNE R0,#FFH,LOOP1MOV R1,ARETLOOP1:INC R0SUBB A,@R0JC, LOOPMOV A,R0SJMP LOOP(DPTR用于内部传送的时候是传送16位数据)3、方案一:MOV A,XANL A,#80HJNE NEXT2NEXT1:MOV A,XDEAL1:MOV A,XADD A,YSJMP DONE NEXT2:MOV A,X ANL A,#01H JNZ DEAL3 DEAL4:MOV A,X XRL A, Y SJMP DONE DEAL3:MOV A,X ANL A,YDONE:MOV Z,A END4、方案一:MOV A, #byteMOV R7, #08HMOV DPTR, #buf LOOP: PUSH ACCANL A,#80HJNZ DAEL1DEAL0:MOVX @DPTR,#30H SJMP NEXTDEAL1:MOVX @DPTR,#31H NEXT:INC DPTRPOP ACCRL ADJNZ R7,LOOPEND方案二:MOV R0,#bufMOV R1,#01HMOV R2,#08HMOV A, #byteLOOP: ANL A, R1JNZ LOOP1MOVX @R0, #30HINC R0RL R1DJNZ R2,LOOPRETLOOP1:MOVX @R0, #31H INC R0RL R1DJNZ R2,LOOPRET(有些人不是按位,没看清题意)5、方案一:MOV A,DAACALL SQR MOV DC,A MOV A,DB ACALL SQR ADD A,DC MOV DC,A HERE: SJMP $ SQR: MOV B,A MUL AB RET方案二:MOV A,DB ACALL SQR MOV DC,A RETMOV A,DC ACALL SQR ADD A,DC MOV DC,A RETORG 8100HMUL A,R0(部分同学没写SQR子程序)6、方案一:MOV R0,#42HMOV R1,#52HMOV R7,41LOOP: MOV A,@R0 SUBB A,@R1JNZ NEXT2INC R0INC R1DJNZ R7,LOOPNEXT1:MOV 40H,#00H SJMP DONENEXT2:MOV 40H,#FFH DONE: END方案二:MOV R0,#42HMOV R2,41HLOOP: CJNE A,52H,LOOP1 INC R0INC R1MOV A,@R0DJNZ R2,LOOPMOV 40H,#00HRETLOOP1:MOV 40H,#FFH RET7、方案一:MOV DPTR,#tableMOV R7,#0AH LOOP: MOVX A,@DPTR SETB ACC.7MOVX @DPTR,AINC DPTRDJNZ R7,LOOPEND第五章一、填空1、分时2、INT0,T0,INT1,T1,串口3、PC,PC,ROM4、中断请求,中断查询5、122,62.5K6、100ms7、111,1008、T1,2,FFH,001BH二、选择1、D2、C3、A4、A5、D6、C7、D第六章一、填空1、8,16,13,32、高电平,低电平,高阻抗3、256,数据,4K,程序,64K,数据,64K,程序4、16,P0,P25、ALE, , ,, , ALE,六6、、16,37FFH7、外存储设备8、片选信号9、11,ALE,二、选择1、D2、A3、D4、D5、C6、A7、D8、A第七章填空题1.数据ALE RD WR2.无条件传送查询中断无条件3.缓冲锁存4.13 115.高口方式定义C位置位/复位6.方式1输出方式1输出输出输入7.10100111单选题DACDBB。
单片机 第三版 答案 李广弟 北京航空航天大学出版社【详细版!!!】

单片机基础(详细版)第1章计算机基础知识(一)填空题十进制数14对应的二进制数表示为(1110B),十六进制数表示为(0EH)。
十进制数-100的补码为(9CH),+100的补码为(64H)。
在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。
8位无符号二进制数能表示的最大十进制数是(255)。
带符号二进制数11001101转换成十进制数是(-51)。
可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。
已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。
若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。
在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。
设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A∧B=(00100100),A⊕B=(11011011)。
机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+141或-115),机器数10001101的真值是(+206或-50)。
说明:机器数是指计算机中使用的二进制数,机器数的值称为真值。
机器数可表示无符号数也可表示带符号数,其中计算机中的带符号数一般为补码形式。
1000 1101若为无符号数,则其真值为+141;若为带符号数,由于最高位(符号位)为1,所以为负数(补码形式),则其真值为-115。
(二)单项选择题1. 用8位二进制补码数所能表示的十进制数范围是(D)(A)-127 ~ +127 (B)-128 ~ +128(C)-127 ~ +128 (D)-128 ~ +1272. 下列等式中,正确的是(B)(A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B(C)1 KB = 1024 M B (D)1 MB = 1024 B3. 程序与软件的区别是(C)(A)程序小而软件大(B)程序便宜而软件昂贵(C)软件包括程序(D)程序包括软件4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A)(A)地址(B)字节(C)列号(D)容量5. 8位二进制数所能表示的最大无符号数是(B)(A)256 (B)255 (C)128 (D)1276. 下列4个无符号数中,最小的数是(B)(A)11011001(二进制)(B)37(八进制)(C)75(十进制)(D)24(十六进制)7. 下列字符中,ASCII码最小的是(B)(A)a (B)A (C)x (D)X8. 下列字符中,ASCII码最大的是(C)(A)a (B)A (C)x (D)X9. 有一个数152,它与十六进制数6A相等,那么该数是(B)(A)二进制数(B)八进制数(C)十进制数(D)十六进制数第2章80C51单片机的硬件结构(一)填空题通过堆栈实现子程序调用,首先要把(PC)的内容入栈,以进行断点保护。
单片机原理及应用习题答案 (第三版)

第一章习题参考答案1-1:何谓单片机?与通用微机相比,两者在结构上有何异同?答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:(1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。
例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。
CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。
单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。
例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。
(2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。
现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。
单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。
(3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。
用户通过标准总线连接外设,能达到即插即用。
单片机应用系统的外设都是非标准的,且千差万别,种类很多。
单片机的I/O接口实际上是向用户提供的与外设连接的物理界面。
用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
单片机原理及应用第三版课后答案

单片机原理及应用第三版课后答案1. 第一章题目答案:a) 单片机的定义: 单片机是一种集成电路,具有CPU、存储器和输入输出设备等功能,并且可以根据程序控制进行工作的微型计算机系统。
b) 单片机的核心部分是CPU,它可以通过执行程序指令来完成各种计算、逻辑和控制操作。
c) 存储器分为程序存储器和数据存储器,程序存储器用于存放程序指令,数据存储器用于存放数据和暂存中间结果。
d) 输入输出设备用于与外部环境进行数据交换,如开关、LED、数码管等。
e) 单片机的应用广泛,包括家电控制、智能仪器、工业自动化等领域。
2. 第二章题目答案:a) 单片机中的时钟系统用于提供CPU运行所需的时序信号,常见的时钟源有晶体振荡器和外部信号源。
b) 时钟频率决定了单片机的运行速度和精度,一般通过控制分频器、定时器等来调整时钟频率。
c) 单片机中的中断系统用于处理紧急事件,如外部输入信号、定时器溢出等,可以提高系统的响应能力。
d) 中断源包括外部中断、定时器中断和串口中断,通过编程设置中断向量和优先级来处理不同的中断事件。
e) 中断服务程序是处理中断事件的程序,包括保存现场、执行中断处理和恢复现场等步骤。
3. 第三章题目答案:a) I/O口是单片机与外部设备进行数据交换的接口,包括输入口和输出口两种类型。
b) 输入口用于接收外部信号,如开关、传感器等,可以通过编程设置输入口的工作模式和读取输入口的状态。
c) 输出口用于控制外部设备,如LED、继电器等,可以通过编程设置输出口的工作模式和输出口的状态。
d) I/O口的工作模式包括输入模式、输出模式和双向模式,可以根据具体应用需求设置相应的模式。
e) 串行通信接口是单片机与外部设备进行数据传输的一种常见方式,包括UART、SPI和I2C等多种通信协议。
4. 第四章题目答案:a) 定时器的作用是产生指定时间间隔的定时信号,可以用于延时、计时、PWM等功能。
b) 单片机的定时器一般由计数器和一些控制寄存器组成,通过编程设置定时器的工作模式和计数值。
单片机原理及应用教程第3版习题课后答案

《单片机原理及应用程序》(第三版)习题参考答案第一章1. 为什么计算机要采用二进制数?学习十六进制数的目的是什么?在计算机中,由于所采用的电子逻辑器件仅能存储和识别两种状态的特点,计算机内部一切信息存储、处理和传送均采用二进制数的形式。
可以说,二进制数是计算机硬件能直接识别并进行处理的惟一形式。
十六进制数可以简化表示二进制数。
2.(1) 01111001 79H (2) 0.11 0.CH (3) 01111001.11 79.CH(4) 11101010.101 0EA.AH (5)01100001 61H (6) 00110001 31H3.(1) 0B3H (2)80H (3) 17.AH (4) 0C.CH4.(1)01000001B 65 (2) 110101111B 4315.(1) 00100100 00100100 00100100 (2) 10100100 11011011 11011100(5) 10000001 11111110 111111116.00100101B 00110111BCD 25H7. 137 119 898.什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。
一般情况下,可分为系统总线和外总线。
系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。
地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。
在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。
控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。
CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。
单片机基础第3版

+5V
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.4 P1.5 P3.2 AT89S51
红 黄 绿
5.3 80C51 单片机的定时器/计数器
5.3.1 定时器/计数器的计数和定时功能 1. 计数功能 外部计数脉冲由T0(P3.4)和T1(P3.5)引脚 引入。每个机器周期的S5P2拍节对计数脉输入引 脚进行采样。计数脉冲负跳变有效,若前一机器 周期采样为高电平,后一机器周期采样为低电平, 即为一个计数脉冲。计数频率不能高于振荡脉冲 频率的1/24。 2. 定时功能 计数脉冲来自单片机内部,每个机器周期计数 一次。计数频率为振荡频率的1/12。
涉及四个特殊功能寄存器
1. 2. 3. 4.
1. 中断允许控制寄存器IE
IE
位地址 AFH
EA
AEH
-
ADH
-
ACH
ES
ABH
ET1
AAH
EX1
A9H
ET0
A8H
EX0
(A8H) 位符号
①EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; EA=1,中断总允许,各中断的禁止与允许取决于各自允 许控制位。 ②EX0和EX1—外部中断的中断允许控制位。 EX0(EX1)=0,禁止外部中断; EX0(EX1)=1,允许外部中断。 ③ET0和ET1—定时器中断允许控制位。 ET0(ET1)=0,禁止定时器中断; ET0(ET1)=1,允许定时器中断。 ④ES—串行口中断允许位。 ES=0,禁止串行口中断;ES=1,允许串行口中断。
参考程序:
MOV TMOD, #00H ;设置T1为工作方式0 MOV TH1, #0FCH ;设置定时器初值 MOV TL1, #03H MOV IE, #00H ;禁止中断 SETB TR1 ;启动定时 JBC TF1, LOOP1 ;查询溢出标志 AJMP LOOP MOV TH1, #0FCH ;重置定时器初值 MOV TL1, #03H CPL P1.0 ;输出取反 AJMP LOOP ;重复循环
单片机基础(第3版)——第6章

线选法寻址的最大特点是简单,适用于规模较小的单片 机系统。假定单片机系统分别扩展了程序存储器芯片 2716、数据存储器芯片6116、并行接口芯片8255、 键盘/显示器接口芯片8279和D/A转换芯片0832,则采 用线选法寻址的扩展片选连接下图所示。
6.1.1 单片机并行扩展总线
存储器扩展中包括程序存储器和数据存储器,其余所 有扩展内容统称为I/O扩展。 由扩展系统结构图可知,扩展是通过系统总线进行的。 所谓总线就是连接单片机各扩展部件的一组公共信号 线,是系统共享的通路,通过总线把各扩展部件连接 起来,以进行数据、地址和控制信号的传送。
单片机并行扩展系统结构图
(2)存储单元地址分析
只要把最低地址和最高地址找出来,扩展的存储器在存 储空间中所占据的地址范围即可确定。 把P2口中没有用到的高位地址线假定为0状态,则所扩 展的2716芯片的地址范围是: 最低地址 8000H 最高地址 87FFH 由于P2.6~P2.3的状态与2716芯片的寻址无关,所以在 该芯片被寻址时,P2.6~P2.3可以为任意状态,即 从0000~1111共有16种状态组合。 表明2716芯片对应着16个地址区间,即8000H~87FFH, 8800H~8FFFH,9000H~97FFH,9800H~ 9FFFH,A000H~A7FFH,A800H~AFFFH…在这 些地址区间内都能访问到2716,这就是线选法存在 的地址区间重叠问题。
芯片6116引脚图
2. 数据存储器扩展连接
数据存储器扩展与程序存储器扩展在数据线、地址线的连接上是完 全相同的,所不同的是控制信号。数据存储器则使用/RD和/WR 分别作为读/写选通信号。
单片机原理及应用习题答案 (第三版)

第一章习题参考答案1-1:何谓单片机?与通用微机相比,两者在结构上有何异同?答:将构成计算机的基本单元电路如微处理器(CPU)、存储器、I/O接口电路和相应实时控制器件等电路集成在一块芯片上,称其为单片微型计算机,简称单片机。
单片机与通用微机相比在结构上的异同:(1)两者都有CPU,但通用微机的CPU主要面向数据处理,其发展主要围绕数据处理功能、计算速度和精度的进一步提高。
例如,现今微机的CPU都支持浮点运算,采用流水线作业,并行处理、多级高速缓冲(Cache)技术等。
CPU的主频达到数百兆赫兹(MHz),字长普遍达到32位。
单片机主要面向控制,控制中的数据类型及数据处理相对简单,所以单片机的数据处理功能比通用微机相对要弱一些,计算速度和精度也相对要低一些。
例如,现在的单片机产品的CPU大多不支持浮点运算,CPU还采用串行工作方式,其振荡频率大多在百兆赫兹范围内;在一些简单应用系统中采用4位字长的CPU,在中、小规模应用场合广泛采用8位字长单片机,在一些复杂的中、大规模的应用系统中才采用16位字长单片机,32位单片机产品目前应用得还不多。
(2) 两者都有存储器,但通用微机中存储器组织结构主要针对增大存储容量和CPU对数据的存取速度。
现今微机的内存容量达到了数百兆字节(MB),存储体系采用多体、并读技术和段、页等多种管理模式。
单片机中存储器的组织结构比较简单,存储器芯片直接挂接在单片机的总线上,CPU对存储器的读写按直接物理地址来寻址存储器单元,存储器的寻址空间一般都为64 KB。
(3) 两者都有I/O接口,但通用微机中I/O接口主要考虑标准外设(如CRT、标准键盘、鼠标、打印机、硬盘、光盘等)。
用户通过标准总线连接外设,能达到即插即用。
单片机应用系统的外设都是非标准的,且千差万别,种类很多。
单片机的I/O接口实际上是向用户提供的与外设连接的物理界面。
用户对外设的连接要设计具体的接口电路,需有熟练的接口电路设计技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CPL A;按位取反
ADD A,#01H;+1
MOV R1,A
END
第四章
一、填空题
1. 25H 40H 03H
2.2.914ms
3.略
4.(A)=((30H) (A) >(30H) (A) < (30H)
5. 32.87ms
编程题
1.把长度为10H的字符串从内部RAM的输入缓冲区inbuf向位物外部RAM的输出缓冲区outbuf传送,一直进行到遇见回车或整个字符串传送
完毕。试编程实现。
ORG 0030H
MOV R0,#inbuf
MOV R1,#outbuf
MOV R4,#10H
LOOP:MOV A,@R0 ;从内部RAM取数
CJNE A,#0DH,LL ;是否为回车符CR
SJMP STOP ;是转停止传送
LL: MOVX @R1,A ;不是则传送到外部RAM
INC R0
LOOP2: MOVX @DPTR,A
MOV A,R7
INC DPTR
DJNZ R5,LOOP
5.编程实现运算式c = a2+b2假定a、b、c 3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用。
(内部RAM的DA、DB、DC单元设为20H 21H 22H)
ORG 0000H
单元中。变换后得到的8个ASCII码存放在外部RAM以buf始的存储单元中去。
ORG 0030H
MOV R0,#byte
MOV DPTR,#buf
MOV R5,#08H
MOV A,@R0
LOOP: RLC A
MOV R7,A
JC LOOP1
MOV A,#30H
SJMP LOOP2
LOOP1: MOV A,#31H
INC R1
DJNZ R4,LL;沒传送完则循环
STOP: SJMP $
2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。
(3AH存放在运行程序时的最小的数)
ORG 0030H
MOV R0,#list
MOV A,@R0 ;取第一个正数
MOV 40H ,#00H
SJMP DD
LK: MOV 40H,#0FFH
DD: SJMP DD
7.外部RAM首址为table的数据表中,有10个字节的数据。编程将每个字节的最高位无条件地置“1”。
ORG 0030H
MOV DPTR,#table
MOV R6,#10
LOOP:MOVX A,@DPTR
LOOP2: MOVX @DPTR,A
MOV A,R7
INC DPTR
DJNZ R5,LOOP
5.编程实现运算式c = a2 2 +b假定a、b、c 3个数分别存放在内部RAM的DA、DB、DC单元中,别有平方运算子程序调用。
(内部RAM的DA、DB、DC单元设为20H 21H 22H)
ORG 0000H
SWAP A
MOV 30H ,A;高低四位调一下,放回原处
MOV A,31H
ANL A,#0FH
ORL A,30H;合并起来
MOV 30H,A
END
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。
(设data=30H, sun =50H)
ORG 0000H
MOV A,30H
ANL A,#0FH;把它的高四位清零
SWAP A
MOV 30H ,A;高低四位调一下,放回原处
MOV A,31H
ANL A,#0FH
ORL A,30H;合并起来
MOV 30H,A
END
5.将内部RAM中从data单元开始的10个无符号数相加,其和送sum单元多,假定相加结果小于255。编写程序完成。
ORG 0000H
MOV R0,#2FH ;指向前一个单元
MOV R5,#0AH;循环10次
CLR A;先加到A中
LOOP: INC R0
ADD A,@R0
DJNZ R5,LOOP
MOV 50H,A
END
6.假定8位二进制带符号数丰于R0中,要求编写一个求补程序,所得补码入入R1中。
ORG 0000H
ORG 0000H
MOV A,20H
CLR C
RL A
JC FS ;移到负数处处理
RR A
RR A ;第0位移到C再判定一下是不是1
JC ZJS ;到正奇数处
MOV A,20H
ORL A,21H
MOV 22H,A
SJMP OK
ZJS: MOV A,20H
ADD A,21H
MOV 22H,A
SJMP OK
MOV 3BH,A
SJMP $
3.内部RAM的X,Y单元中各存放一个带符号的数,试编程实现按如下条件进行的运算,并将结果存入Z单元中。
若X为正奇数,Z=X+Y;
若X为正偶数,Z=X∨Y;
若X为负奇数,Z=X∧Y;
若X为负偶数,Z=X⊕Y。
分析:负数:第7位为1,正数:第7位为0
奇数:第0位为1,偶数:第0位为0
完毕。试编程实现。
ORG 0030H
MOV R0,#inbuf
MOV R1,#outbuf
MOV R4,#10H
LOOP:MOV A,@R0 ;从内部RAM取数
CJNE A,#0DH,LL ;是否为回车符CR
SJMP STOP ;是转停止传送
LL: MOVX @R1,A ;不是则传送到外部RAM
INC R0
MOV R5,#04H;四个数
LOOP: INC R0
MOV @R0,#0F0H ;写入
DJNZ R5,LOOP ;循环4次
END
4.把m和m+1单元存有两个BCD数,将它们合并到m单元中,编写程序完成。
(设m=30H,高位在30H,低数在31H)
ORG 0000H
MOV A,30H
ANL A,#0FH;把它的高四位清零
果两个字符串相等,则置内部RAM 40H单元为00H;否则置40H单元为FF。
ORG 0030H
MOV R0,#42H
MOV R1,#52H
MOV R7,41H ;字符串长度
LOOP: MOV A,@R0
MOV 30H,@R1
CJNE A,30H,LK
INC R0
INC R1
DJNZ R7,LOOP
FS: MOV A,20H
CLR C
RR A
JC FJS ;第0位是1,移到正奇数处理
MOV A,20H
XRL A,21H
MOV 22H,A
SJMP OK
FJS: MOV A,20H
ANL A,21H
MOV 22H,A
OK: END
4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte
MOV A,20H
PUSH ACC
AJMP SQR
POP ACC
MOV 22H,A
MOV A,21H
PUSH ACC
AJMP SQR
POP ACC
ADD A,22H
MOV 22H,A
END
6、比较两个ASCII码字符串是否相等。字符串的长度在内部RAM 41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H。如
LOOP: INC R0 ;指向下一个正数
MOV 3AH,@R0
CJNE A,3AH,CHK ;前一个数与后一个数比较
CHK: JC LOOP1 ;前一个数小,则转
MOV A,@R0 ;前一个数大,取后一个数
LOOP1: XCH A,3AH
CJNE A,#0FFH,LOOP
XCH A,3AH ;取最小数
LOOP: INC R0 ;指向下一个正数
MOV 3AH,@R0
CJNE A,3AH,CHK ;前一个数与后一个数比较
CHK: JC LOOP1 ;前一个数小,则转
MOV A,@R0 ;前一个数大,取后一个数
LOOP1: XCH A,3AH
CJNE A,#0FFH,LOOP
XCH A,3AH ;取最小数
INC R1
DJNZ R4,LL;沒传送完则循环
STOP: SJMP $
2、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。编程实现在表中找出最小数。
(3AH存放在运行程序时的小的数)
ORG 0030H
MOV R0,#list
MOV A,@R0 ;取第一个正数
FS: MOV A,20H
CLR C
RR A
JC FJS ;第0位是1,移到正奇数处理
MOV A,20H
XRL A,21H
MOV 22H,A
SJMP OK
FJS: MOV A,20H
ANL A,21H
MOV 22H,A
OK: END
4、把一个8位二进制数的各位用ASCII码表示之(亦即为“0”的位用30H表示,为“1”的位用31H表示)。该数存放在内部RAM中byte
ORG 0000H
MOV A,20H
CLR C
RL A
JC FS ;移到负数处处理
RR A
RR A ;第0位移到C再判定一下是不是1
JC ZJS ;到正奇数处
MOV A,20H
ORL A,21H
MOV 22H,A