单片机补充作业
单片机作业

姓名:滕建国班级:2010045201 学号:201004520105 一、九题目:设(70H)=60H,(60H)=20H.P1口为输入口,当输入状态为B7H,执行下面程序。
Mov R0,#70H MOV A,@R0 MOV R1,A MOV B,@R1 MOV P1,#0FFH MOV @R0,P1试分析(70H)﹑(B)﹑(R1)﹑(R0)的内容是什么。
答案:(70H)=0 (B)=20H (R1)=60H (R0)=0十题:试分析下列程序的功能。
CLR AMOV R2,AMOV R7,#4 LOOP:CLR CMOV A,R0RLC AMOV R0,AMOV A,R1 RLC AMOV R1,A MOV A,R2 RLC AMOV R2,A DJNZ R7,LOOP答案:把R0 R1 R4的内容代进位左移4位。
姓名:滕建国班级:2010045201 学号:201004520105 二﹑十二的题目:分析以下程序段,何时转向LABEL1?何时转向LABEL2?MOV A,R0CPL AJZ LABEL1INC AJZ LABEL2答案:(P0=0 时转向LABEL1 (P0+1=0时转向LABEL2 十三的题目:有4个变量U﹑V﹑W﹑X分别从P1.0~P1.3输入阅读如下程序,写出逻辑表达式并画出逻辑电路图。
MOV P1,#0FFH MOV C,P1.0 ANL C,P1.1 CPL C MOV ACC.0.C MOV C,P1.2 ORL C,ACC.0 MOV F,C题目:逻辑表达式:P(1.0) *P(1.1)+[P(1.2)+P(1.3)]姓名:滕建国班级:2010045201 学号:201004520105 三﹑十四的题目:若(R1)=30H, (A)=40H,(30H)=60H,(40H)=08H.试分析执行下列程序段后上述各单元内容的变化。
MOV A,@R1MOV @R1,40HMOV 40H,AMOV R1,#7F答案:A=60H R1=08H (40H)=60H R1=7FH十九的题目:若CY=1,P1=10100011,P3=01101100B.试指出执行下列程序段后,CY﹑P1口及P3口内容的变化情况。
烟台大学单片机第3章作业及答案

4、MOVC A , @A+DPTR与 MOVX A , @DPTR
指 令有何不同?
答: MOVC A , @A+DPTR: 为程序存储器内容送累加器指令.
MOVX A , @DPTR:为外部数据存储器
内容送累加器指令. 5、AJMP , LJMP, SJMP指令功能上有何不同? 答: AJMP是2KB范围内的无条件短跳转指令. LJMP是64KB范围内的无条件长跳转指令. SJMP是256B范围内的相对转移指令.
;(A)=58H ;(A)=72H
ADDC A , 40H
;(A)=8CH
第 3 章 MCS - 51单片机指令系统
10、设 A=83H , R0=17H , (17h)=34H,执行下面程序段后,
(A)=?
解: ANL A , #17H ;(A )= 03H
ORL 17H , A
XRL A ,@R0 CPL A 结果:( A ) = 0CBH
第 3 章 MCS - 51单片机指令系统
ORG
0000H
12、试编写一程序,
MOV
R0, #1FH
查找内部RAM
单元的20H~50H 中是否有0AAH
MOV R2,#49(31H);单元长度 LOOP: INC R0 @R0 #0AA, NEXT0 ;起始单元
MOV A, CJNE A,
这一数据,若
第 3 章 MCS - 51单片机指令系统
9.分析以下程序每一条指令执行结果: MOV MOV A, #25H ;(A)=25H ;(R1)=33H ;(40H)=1AH R1 , #33H
MOV 40H , #1AH
MOV R3 , #40H
ADD A, R1 ADDC A , @R3
补充作业

(2)、设20H单元开始存放了以下10个数据:42H,51H,
53H,41H,43H,42H,49H,50H,41H,48H,
下列程序后,(1FH)= MOV R0,#20H MOV R7,#0AH LL2:MOV A,@R0 CJNE A, #41H, LL MOV 1FH, R0 SJMP COM LL: INC R0 DJNZ R7, LL2 MOV 1FH, #0FFH COM: SJMP $ H
5.SP=50H.,(50H)=22H, 子程序ASUB入口地址为0368H ORG 0684H HERE: ACALL ASUB SP=_______H,(SP)=---------H PC=___ ___ H (51H)=______ H (50H)=_____ H (52H)=______ H
CY=______.
ORL A, #08H
MOV 28H, A 等效的一条指令是_______或 H。
2.已知PSW=91H
(00H)=05H.
执行:
(11H)=06H.
(10H)=AAH
MOV A, #0C3H ADD A, R0 MOV R1, A 后
A=____ 。
6. CLR C MOV R2, #03H LOOP:MOV A, @R0 ADDC A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, LOOP JNC NEXT MOV @R0, #01H SJMP $ NEXT:DEC R0 LJMP $
设R0=20H,
R1=25H
当NUM1>NUM2时, M= H;N= H;CY= 当NUM1<NUM2时, M= H;N= H;CY= 当NUM1=NUM2时, M= H;N= H;CY=
单片机作业及参考答案

习题1、BCD 码加法编程。
X 、Y 为4位压缩BCD 码,求 Z=X+Y 。
设X 存在片内RAM 40H 、41H 单元,Y 存在42H 、43H 单元,编程求 Z=X+Y ,并存入片内RAM 单元44H 、45H 、46H 。
ADB :MOV A ,40H ADD A ,42H DA A MOV 44H ,A MOV A ,41H ADDC A ,43H DA A MOV 45H ,A MOV A ,#0 ADDC A ,#0 MOV 46H ,A RET习题2:编程求双字节减法。
设X 、Y 存在片内 RAM 40H 起始单元,计算Z=X-Y 。
SUBD :CLR C MOV A ,40H SUBB A ,42H MOV 44H ,A MOV A ,41H SUBB A ,43H MOV 45H ,A MOV A ,#0 SUBB A ,#0 MOV 46H ,A RET 习题3:编程完成对DPTR 的减1操作.MOV A ,DPLCLR CSUBB A ,#1MOV DPL ,AMOV A ,DPHSUBB A ,#0MOV DPH ,A习题4:如何将累加器A 中的数据高4位清0,低位不变?ANL A ,#0FH习题5:如何将寄存器R2中的数据奇数位取反,偶数位不变?MOV A ,R2XRL A ,#10101010BMOV R2,A;取被加数低字节 ;加上加数低字节 ;BCD 十进制调整 ;保存和的低字节 ;取被加数高字节 ;加上加数高字节 ;BCD 十进制调整 ;保存和的高字节 ;求高字节进位 ;子程序结束 ;清借位标志;取被减数低字节;减去减数低字节;保存差的低字节;取被减数高字节;减去减数高字节;保存差的高字节;保存差的借位标志;;子程序结束习题:计算程序中转移指令的相对偏移量 e ,并判断是否超出转移范围。
地址源程序2130H LOOP:……21B0H SJMP LOOP解:e = 目的指令地址-(转移指令地址+指令字节数)= 目的地址-PC当前值=2130H-(21B0H+2)=-130﹤-128故超出转移范围。
at89s51单片机作业a89s51单片机作业at89s51单片机作业at89s51单片机作业

MOV DPTR,#2000H
xxxxxxxx
MOVX A,@DPTR
∨ 00000001
ORL A,#01H
xxxxxxx1
ARL A,#7FH XRL A,#7EH
∧ 01111111 0xxxxxx1
MOVX @DPTR,A
1 )设有100个单字节数组成的数据块 ,存放在外部RAM中其起始 地址为1000H ,将数据块传送至6000H为起始地址的区域中。
程序: ORG 0000H
MOV R0,#64H MOV DPL,#00H
LOOP: MOV DPH,#10H
DJNZ R0 ,LOOP
SJMP $
END
MOVX A,@DPTR
2)A > 20; CLR C CJNE A, #14H ,L0
SJMP FINISH
L0: JNC COMP
COMP :XXXXXXX
FINISH :XXXXXXX
第四章 作业讲解
1.试编一程序若累加器A中内容分别满足一下条件 , 则程序转至 标号为COMP的存储单元 。设A中为无符号数
3)A ≤ 20;
第2章 作业
P40
2 ,3 ,4 ,6 ,7
第3章 作业1
1.将寄存器R2中的内容传送到寄存器R1中
(R2→R1) ;
2.片外RAM(0030H) →R1; 3.片外RAM(0030H) →片内RAM(30H); 4.片内RAM(30H) →片外RAM(2000H) ; 5.ROM(1000H) →R0; 6.ROM(1000H) →片外RAM(0020H) ; 7.ROM(1000H) →片内RAM(20H) ; 8.片外RAM(1000H) →片外RAM(2000H);
部分单片机原理补充习题答案

