MOV A,@R0 ADDC A,@R1 MOV @R0,A MOV 00H,C
答:双字节无符号数加法。被加数存放在内部RAM的51H、50H单元,加数存放在内部RAM的61H、60H单元,相加的结果存放在内部RAM的51H、50H单元,进位存放在位寻址区的00H位中。
8、已知A = 0F8H,当执行ADD A,#0A9H指令后,PSW中的OV、CY、AC、P各为多少?若是有符号数,A中的结果用十进制表示是多少? 答: OV:0、CY:1、AC:1、P:1 A:-95
9、试问下列程序执行后累加器A和PSW中内容是什么? MOV A, #92H ADD A, #0A4H 答:A=36H ; PSW=84H
六、编程序
1.请使用位操作指令,实现下列逻辑操作: P1.5=ACC.2∧P2.7∨ACC.1∧P2.0
2.在外部RAM首地址为TABLE的数据表中有10个字节数据,请编程将每个字节的最高位无条件地置1。
3.已知内部RAM 30H单元开始存放20H个数据,将其传送到外部RAM的0000H单元开始的存储区,请编程实现。
4.已知8个无符号数之和存于R3R4,求其平均值,结果仍存于R3R4中,请编程实现(R3为高字节)。
5.两个字符串分别存放在首地址为42H和52H的内部RAM中,字符串长度放在41H单元,请编程比较两个字符串。若相等,则把数字00H送40H单元,否则把0FFH送40H单元。
6.请编一能求20H和21H单元内两数差的绝对值,并把它保留在内部RAM的30H单元的程序。 编程题参考答案
1.先进行与操作,再进行或操作程序如下: MOV C,ACC.1 ANL C,P2,0 MOV 12H,C MOV,C,A CC.2 ANL C,P2.7 ORL C,12H
9
MOV P1.5,C RET
2. MOV R2,#10
MOV DPRT,#TABLE
LOOP: MOVX A,@DPRT;取一数 ORL A,#80H;最高位置1 MOVX @DPTR,A;写回原地址 1NC DPTR;处理下一单元 DJNZ R2,LOOP RET
3. MOV R0,#30H MOV R1,#00H MOV R2,#20H LOOP: MOV A,@R0;取数 MOVX @R1,A;存数 1NC R0 1NC R1
DJNZ R2,LOOP RET
4.利用移位指令作除8操作,程序如下: MOV R2,#3 LOOP:CLR C MOV A,R3
RRC A ;高字节除以2,末位移入C,高位补0 MOV R3,A ;暂存高字节 MOV A,R4
RRC A ;低字节除以2,高字节末位移入低字节高位 MOV R3,A DJNZ R2,LOOP RET
5.有一个字节不等,整个字符串不相等,所有字节相等,两字串才相等 MOV R0,#42H MOV R1,#52H LOOP:MOV A,@R0
CLR C ;不相等,FFH→40H SUBB A,@R1
JNZ LOOP1 ;相等时,比较下一字节 INC R0 INC R1
DJNZ 41H,LOOP
MOV 40H,#0 ;所有字符均相等,则两字串相等。 RET
LOOP1:MOV 40H,#0FFH RET
10
6 ORG 1200H
CLR C ;Cy清零 MOV A,20H
SUBB A,21H ;两数差送A
JNB ACC.7,NEXT ;若正,则NEXT CPL A ;若负,则求补 INC A
NEXT:MOV 30H,A ;送回绝对值
SJMP $ END
七、综合应用题
1、设计一个80C31单片机最小系统。配备:时钟电路、上电及复位电路、8K EPROM、8K RAM。要求:画出电路图、标明必须的信号名称、芯片型号及其连接。(答略)
2、利用8155构建4×8键盘接口。画出与按键相关部分连接示意图,详细解释键扫描的过程。(答略) 3、设80C51单片机晶振频率为6MHz,定时器T0工作于方式1。要求80C51以中断方式工作并在P1.0引脚输出周期为500微秒的方波。试:计算初值、编写含有初始化功能的主程序和完成方波输出的中断服务程序。 答:机器周期为2微秒。定时时间250微秒。需要计数N=125
初值为65536-125=65411=FF83H,所以(TH0)=FFH,(TL0)=83H 工作方式设置:0000 0001B,即(TMOD)=01H 主程序: 中断服务程序: (整体结构!) MOV TMOD,#01H MOV TH0,#0FFH MOV TH0,0FFH MOV TL0,#83H MOV TL0,#83H CPL P1.0 SETB EA RETI SETB ET0 SETB TR0 SJMP $
11

