单片机复习知识点
1、会进行十进制和十六进制的相互转换。利用二进制作为桥梁。
2、在80C51单片机系统中,若晶振的频率为12MHz,一个机器周期为1us。若晶振的频率为6MHz,一个机器周期为2us。
3、某台计算机的地址线是16根,则其可以访问的最大内存空间64KB(2^16KB)。 4、在80C51单片机系统中,逻辑上分成了3个存储空间。 5、80C51单片机复位后,PC 的值00H、SP的值07H。
6、80C51在片内的数据存储器,既可以字节寻址又可以位寻址的地址范围是20H—2FH? 7、CPU工作的最小时间单位是振荡周期?一个机器周期内能完成1个最基本操作? 8、EQU指令必须放在程序的开头,DATA指令没有此限制。
9、开启定时器时,只需对TCON寄存器相应位进行设置,还与与其他寄存器有关(TMOD)。 10、IT1=1时,外部中断1触发方式为边沿触发方式?IT0=1时,外部中断0触发方式为电平触发方式?
11、80C51单片机扩展程序存储器所用的控制信号为PSEN?
12、80C51单片机复位后,若希望从片内程序存储器开始执行,则引脚 /EA接高电平? 13、地址空间为0000H~3FFFH外扩展存储器容量是多少16KB? 14、80C51单片机内部有4KB的ROM,外部可扩展64KB的ROM,因此可用ROM为68KB。×(64KB) 15、堆栈的作用是可以实现对现场数据或断点地址的保护?堆栈只能开辟在单片机的内部存储器中吗?√
16、程序状态字PSW中位RS1、RS0的用途是工作寄存器工作组选择位?
17、在80C51单片机系统中,外部中断0、1的入口地址分别是0003H、0013H? 18、80C51单片机扩展数据存储器所用的控制信号为WR/RD?
19、地址空间为0000H~1FFFH外扩展存储器容量是4KB。× 0000H-0FFFH
21、访问ROM使用指令,访问RAM用指令?内RAM…MOV;外RAM…MOVX;ROM…MOVC 22、用8位二进制补码数所能表示的十进制数的范围是-128~127? 23、1 MB=1024KB=1024×1024B 24、所谓的CPU是指中央处理器?
25、80C51系列单片机内部设有4个工作寄存器组,由内部特殊寄存器(PSW)选择工作寄存器组。
26、80C51的中断允许控制寄存器IE内容为82H,CPU将响应的中断请求是T0?当IE寄存器内容为87H时,CPU不能响应的中断请求是串行中断?
27、已知:ORG 0003H;LJMP 2000H;ORG 000BH;LJMP 3000H ; 当CPU响应外部中断0后,指向中断服务程序的PC的值是0003H?
28
29、当ALE
30、执行PUSH ACC指令,80C51完成的操作是
31、当门控位为0时,启动T1运行的指令是TR1=1?
32、若在单片机系统中只扩展一片Intel2732,则需要的地址口线为12条? 33、DPTR具有自动加1功能吗他?没有,PC有 34、80C51单片机,设置堆栈指针SP为37H后就发生了子程序调用,这时SP的值变为39H? 35、唯一能够被用户使用的16位寄存器是DPTR?
36、在相同的中断优先级设置下,多个中断同时申请,优先执行的中断服务是外部中断0? 37、单片机是将CPU、RAM、ROM、I/O接口电路做到一块集成电路芯片上的微型计算机。√
38、PSW=08H时,则当前工作寄存器是R1?
39、80C51的中断允许控制寄存器内容为88H,CPU将响应的中断请求是定时器T1中断? 40、已知:ORG 0003H;LJMP 2000H;ORG 000BH;LJMP 3000H ; 当CPU响应定时器T0溢出中断后,指向中断服务程序的PC的值是000BH? 41、控制定时器/计数器工作方式的寄存器是TCON?
42、80C51外扩ROM,RAM和I/O口时,它的地址总线是P0、P2口?
45、要用传送指令访问80C51片外RAM,它的指令操作码助记符是MOVX?
46、在工作方式0下,计数器是由TH的全部8位和TL的5位组成,因此其计数范围是1—8192?
47、对程序存储器的读操作,只能使用MOVC指令?
48、设置堆栈指针SP=30H后,进行一系列的堆栈操作,当进栈数据全部弹出后,SP应指向30H?
49、I/O接口位于总线与设备之间。√?
51、计算机系统的三总线是指数据总线、地址总线、控制总线?当单片机系统进行扩展时,一般用P0口作数据总线?用P0和P2口的作地址总线? 52、80C51内设128B的RAM,地址范围为00H-7FH?
53、80C51片内20H-2FH范围内的数据存储器,既可以字节寻址又可以位寻址?
54、80C51单片机的程序计数器PC是一个16位的程序地址寄存器,所以程序存储器的寻址空间是64KB?
55、80C51内设4KB ROM,地址范围为0000H-0FFFH?外部可扩展到64KB?地址范围为0000H-FFFFH?
56、程序状态字PSW中位RS1、RS0的用途是工作寄存器工作组选择位?当RS1RS0=01时,地址范围为08H-0FH ?
57、80C51子程序返回指令为RET?中断子程序返回指令为RETI?
58、80C51单片机有2个16位的定时计数器?与其有关的特殊功能寄存器有TMOD、TCON? 59、当单片机系统进行扩展时,数据总线为P0口、地址总线P0、P2口? 60、3线-8线译码器和2线-4线译码器分别是74LS138、74LS139?
61、用线选法扩展两片16KB的数据存储器,需要的低位地址线的根数是14根? 62、利用CJNE指令可以实现三分支程序结构吗?不能
63、常用伪指令的功能。如EQU:规定程序块或数据块存放的起始地址;END:程序结束;BIT:将位地地赋给给指定符号名;EQU:将表达式的值定义为一个指定的符号名等。 64、单片机的最小系统应包括电源、时钟电路和复位电路。为实现单片机的复位应该在RST引脚提供两个机器周期以上的高电平。
65、给出指令,请在指令注释处写出该指令的寻址方式
立即寻址:MOV A , #30H 直接寻址:MOV A , 30H
寄存器寻址:MOV A , R0\DPTR\A\B 寄存器间接寻址:MOV A , @RN 变址寻址:MOVC A , @A+DPTR\PC
66、利用80C51的P0口控制8个发光二极管LED。相邻的4个LED为一组,使2组每隔1s交替发光一次,周而复始。设计出硬件电路图,并编写程序。(设fosc=12MHz) (注意:
硬件电路图包括电源、时钟和复位电路) 解:选用定时器T0,采用方式1计数 计算初值:X=
TMOD赋值#01H, 硬件电路设计:
=15536=3CB0H
编写程序:
ORG 0000H LJMP MAIN ORG 000BH LJMP TT0 MAIN: MOV TMOD,#01H MOV TH0,#3CH
MOV TL0,#0B0H
MOV P0,#0FH MOV 30H,#10 SETB EA SETB TR0 SETB ET0 SJMP $ TT0: MOV TH0,#3CH MOV TL0,#0B0H
DJNZ 30H,DEL MOV A,P0 SWAP A MOV P0,A MOV 30H,#10
DEL:RETI END
67、现有一蜂鸣器,用89C51设计一系统,使蜂鸣器周而复始地响20ms,停20ms,设计电路图并编写程序。(fosc=12MHz) 解:设fosc=12MHz,电路图如下:
定时时间:应用公式t =(216-X)×12/fosc X=216-t(fosc /12) =216-20000=45536=B1E0H 程序: ORG 0000H MOV THO,#OE0H LJMP START SETB TR0 ORG 0040H LOOP: JNB TFO,DONE START:MOV TMOD,#01H CLR TF0 MOV TL0,#OB1H
DONE: MOV TL0,#OB1H
MOV THO,#OE0H CPL P1.0
SJMP LOOP
68、写一个软件延时1S和1min的子程序。设fosc=6MHz,则1个机器周期=2μs。 解:(1)1s=2μs×5×10
5
5×10=250×2000=250×200×5×2 (2) ORG 0000H DELAY1S:MOV R5,#5 DEL1: MOV R6,#200 DEL2: MOV R7,#250 DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 69、分析程序并写出每条指令结果:
已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段。
MOV @R0, #11H ; 将11H 覆盖寄存器R0中的数据,此时(R0)=11H MOV A, R2 ; 将R2的内容赋给累加器A ,(A)= 20H ADD A, 20H ; 将20H的内容与累加器A相加,(A)=(A)+ (20H )
=20H+10H=30H
MOV PSW, #80H ; 将80H赋给PSW ,(PSW)=80H
5
RET
(3)1min=60S,调用上面1s子程序60次
ORG 0100H DELAY1M:MOV R0,#60 LOOP: LCALL DELAY1S DJNZ R0,LOOP RET
SUBB A, P0 ; 累加器A减去P0,(A)=(A)-(P0)=30H-30H=0 XRL A, #45H ; 求(A)⊕ 45H ,(A)=0BAH
MOV 40H, A ; 将累加器A的内容赋给40H,(40H)=0BAH 70、某程序段如下:
CLR SETB MOV MOV
RS0 RS1 A, #38H R0, A
MOV 29H, R0 CLR MOV
RS1 R1, A
MOV 26H, A
程序中R0和R1的地址分别为___10H ___,____01H____;程序执行后片内RAM中(26H)= _38H ____,(29H)= ___38H____。 71、某程序段如下,假设SP=30H。
MOV A, #30H MOV B, #10H PUSH A
PUSH B POP DPL POP DPH
程序执行后,SP= 30H DPTR= 3010H
72、已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下: MOV A, @R0 MOV R0, A MOV A, @R0 ADD A, 21H ORL A, #21H RL A MOV R2, A RET
则执行结束(R0)= 20H (R2) = 6EH 73、阅读下列程序,并要求: (1) 说明程序功能;
(2) 写出涉及的寄存器及片内RAM单元的最后结果
MOV R0, #40H MOV A, @R0 INC R0 ADD A, @R0 INC R0 MOV @R0, A CLR A ADDC A, #0 INC R0 MOV @R0, A
程序功能: 将40H,41H单元中的内容相加结果放在42H单元,进位放在43H
(R0)= 43H ;(A)= 1 ;(40H)= 98H ,(41H)= AFH ;(42H)= 47H ,(43H)= 01H 74、执行下面一段程序:
MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A
PUSH B
POP DPL
POP DPH
程序执行后,SP= 30H DPTR= 3010H
72、已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下:
MOV A, @R0
MOV R0, A
MOV A, @R0
ADD A, 21H
ORL A, #21H
RL A
MOV R2, A
RET
则执行结束(R0)= 20H (R2) = 6EH
73、阅读下列程序,并要求:
(1) 说明程序功能;
(2) 写出涉及的寄存器及片内RAM单元的最后结果
MOV R0, #40H
MOV A, @R0
INC R0
ADD A, @R0
INC R0
MOV @R0, A
CLR A
ADDC A, #0
INC R0
MOV @R0, A
程序功能: 将40H,41H单元中的内容相加结果放在42H单元,进位放在43H
(R0)= 43H ;(A)= 1 ;(40H)= 98H ,(41H)= AFH ;(42H)= 47H ,(43H)= 01H
74、执行下面一段程序:
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP B
A , B的内容是:(A) = 01H (B) = 10H
75、某程序段如下:
SETB
CLR
MOV
MOV
MOV
MOV
SETB
MOV RS0 RS1 A, #40H 30H, #0FH R0, A 31H, R0 RS1 R1, A
程序中R0和R1的地址分别为___08H____,___19H____。程序执行后片内RAM中(30H)= _0FH _,(31H)= __40H ___。
76、某程序段如下,假设SP=30H,DPTR=4455H。
PUSH DPL
PUSH DPH
POP 08H
程序执行后,SP = 31H (08H) = 44H
77、电路如图所示,请回答以下问题:
(1)若没连接的地址假定为1,试写出8255的A口、B口、C口及控制寄存器的地址。
(2)写出8255的工作方式命令字。
(3)编写8255的初始化程序。
(1) 由图可知,82C55的片选信号与A7相连,因此其PA、PB、PC和控制字寄存器的地
址只有A7、A1、A0相连的单片机地址确定。又因为其他未用的口为高电平,所以8255的A口、B口、C口及控制寄存器的地址分别为FF7CH、FF7DH、FF7EH、FF7FH。
(2) 与打印机相连采用方式1,PA口应设置为输出口,PC口高4位应设置为输入口,低
4位应设置成输出口。因此,其控制字寄存器的内容为0AEH。
(3) MOV DPTR , #FF7FH
MOV A , #AEH
MOVX @DPTR, A
78、电路如图所示,请回答以下问题:
(1)若未连接的地址假定为0,试写出8255的A口、
B口、C口及控制寄存器的地址。
(2)写出8255的工作方式命令字。
(3) 编写8255的初始化程序。
(1) 由图可知,82C55的片选信号与A7相连,因此其PA、PB、PC和控制字寄存器的地址只
有A7、A1、A0相连的单片机地址确定。又因为其他未用的口为高电平,所以8255的A口、B口、C口及控制寄存器的地址分别为0001H、0002H、0003H、0004H。
(2) 与打印机相连采用方式1,PA口应设置为输出口,PC口高4位应设置为输入口,低4
位应设置成输出口。因此,其控制字寄存器的内容为0ACH。
(3) MOV DPTR , #0004H
MOV A , #ACH
MOVX @DPTR, A
79、将定时器/计数器做脉冲信号发生器。编程采用中断方式利用定时器T0定时,以方式1在P1.0端输出周期性方波信号,方波周期为2ms,已知晶振频率为6MHz。
解:
(1) T0工作在定时方式1时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=01,则取控
制字为01H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy 为2us
-316N=t/Tcy=1ms*10=1000us X=2-N=65536-1000=64536=0FC18H
即将FCH送入TH0,将18H送入TL0中。
(3) 实现程序如下:
ORG 0000H SETB TR0
AJMP MAIN SJMP $
ORG 000BH ORG 0200H
LJMP FBT0 FBT0:CPL P1.0
ORG 0030H MOV TH0,#0FCH
MAIN: MOV TMOD,#01H MOV TL0,#18H
MOV TH0,#0FCH SETB TR0
MOV TL0,#18H RETI
SETB ET0 END
SETB EA
80、设单片机晶振频率为6MHz,采用中断方式使用定时器1以方式0产生周期为2ms的等宽周期性方波,并由P1.0输出。试编程。
解:
(1) T1工作在定时方式0时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=00,则取控制字为00H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy为2us
313N=t/Tcy=1ms*10=1000us X=2-N=8192-1000=7192=01C18H
即将1CH送入TH1,将18H送入TL1中。
(3)
实现程序如下: SETB EA
ORG 0000H SETB TR1
AJMP MAIN SJMP $
ORG 000BH ORG 0200H
LJMP FBT0 FBT0: CPL P1.0
ORG 0030H MOV TH1,#1CH
MAIN: MOV TMOD,#00H MOV TL1,#18H
MOV TH1,#1CH SETB TR1
MOV TL1,#18H RETI
SETB ET1 END
81、设单片机晶振频率为6MHz,采用查询方式,使用定时器1以方式0产生周期为500us的等宽周期性方波,并由P1.0输出。试编程。
解:
(1) T1工作在定时方式0时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=00,则取控制字为00H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy为2us
13 X=2-250=8192-250=7942=1F06H
即将1FH送入TH1,将06H送入TL1中。
(3)
实现程序如下: JNB TF1,$
ORG 0000H CLR TF1
MOV TMOD,#00H CPL P1.0
SETB TR1 SJMP LOOP
LOOP:MOV TH1,#1FH END
MOV TL1,#06H
82、利用6264为8031扩展一片数据存储器RAM,要求画出硬件电路连接图,并给出芯片的地址范围(假定未用地址全部为0)。
解:当A15、A14、A13都去0时,6462的地址范围固定为0000H-1FFFH
83、利用27128为80C51扩展一片程序存储器。要求画出硬件电路连接图,并给出芯片的地址范围(假定未用地址全部为0)。
解:当A15、A14都去0时,6462的地址范围固定为0000H-3FFFH
84、综合题:
(1)下图中外部扩展的数据存储器容量是多少?
(2)三片6264的地址范围分别是多少?(地址线未用到的位填1)
(3)请编写程序,要求:
将30H~3FH中的内容送入6264 1# 的前16个单元中;
将6264 2# 的前32个单元的内容送入40H~5FH中;
(1) 外部扩展的数据存储器容量是24KB
(2) 1#的地址范围为6000H-7FFH;2#的值范围为0A000H-0BFFFH;3#的值范围为
0C000H-0DFFFH。
(3) ① MOV R1 ,#10H ② MOV R1,#32H
MOV DPTR,@6000H MOV DPTR,#0A000H
MOV R0,#30H MOV Ro ,#40H
LOOP: MOV A,@Ro LOOP: MOVX A ,@DPTR
MOVX @DPTR,A MOV @Ro ,A
INC DPTR INC DPTR
INC Ro INC Ro
DINE R1,LOOP DTNZ R1 ,LOOP
RET RET
85、把片内RAM40H~4FH单元中的16个补码逐一取出,若为正数则放回原单元,若为负数则求补后放回原单元。试编程。
单片机复习知识点
1、会进行十进制和十六进制的相互转换。利用二进制作为桥梁。
2、在80C51单片机系统中,若晶振的频率为12MHz,一个机器周期为1us。若晶振的频率为6MHz,一个机器周期为2us。
3、某台计算机的地址线是16根,则其可以访问的最大内存空间64KB(2^16KB)。 4、在80C51单片机系统中,逻辑上分成了3个存储空间。 5、80C51单片机复位后,PC 的值00H、SP的值07H。
6、80C51在片内的数据存储器,既可以字节寻址又可以位寻址的地址范围是20H—2FH? 7、CPU工作的最小时间单位是振荡周期?一个机器周期内能完成1个最基本操作? 8、EQU指令必须放在程序的开头,DATA指令没有此限制。
9、开启定时器时,只需对TCON寄存器相应位进行设置,还与与其他寄存器有关(TMOD)。 10、IT1=1时,外部中断1触发方式为边沿触发方式?IT0=1时,外部中断0触发方式为电平触发方式?
11、80C51单片机扩展程序存储器所用的控制信号为PSEN?
12、80C51单片机复位后,若希望从片内程序存储器开始执行,则引脚 /EA接高电平? 13、地址空间为0000H~3FFFH外扩展存储器容量是多少16KB? 14、80C51单片机内部有4KB的ROM,外部可扩展64KB的ROM,因此可用ROM为68KB。×(64KB) 15、堆栈的作用是可以实现对现场数据或断点地址的保护?堆栈只能开辟在单片机的内部存储器中吗?√
16、程序状态字PSW中位RS1、RS0的用途是工作寄存器工作组选择位?
17、在80C51单片机系统中,外部中断0、1的入口地址分别是0003H、0013H? 18、80C51单片机扩展数据存储器所用的控制信号为WR/RD?
19、地址空间为0000H~1FFFH外扩展存储器容量是4KB。× 0000H-0FFFH
21、访问ROM使用指令,访问RAM用指令?内RAM…MOV;外RAM…MOVX;ROM…MOVC 22、用8位二进制补码数所能表示的十进制数的范围是-128~127? 23、1 MB=1024KB=1024×1024B 24、所谓的CPU是指中央处理器?
25、80C51系列单片机内部设有4个工作寄存器组,由内部特殊寄存器(PSW)选择工作寄存器组。
26、80C51的中断允许控制寄存器IE内容为82H,CPU将响应的中断请求是T0?当IE寄存器内容为87H时,CPU不能响应的中断请求是串行中断?
27、已知:ORG 0003H;LJMP 2000H;ORG 000BH;LJMP 3000H ; 当CPU响应外部中断0后,指向中断服务程序的PC的值是0003H?
28
29、当ALE
30、执行PUSH ACC指令,80C51完成的操作是
31、当门控位为0时,启动T1运行的指令是TR1=1?
32、若在单片机系统中只扩展一片Intel2732,则需要的地址口线为12条? 33、DPTR具有自动加1功能吗他?没有,PC有 34、80C51单片机,设置堆栈指针SP为37H后就发生了子程序调用,这时SP的值变为39H? 35、唯一能够被用户使用的16位寄存器是DPTR?
36、在相同的中断优先级设置下,多个中断同时申请,优先执行的中断服务是外部中断0? 37、单片机是将CPU、RAM、ROM、I/O接口电路做到一块集成电路芯片上的微型计算机。√
38、PSW=08H时,则当前工作寄存器是R1?
39、80C51的中断允许控制寄存器内容为88H,CPU将响应的中断请求是定时器T1中断? 40、已知:ORG 0003H;LJMP 2000H;ORG 000BH;LJMP 3000H ; 当CPU响应定时器T0溢出中断后,指向中断服务程序的PC的值是000BH? 41、控制定时器/计数器工作方式的寄存器是TCON?
42、80C51外扩ROM,RAM和I/O口时,它的地址总线是P0、P2口?
45、要用传送指令访问80C51片外RAM,它的指令操作码助记符是MOVX?
46、在工作方式0下,计数器是由TH的全部8位和TL的5位组成,因此其计数范围是1—8192?
47、对程序存储器的读操作,只能使用MOVC指令?
48、设置堆栈指针SP=30H后,进行一系列的堆栈操作,当进栈数据全部弹出后,SP应指向30H?
49、I/O接口位于总线与设备之间。√?
51、计算机系统的三总线是指数据总线、地址总线、控制总线?当单片机系统进行扩展时,一般用P0口作数据总线?用P0和P2口的作地址总线? 52、80C51内设128B的RAM,地址范围为00H-7FH?
53、80C51片内20H-2FH范围内的数据存储器,既可以字节寻址又可以位寻址?
54、80C51单片机的程序计数器PC是一个16位的程序地址寄存器,所以程序存储器的寻址空间是64KB?
55、80C51内设4KB ROM,地址范围为0000H-0FFFH?外部可扩展到64KB?地址范围为0000H-FFFFH?
56、程序状态字PSW中位RS1、RS0的用途是工作寄存器工作组选择位?当RS1RS0=01时,地址范围为08H-0FH ?
57、80C51子程序返回指令为RET?中断子程序返回指令为RETI?
58、80C51单片机有2个16位的定时计数器?与其有关的特殊功能寄存器有TMOD、TCON? 59、当单片机系统进行扩展时,数据总线为P0口、地址总线P0、P2口? 60、3线-8线译码器和2线-4线译码器分别是74LS138、74LS139?
61、用线选法扩展两片16KB的数据存储器,需要的低位地址线的根数是14根? 62、利用CJNE指令可以实现三分支程序结构吗?不能
63、常用伪指令的功能。如EQU:规定程序块或数据块存放的起始地址;END:程序结束;BIT:将位地地赋给给指定符号名;EQU:将表达式的值定义为一个指定的符号名等。 64、单片机的最小系统应包括电源、时钟电路和复位电路。为实现单片机的复位应该在RST引脚提供两个机器周期以上的高电平。
65、给出指令,请在指令注释处写出该指令的寻址方式
立即寻址:MOV A , #30H 直接寻址:MOV A , 30H
寄存器寻址:MOV A , R0\DPTR\A\B 寄存器间接寻址:MOV A , @RN 变址寻址:MOVC A , @A+DPTR\PC
66、利用80C51的P0口控制8个发光二极管LED。相邻的4个LED为一组,使2组每隔1s交替发光一次,周而复始。设计出硬件电路图,并编写程序。(设fosc=12MHz) (注意:
硬件电路图包括电源、时钟和复位电路) 解:选用定时器T0,采用方式1计数 计算初值:X=
TMOD赋值#01H, 硬件电路设计:
=15536=3CB0H
编写程序:
ORG 0000H LJMP MAIN ORG 000BH LJMP TT0 MAIN: MOV TMOD,#01H MOV TH0,#3CH
MOV TL0,#0B0H
MOV P0,#0FH MOV 30H,#10 SETB EA SETB TR0 SETB ET0 SJMP $ TT0: MOV TH0,#3CH MOV TL0,#0B0H
DJNZ 30H,DEL MOV A,P0 SWAP A MOV P0,A MOV 30H,#10
DEL:RETI END
67、现有一蜂鸣器,用89C51设计一系统,使蜂鸣器周而复始地响20ms,停20ms,设计电路图并编写程序。(fosc=12MHz) 解:设fosc=12MHz,电路图如下:
定时时间:应用公式t =(216-X)×12/fosc X=216-t(fosc /12) =216-20000=45536=B1E0H 程序: ORG 0000H MOV THO,#OE0H LJMP START SETB TR0 ORG 0040H LOOP: JNB TFO,DONE START:MOV TMOD,#01H CLR TF0 MOV TL0,#OB1H
DONE: MOV TL0,#OB1H
MOV THO,#OE0H CPL P1.0
SJMP LOOP
68、写一个软件延时1S和1min的子程序。设fosc=6MHz,则1个机器周期=2μs。 解:(1)1s=2μs×5×10
5
5×10=250×2000=250×200×5×2 (2) ORG 0000H DELAY1S:MOV R5,#5 DEL1: MOV R6,#200 DEL2: MOV R7,#250 DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 69、分析程序并写出每条指令结果:
已知(R0)=20H, (20H ) =10H, (P0) =30H, (R2) =20H, 执行如下程序段。
MOV @R0, #11H ; 将11H 覆盖寄存器R0中的数据,此时(R0)=11H MOV A, R2 ; 将R2的内容赋给累加器A ,(A)= 20H ADD A, 20H ; 将20H的内容与累加器A相加,(A)=(A)+ (20H )
=20H+10H=30H
MOV PSW, #80H ; 将80H赋给PSW ,(PSW)=80H
5
RET
(3)1min=60S,调用上面1s子程序60次
ORG 0100H DELAY1M:MOV R0,#60 LOOP: LCALL DELAY1S DJNZ R0,LOOP RET
SUBB A, P0 ; 累加器A减去P0,(A)=(A)-(P0)=30H-30H=0 XRL A, #45H ; 求(A)⊕ 45H ,(A)=0BAH
MOV 40H, A ; 将累加器A的内容赋给40H,(40H)=0BAH 70、某程序段如下:
CLR SETB MOV MOV
RS0 RS1 A, #38H R0, A
MOV 29H, R0 CLR MOV
RS1 R1, A
MOV 26H, A
程序中R0和R1的地址分别为___10H ___,____01H____;程序执行后片内RAM中(26H)= _38H ____,(29H)= ___38H____。 71、某程序段如下,假设SP=30H。
MOV A, #30H MOV B, #10H PUSH A
PUSH B POP DPL POP DPH
程序执行后,SP= 30H DPTR= 3010H
72、已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下: MOV A, @R0 MOV R0, A MOV A, @R0 ADD A, 21H ORL A, #21H RL A MOV R2, A RET
则执行结束(R0)= 20H (R2) = 6EH 73、阅读下列程序,并要求: (1) 说明程序功能;
(2) 写出涉及的寄存器及片内RAM单元的最后结果
MOV R0, #40H MOV A, @R0 INC R0 ADD A, @R0 INC R0 MOV @R0, A CLR A ADDC A, #0 INC R0 MOV @R0, A
程序功能: 将40H,41H单元中的内容相加结果放在42H单元,进位放在43H
(R0)= 43H ;(A)= 1 ;(40H)= 98H ,(41H)= AFH ;(42H)= 47H ,(43H)= 01H 74、执行下面一段程序:
MOV SP, #60H MOV A, #10H MOV B, #01H PUSH A
PUSH B
POP DPL
POP DPH
程序执行后,SP= 30H DPTR= 3010H
72、已知 ( R0 )=20H, (20H )=36H, (21H) =17H, (36H) =34H, 执行过程如下:
MOV A, @R0
MOV R0, A
MOV A, @R0
ADD A, 21H
ORL A, #21H
RL A
MOV R2, A
RET
则执行结束(R0)= 20H (R2) = 6EH
73、阅读下列程序,并要求:
(1) 说明程序功能;
(2) 写出涉及的寄存器及片内RAM单元的最后结果
MOV R0, #40H
MOV A, @R0
INC R0
ADD A, @R0
INC R0
MOV @R0, A
CLR A
ADDC A, #0
INC R0
MOV @R0, A
程序功能: 将40H,41H单元中的内容相加结果放在42H单元,进位放在43H
(R0)= 43H ;(A)= 1 ;(40H)= 98H ,(41H)= AFH ;(42H)= 47H ,(43H)= 01H
74、执行下面一段程序:
MOV SP, #60H
MOV A, #10H
MOV B, #01H
PUSH A
PUSH B
POP B
A , B的内容是:(A) = 01H (B) = 10H
75、某程序段如下:
SETB
CLR
MOV
MOV
MOV
MOV
SETB
MOV RS0 RS1 A, #40H 30H, #0FH R0, A 31H, R0 RS1 R1, A
程序中R0和R1的地址分别为___08H____,___19H____。程序执行后片内RAM中(30H)= _0FH _,(31H)= __40H ___。
76、某程序段如下,假设SP=30H,DPTR=4455H。
PUSH DPL
PUSH DPH
POP 08H
程序执行后,SP = 31H (08H) = 44H
77、电路如图所示,请回答以下问题:
(1)若没连接的地址假定为1,试写出8255的A口、B口、C口及控制寄存器的地址。
(2)写出8255的工作方式命令字。
(3)编写8255的初始化程序。
(1) 由图可知,82C55的片选信号与A7相连,因此其PA、PB、PC和控制字寄存器的地
址只有A7、A1、A0相连的单片机地址确定。又因为其他未用的口为高电平,所以8255的A口、B口、C口及控制寄存器的地址分别为FF7CH、FF7DH、FF7EH、FF7FH。
(2) 与打印机相连采用方式1,PA口应设置为输出口,PC口高4位应设置为输入口,低
4位应设置成输出口。因此,其控制字寄存器的内容为0AEH。
(3) MOV DPTR , #FF7FH
MOV A , #AEH
MOVX @DPTR, A
78、电路如图所示,请回答以下问题:
(1)若未连接的地址假定为0,试写出8255的A口、
B口、C口及控制寄存器的地址。
(2)写出8255的工作方式命令字。
(3) 编写8255的初始化程序。
(1) 由图可知,82C55的片选信号与A7相连,因此其PA、PB、PC和控制字寄存器的地址只
有A7、A1、A0相连的单片机地址确定。又因为其他未用的口为高电平,所以8255的A口、B口、C口及控制寄存器的地址分别为0001H、0002H、0003H、0004H。
(2) 与打印机相连采用方式1,PA口应设置为输出口,PC口高4位应设置为输入口,低4
位应设置成输出口。因此,其控制字寄存器的内容为0ACH。
(3) MOV DPTR , #0004H
MOV A , #ACH
MOVX @DPTR, A
79、将定时器/计数器做脉冲信号发生器。编程采用中断方式利用定时器T0定时,以方式1在P1.0端输出周期性方波信号,方波周期为2ms,已知晶振频率为6MHz。
解:
(1) T0工作在定时方式1时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=01,则取控
制字为01H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy 为2us
-316N=t/Tcy=1ms*10=1000us X=2-N=65536-1000=64536=0FC18H
即将FCH送入TH0,将18H送入TL0中。
(3) 实现程序如下:
ORG 0000H SETB TR0
AJMP MAIN SJMP $
ORG 000BH ORG 0200H
LJMP FBT0 FBT0:CPL P1.0
ORG 0030H MOV TH0,#0FCH
MAIN: MOV TMOD,#01H MOV TL0,#18H
MOV TH0,#0FCH SETB TR0
MOV TL0,#18H RETI
SETB ET0 END
SETB EA
80、设单片机晶振频率为6MHz,采用中断方式使用定时器1以方式0产生周期为2ms的等宽周期性方波,并由P1.0输出。试编程。
解:
(1) T1工作在定时方式0时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=00,则取控制字为00H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy为2us
313N=t/Tcy=1ms*10=1000us X=2-N=8192-1000=7192=01C18H
即将1CH送入TH1,将18H送入TL1中。
(3)
实现程序如下: SETB EA
ORG 0000H SETB TR1
AJMP MAIN SJMP $
ORG 000BH ORG 0200H
LJMP FBT0 FBT0: CPL P1.0
ORG 0030H MOV TH1,#1CH
MAIN: MOV TMOD,#00H MOV TL1,#18H
MOV TH1,#1CH SETB TR1
MOV TL1,#18H RETI
SETB ET1 END
81、设单片机晶振频率为6MHz,采用查询方式,使用定时器1以方式0产生周期为500us的等宽周期性方波,并由P1.0输出。试编程。
解:
(1) T1工作在定时方式0时,控制字TMOD的配置:GATE=0,C/T=0,M1M2=00,则取控制字为00H。
(2) 计算计数初值X:晶振的频率为6MHz,所以机器周期Tcy为2us
13 X=2-250=8192-250=7942=1F06H
即将1FH送入TH1,将06H送入TL1中。
(3)
实现程序如下: JNB TF1,$
ORG 0000H CLR TF1
MOV TMOD,#00H CPL P1.0
SETB TR1 SJMP LOOP
LOOP:MOV TH1,#1FH END
MOV TL1,#06H
82、利用6264为8031扩展一片数据存储器RAM,要求画出硬件电路连接图,并给出芯片的地址范围(假定未用地址全部为0)。
解:当A15、A14、A13都去0时,6462的地址范围固定为0000H-1FFFH
83、利用27128为80C51扩展一片程序存储器。要求画出硬件电路连接图,并给出芯片的地址范围(假定未用地址全部为0)。
解:当A15、A14都去0时,6462的地址范围固定为0000H-3FFFH
84、综合题:
(1)下图中外部扩展的数据存储器容量是多少?
(2)三片6264的地址范围分别是多少?(地址线未用到的位填1)
(3)请编写程序,要求:
将30H~3FH中的内容送入6264 1# 的前16个单元中;
将6264 2# 的前32个单元的内容送入40H~5FH中;
(1) 外部扩展的数据存储器容量是24KB
(2) 1#的地址范围为6000H-7FFH;2#的值范围为0A000H-0BFFFH;3#的值范围为
0C000H-0DFFFH。
(3) ① MOV R1 ,#10H ② MOV R1,#32H
MOV DPTR,@6000H MOV DPTR,#0A000H
MOV R0,#30H MOV Ro ,#40H
LOOP: MOV A,@Ro LOOP: MOVX A ,@DPTR
MOVX @DPTR,A MOV @Ro ,A
INC DPTR INC DPTR
INC Ro INC Ro
DINE R1,LOOP DTNZ R1 ,LOOP
RET RET
85、把片内RAM40H~4FH单元中的16个补码逐一取出,若为正数则放回原单元,若为负数则求补后放回原单元。试编程。