部分单片机原理及应用补充习题答案第一章补充习题6、已知下列整数的补码,求其真值:(3)[Z]补=11100000B,则真值Z= -0100000 B= -32 D(4)[S]补=00110001B,则真值S= +0110001 B= +49 D(5)[X]补=10101101B,则真值X= -1010011 B= -83 D7、已知[X]补和[Y]补的值,用补码加减法计算[X+Y]补和[X-Y]补,并指出结果是否溢出。
(4)[X]补=1.10011 [Y]补=0.11001解:[-Y]补=1.00111①加法[X]补+[Y]补[X]补 1. 1 0 0 1 1+ [Y]补0.1 1 0 0 10. 0 1 1 0 0 Cin=1 Cout=1 无溢出②减法[X]补+[-Y]补[X]补 1. 1 0 0 1 1+ [-Y]补 1. 0 0 1 1 10. 1 1 0 1 0 Cin=0 Cout=1 溢出(下溢出)8、给出x和y的二进制值,用补码加减法计算X+Y和X-Y,并指出结果是否溢出(3)X=+1110110 Y=-1001101解:[X]补=01110110 [Y]补=10110011 [-Y]补=01001101①加法[X]补+[Y]补[X]补0 1 1 1 0 1 1 0+ [Y]补1 0 1 1 0 0 1 10 0 1 0 1 0 0 1Cin=1 Cout=1 无溢出,[X+ Y]补=00101001 ,∴X+Y=+0101001B= 41D②减法[X]补+[-Y]补[X]补0 1 1 1 0 1 1 0+ [-Y]补0 1 0 0 1 1 0 11 1 0 0 0 0 1 1Cin=1 Cout=0 溢出(上溢出),运算结果不表示[X-Y]补,不能从结果直接求取真值X -Y。
12、概念题:(1)AS CⅡ码,47H 。
(2)17H ,1、0、0 。
(3) -128-+127 ,0 —255 。
补充作业.

