ORG
RESET: AJMP ORG
0000H
MAIN ;转主程序 0100H
DPL#00H ;初始化DPTR DPH,#0A0H
R0,#40H ;初始化R0 A,@DPTR @R0,A DPTR R0
MAIN: MOV MOV MOV LOOP2: MOVX MOV INC INC
CJNE R0,#60H,LOOP2 NOP RET
试题2 参考答案
一、填空题(24分,每空1分)
1.AT89S51单片机是( 8 )位的单片机。
2.AT89S51单片机有( 5 )个中断源,( 2 )级优先级中断。
3.串行口方式3发送的第9位数据要事先写入( SCON )寄存器的( TB8 )位。 4.串行口的方式0的波特率为 ( fOSC/12 )。
5.AT89S51内部数据存储器的地址范围是(00-7FH ),位地址空间的字节地址范围是(20-2FH ),对应的位地址范围是(00-7FH)外部数据存储器的最大可扩展容量是(64KB )。 6.在内部RAM中可位寻址区中,位地址为40H的位,该位所在字节的字节地址为( 28H )。 7.如果(A)=58H,(R1)= 49H,(49H)= 79H,执行指令XCH A, @R1后;结果(A)=( 49 H ) ,
(49H)=( 58H )。
8.利用81C55可以扩展( 3 )个并行口,(256)个RAM单元。
9.当单片机复位时PSW= ( 00 )H,SP=( 07H ),P0~P3口均为( 高 )电平。 10.若A中的内容为88H,那么,P标志位为( 0 )。
11.当AT89S51执行MOVC A,@A+ DPTR指令时,伴随着( PSEN* )控制信号有效。 12.AT89S51访问片外存储器时,利用( ALE )信号锁存来自( P0口 )发出的低8位地址信号。
13.已知fosc=12MHz, T0作为定时器使用时,其定时时间间隔为( 1us )。
6
14.若AT89S51外扩8KB 程序存储器的首地址若为1000H,则末地址为(2FFF)H。 二、判断对错,如对则在( )中写“√”,如错则在( )中写“×”。(10分) 1.AT89S51单片机可执行指令:MOV 35H,@R3。( × ) 2.8031与8751的区别在于内部是否有程序存储器。( √ ) 3.当向堆栈压入一个字节的数据后,SP中的内容减1。(×) 4.程序计数器PC中装的内容是当前正在执行指令的地址。(×)
5.某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。(√) 6.AT89S51单片机中的PC是不可寻址的。(√)
7.当AT89S51执行MOVX @DPTR,A指令时,伴随着WR*信号有效。(×)
8.AT89S51的定时器/计数器对外部脉冲进行计数时,要求输入的计数脉冲的高电平或低电
平的持续时间不小于1个机器周期。(×)
9.区分外部程序存储器和数据存储器的最可靠的方法是看其是被WR*还是被PSEN*信号连接。(√)
10.各中断源发出的中断请求信号,都会标记在AT89S51的TCON寄存器中。(×) 三、简答题
1.如果(DPTR)=5678H,(SP)=42H,(3FH)=12H ,(40H)=34H,(41H)=50H,(42H)=80H,则
执行下列指令后: POP POP RET
则:(PCH) =_34H_;(PCL)=_12H__;(DPH)=__80H__;(DPL)=__50H__;(4分) 2.AT89S51采用6MHz的晶振,定时2ms,如用定时器方式1时的初值(16进制数)应为多少?(写出计算过程)(6分) 答:机器周期6×106=2×10-6s=2uS
又方式1为16进制定时器.故 (216—X)×2×10-6=2×10-3=>216-X=1000
=>X=65536-1000=64536 即初值=FC18H
3.AT89S51外扩的程序存储器和数据存储器可以有相同的地址空间,但不会发生数据冲突,
为什么?(6分)
答:不发生数据冲突的原因是:AT89S51中访问程序存储器和数据存储器的指令不一样。 选通信号也就不一样,前者为PSEN,后者为WR与RD。
程序存储器访问指令为MOVC A,@DPTR;MOVC A,@A+pc。
数据存储器访问指令为:MOVX A,@DPTR; MOVX A,@Ri; MOVX @DPTR,A。 4.说明AT89S51的外部引脚EA*的作用?(4分)
答:当EA*为高电平时,AT89S51访问内部程序存储器,但当地址大于0FFF时,自动转到外
7
DPH DPL
部程序存储器;当EA*为低电平时,AT89S51只读取外部程序存储器。
5.写出AT89S51的所有中断源,并说明说明哪些中断源在响应中断时,由硬件自动清除,哪些中断源必须用软件清除,为什么?(6分) 答: 外部中断INT0*
定时器/计数器中断T0 外部中断INT1* 定时器/计数器中断T1 串行口中断
其中串行口中断TI与RI必须用软件清“0”,因为串口中断的输出中断为TI,输入中断为RI,故用软件清“0”。
四、下图为某AT89S51应用系统的3位LED 8段共阳极静态显示器的接口电路,(1)该静态显示器电路与动态扫描的显示器电路相比有哪些优缺点?(2)写出显示字符“3”、“8”、“5”的段码,注意:段码的最低位为“a” 段,段码的最高位为“dp” 段(3)已知8255A的PA口、PB口和PC口的地址分别为FF7CH、FF7DH、FF7EH,且8255A的这3个端口均已被编写完毕的初始化程序初始化为方式0输出,请编写出使3位LED共阳极显示器从左至右显示“3.85”的程序段。(14分)
解:(1) 优点是:亮度高,字符不闪烁,占用CPU资源少。
缺点是:占用的I/O口太多,当需要的LED数目较多时,需要外扩展的I/0口。
(2) 3.:→B0H
8:→80H 5:→92H (3)
MOV DPTR,#0FF7CH MOV A,#30H MOVX @DPTR,A MOV DPTR,#0FF7DH MOV A ,#80H
8
来自AT89S51
a f e
d g
b
c
● dp
8255A 82C55 PA PB PC · · · o +5V
MOVX @DPTR,A MVOX @DPTR,#0FF7EH MOV A,#92H MOVX @DPTR,A RET
五、画出AT89S51系列单片机利用串行口进行1台主机与4台从机多机串行通讯连线图,其中1台从机通讯地址号为02H,请叙述主机向02H从机发送一个字节数据的过程(10分)
答:主机发送数据过程如下:
(1)将从机00~03H的REN置1,SM2=1,并使它们工作在串行口工作方式2或3。 (2)由主机向4个从机发出一帧地址址信息02H,第9位为1。从机接到信息后均发生中断,执行中断服务程序,将02H与自身地址做比较。若相同,则清SM2=0,若不同则SM2不变仍为1。
(3)主机发送一帧数据信息,第9位为0,从机接到信息后,只有SM2=0的从机发生中断,将数据信息收取,其余SM2=1的从机不放出中断,信息丢失,从而实现主机向02H从机发送一个字节数据的功能。 六、请回答:(共16分)
1.下图中外部扩展的程序存储器和数据存储器容量各是多少?(2分) 2.两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1) 3.请编写程序,要求:
(1)将内部RAM 30H~3FH中的内容送入1# 6264的前16个单元中;(4分) (2)将2# 6264的前4个单元的内容送入40H~43中;(4分)
AT89S51 ALE 8 P0.7 │ ● P0.0 PSEN 8 D0-D7 8 ● OE 9 8 ● P2.7 P2.6 P2.5 P2.4 │ P2.0 (6分,)
D0 │ D7 Q0 │ Q7 5 ● 8 ● 5 ● 8 A8-A12 CE +5V CS A0-A7 ● 5 8 A8-A12 CE +5V CS A0-A7 5 A0-A7 A8-A12 CE 74LS373 G OE 2764 1# 6264 2# 6264 OE WR D0-D7 OE WR 8
解: 1. 外扩程序存储器的容量是8K,外扩数据存储器的容量是16K
2. 2764范围:
C000H~DFFFH
1#范围: A000H~BFFFH 2#范围: 6000H~7FFFH
3.请编写程序 (1) MOV
MOV MOV
R1 ,#10H DPTR,@0A000H R0,#30H A,@R0 DPTR R0 R1,LOOP R1,#04H DPTR,#6000H R0 ,#40H @R0 ,A DPTR R0 R1,LOOP
LOOP: MOV
INC
MOVX @DPTR,A INC DJNZ RET
(2) MOV
MOV MOV MOV INC INC DJNZ RET
LOOP:MOVX A ,@DPTR
试题3 参考答案
一、填空题(31分,每空1分)
1.AT89S51单片机有( 2 )级优先级中断。
2.串行口方式2接收到的第9位数据送(SCON)寄存器的(RB8)位中保存。
3.当单片机复位时PSW=(00)H,这时当前的工作寄存器区是(0)区,R6所对应的存储单
10