补充作业6
把以下汇编语言程序段翻译成机器语言代码,并说明程序的功能: ORG 0000H AJMP START ORG 120H START:MOV SP,#30H CLR C MOV A,31H SUBB A,41H MOV 51H,A MOV A,30H SUBB A,40H MOV 50H,A HERE:SJMP HERE END
补充作业1
1、80C51单片机片内包含 ROM、 RAM、 个 位的并行IO口、 个 位定时器/计数器、 个串行IO口和 个中断源。 2、以8位补码数的形式计算下列各式: (1)75+46 (2)56-84 (3)(-85)-(-37) (4)(-46)+(-23) 3、用一个16位二进制数表示浮点数,其中阶码占6位,尾 数占10位,其能表示的最大数是多少?精度是多少?
补充作业2ຫໍສະໝຸດ 1、简述80C51单片机内部有哪些主要逻辑部件及各逻辑 部件的主要功能。 2、分类总结80C51单片机外部引脚及其主要功能。
3、总结80C51单片机具有第二功能的外部引脚及其第二 功能。
补充作业3
1、80C51单片机内部RAM的寄存器区共有 单元, 分为 组,每组 个单元,名称为 。 2、程序状态字PSW各位的符号及意义。 3、归纳总结80C51单片机的物理存储空间和逻辑存 储空间,并指出它们在使用上如何进行区分。
补充作业4
1、堆栈有哪些功能?堆栈指示器(SP)的作用是什么? 为什么在程序设计中,要对SP重新赋值?
2、80C51单片机的四个IO口在使用上有哪些分工? 并比较各个IO口的特点。
3、简述振荡周期、状态周期、指令周期 的关系。
补充作业5
1、80C51单片机的指令有
字节、
单片机附加习题

二、判断题
1、片内RAM与外部设备统一编址时,需要专门旳输入/输出指令。 (×)
统一编址旳特点正是无需专门旳输入输出指令。
三、简答题
1、具有8位辨别率旳A/D转换器,当输入0V-5V电压时,其最大 量化误差是多少?
答:对于8位A/D转换器,实际满量程电压为5V,则其量化单 1LSB=5V/255≈0.0196V,考虑到A/D转换时会进行4舍5入处理, 所以最大量化误差为±(1/2)LSB,即±0.0098V或±9.8mV。
(2)作计数器时计数脉冲由外部信号经过引脚P3.4和P3.5 提供。
三、简答题
8、8051定时器旳门控信号GATE设置为1时,定时器怎样开启? 答:只有/INT0(或/INT1)引脚为高电平且由软件使TR0(或
TR1)置1时,才干开启定时器工作。 9、简述单片机系统扩展旳基本原则和实现措施。
答(1)以P0口作地址/数据总线,此地址总线是系统旳低8位 地址线。 (2)以P2口旳口线作高位地址线。(不固定为8位,需要几位就 从P2口引出几条口线。) (3)控制信号线: ① 使用ALE作为地址锁存旳选通信号,以实现低8位地址旳锁存。 ② 以/PSEN信号作为扩展程序存储器旳读选通信号。 ③ 以/EA信号作为内外程序存储器旳选择信号。 ④ 以/RD和/WR作为扩展数据存储器和I/O端口旳读写选通信号,
TMOD,#05H P1.2,$ THO,#00H TL0,#00H TR0 P1.2,$ TR0 R7,TH0 R6,TL0
三、简答题
3、串行数据传送旳主要优点和用途是什么? 答:(1)串行数据传送是将数据按位进行传送旳方式。
(2)其主要优点是所需旳传送线根数少(单向传送只需一 根数据线、双向仅需两根),对于远距离数据传送旳情况, 采用串行方式是比较经济旳。所以串行方式主要用于计算机 与远程终端之间旳数据传送。 4、MCS-51单片机旳存储器从物理构造上和逻辑上分别可 划为几种空间?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5-40 以中断方式,用汇编语言编写定时器T0方式0,1,2下,定时1ms 的程序。
设系统focs = 12MHz 。
解1:方式0 确定装入T0的常数。
机器周期为: 设所需初值为x ,则 =1C18H = 1 1100 0001 1000B根据13位定时器的特性,TH0放x 的高8位,TL0放低5位,我们将x 值重排如下:x = 1110 0000 1 1000,即得本任务的时间常数为:TH0 = E0H ,TL0 = 18H 。
ORG 0000HAJMP MAINORG 000BHLJMP TIME0INTORG 0050HMAIN : MOV SP ,#60HMOV TMOD ,#00HMOV TL0,#18HMOV TH0,#0E0HSETB ET0 ;允许T0中断SETB EA ;开放总中断SETB TR0 ;启动T1定时SJMP $TIME0INT : CLR T R0 ;禁止T0CLR E T0RETI ;中断返回ENDORG 0000HAJMP MAINORG 000BHLJMP TIME0INTORG 0050HMAIN : MOV SP ,#60HMOV TMOD ,#01HMOV TL0,#18HMOV TH0,#0F0HSETB ET0 ;允许T0中断SETB EA ;开放总中断SETB TR0 ;启动T1定时SJMP $TIME0INT : CLR TR0 ;禁止T0CLR ET0 s MHz μ112)(12=分频3613101101)2(--⨯=⨯⨯-x 7192102313=-=xRETI ;中断返回END解3:方式2确定装入T0的常数。
计数器每机器周期计数值加1,机器周期为:方式2为8位常数自动重装,每次溢出最大值为256μS,为编程方便,又减少中断次数,采用4次250μS的方法实现本任务。
其时间常数为:TH0 = 06H,TL0 =06H。
ORG 0000HAJMP MAINORG 000BHLJMP TIME0INTORG 0050HMAIN: MOV SP,#60HMOV R7,#4MOV TMOD,#02HMOV TL0,#06HMOV TH0,#06HSETB ET0 ;允许T0中断SETB EA ;开放总中断SETB TR0 ;启动T1定时SJMP $TIME0INT:DJNZ R7,RETURNCLR TR0 ;禁止T0CLR ET0RETURN:RETI ;中断返回END5-41 以中断方式,用汇编语言编写定时器T1方式0,1,2下,计数的程序。
设计数终值为N,说明在计数值不溢出的情况下,每种方式下N的最大值是多少。
解1:方式013位计数初值(8192-计数值)高8位为NH,低8位为NLORG 0000HAJMP MAINORG 001BHLJMP TIME1INTORG 0050HMAIN: MOV SP,#60HSETB F0 ;F0=1继续,F0=0停止计数MOV TMOD,#40HMOV TL1,#NHHMOV TH1,#NLHSETB ET1 ;允许T1中断SETB EA ;开放总中断SETB TR1 ;启动T1定时SJMP $TIME1INT:JNB F0,STOPT1MOV TL1,#NHHMOV TH1,#NLHSJMP RETURNSTOPT1:CLR F0CLR TR1 ;禁止T1CLR ET1RETURN:RETI ;中断返回END解2:方式116位计数初值(65536-计数值)高8位为NH,低8位为NL。
ORG 0000HAJMP MAINORG 001BHLJMP TIME1INTORG 0050HMAIN: MOV SP,#60HSETB F0 ;F0=1继续,F0=0停止计数MOV TMOD,#50HMOV TL1,#00HMOV TH1,#00HSETB ET1 ;允许T0中断SETB EA ;开放总中断SETB TR1 ;启动T1定时SJMP $TIME1INT:JNB F0,STOPT1MOV TL1,#NHHMOV TH1,#NLHSJMP RETURNSTOPT1:CLR F0CLR TR1 ;禁止T1CLR ET1RETURN:RETI ;中断返回END解3:方式2为8位计数(少用),计数值在TL1中设计数目标为NL。
NL EQU YYHORG 0000HAJMP MAINORG 001BHLJMP TIME1INTORG 0050HMAIN: MOV SP,#60HSETB F0 ;F0=1继续,F0=0停止计数MOV TMOD,#60HMOV TL1,#NLHMOV TH1,#NLHSETB ET1 ;允许T0中断SETB EA ;开放总中断SETB TR1 ;启动T1定时SJMP $TIME1INT:JNB F0,STOPT1SJMP RETURNSTOPT1:CLR F0CLR TR1 ;禁止T1CLR ET1RETURN:RETI ;中断返回END方式0、1、2的最大计数值分别为8192、65536和256。
5-42设中断请求源已接好,外部中断0用电平触发方式,外部中断1用下降沿触发方式,用汇编语言编写它们响应并处理中断的程序。
处理内容可用NOP指令表示。
注意比较两者的异、同。
解1:外部中断0用低电平触发方式ORG 0000HAJMP MAINORG 0003HLJMP INT0INTORG 0050HMAIN: MOV SP,#60HSETB EX0 ;允许外部中断0中断CLR IT0SETB EA ;开放总中断SJMP $INT0INT:NOPRETI ;中断返回END解2:外部中断1用下降沿触发方式ORG 0000HAJMP MAINORG 0013HLJMP INT0INTORG 0050HMAIN: MOV SP,#60HSETB EX1 ;允许外部中断1中断SETB IT1SETB EA ;开放总中断SJMP $INT0INT:NOPRETI ;中断返回END两者对称,只需0,1对调,清IT0,置IT1。
5-43要求发送用查询方式,接收用中断方式。
用汇编语言编写在方式1,2,3下,51机串口发送和接收一帧数据的程序。
设发送和接收的数据都在R5中。
注意:设系统focs = 11.0592MHz,在波特率可变方式下,波特率取9600(Baud),一律不用PCON加速。
解1:方式1发送不用PCON加速时,定时器T1用方式2,查表5-6或计算,T1常数为FDHORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60HMOV SCON,#40HMOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHSETB TR1 ;启动波特率MOV SBUF,R5WAIT:JBC TI,STOPSJMP WAITSTOP:SJMP $ ;动态停机END方式1接收程序为ORG 0000HAJMP MAINORG 0023HLJMP SERINTORG 0050HMAIN: MOV SP,#60HMOV SCON,#50HMOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHSETB ES ;允许串口中断SETB EA ;开放总中断SETB TR1 ;启动波特率SJMP $SERINT:CLR RIMOV R5,SBUFRETI ;中断返回END解2:方式2发送不用计算定时器T1常数。
ORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60HMOV SCON,#80H ;SM2=0MOV PCON,#00HMOV SBUF,R5WAIT:JBC TI,STOPSJMP WAITSTOP:SJMP $ ;动态停机END方式2接收程序为ORG 0000HAJMP MAINORG 0023HLJMP SERINTORG 0050HMAIN: MOV SP,#60HMOV SCON,#90H ;SM2=0MOV PCON,#00HSETB ES ;允许串口中断SETB EA ;开放总中断SJMP $SERINT:CLR RIMOV R5,SBUFRETI ;中断返回END解3:方式3发送:不用PCON加速时,定时器T1用方式2,查表5-6或计算,T1常数为FDH ORG 0000HAJMP MAINORG 0050HMAIN: MOV SP,#60HMOV SCON,#0C0H;SM2=0MOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHSETB TR1 ;启动波特率MOV SBUF,R5WAIT:JBC TI,STOPSJMP WAITSTOP:SJMP $ ;动态停机END方式3接收程序为ORG 0000HAJMP MAINORG 0023HLJMP SERINTORG 0050HMAIN: MOV SP,#60HMOV SCON,#0D0H;SM2=0MOV PCON,#00HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDHSETB ES ;允许串口中断SETB EA ;开放总中断SETB TR1 ;启动波特率SJMP $SERINT:CLR RIMOV R5,SBUFRETI ;中断返回END。