内容发布更新时间 : 2024/12/24 1:55:01星期一 下面是文章的全部内容请认真阅读。
以给出的指令操作码为依据,请判断MCS—5l单片机的下列各条指令的书写格式是否有错误,如有请说明错误原因。
1.MUL R0R1 乘法指令应使用A、B寄存器操作
2.MOV A,@R7间接寄存器使用R7有误,间址寄存器只能使用R0、R1 3.MOV A,#3000H 8位累加器A不能接受16位数据
4.MOVC @A+DPTR,A MOVC指令为对程序存储区操作指令,累加器的内容不可通过变址方式送入程序存储器,两操作数写反了
5.LJMP #1000H 长转移指令中的操作数为16位转移地址,不能用立即数的形式来表达。
五、寻址方式(5分,每问1分)
说明MCS—51单片机的下列各条指令中源操作数的寻址方式(可直接在每条指令后面书写) 1.ANL A,20H 直接寻址
2.ADDC A,#20H 立即寻址 3.JZ rel 相对寻址 4.CLR C 位寻址
5.RRA 寄存器寻址
六、使用简单指令序列完成以下操作(12分)
1.请将片外RAM20H—25H单元清零
MoV R0,#20H
MOV R7,#06H CLR A
LOOP:MOVX @R0,A INC R0
DJNZ R7,LOOP
2.请将ROM3000H单元内容送R7
MOV DPTR, #3000H
CLR A
MOVC A,@A+DPTR
MOV R7,A
七、编程题(18分)
已知一MCS—51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM
的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。
CY 0 A 01H DPTR 8000H 片外01H 0lH 片外00H 00H 片外8000H 86H MOV DPTR,#8000H ;加数单元地址送DPTR MOVX A,@DPTR ;取加数之一 ADD A,20H ;两数相加
MOV R0,#00H ;和值的低位送片外00H单元 MOVx @R0,A INC R0
CLR A ;计算和值的高位 ADDC A,#00H
MOVx @R0,A ;高位送片外01H单元 RET
八、判读电路题(14分)
下图为MCS—51单片机系统中混合扩展多片存储器2764、6264芯片部分连线电路图。 试分析电路并回答下列问题:
1.请简单叙述2764芯片的功能、容量,在电路中起什么作用?
2764为EPROM型存储器,其容量为8K,在电路中通常是作为程序存储器使用
2.请简单叙述6264芯片的功能、容量,在电路中起什么作用?
6264为随机存储器,其容量为8K,在电路中通常是作为数据存储器使用
3.请分析各片2764、6264所占用的单片机数据存储空间的地址范围是多少? U3:0000H—1FFFH U4:2000H—3FFFFH U5:Co00H—DFFFH U6:E000H—FFFFH
一、填空题(每空1分,共10分)
1.单片机内有组成微机的主要功能部件CPU、存储器 和I/O接口。
2.堆栈的特性是 先进后出,8051的堆栈一般开辟在内部RAM30H~7FH的范围内,其堆栈指针是SP。
3.RS232C是串行通信总线标准。 4.8255是通用的可编程并行接口。
5.MCS-51有一个全双工的 异 步串行口,有 4 种工作方式。
二、简述题(每题5分,共25分) 1.单片机的特性主要有哪些?
单片机具有体积小、可靠性高、控制功能强、使用方便、性能价格比高、容易产品化等特点
2.8031、8051、8751有何异同?
8051、8751和8031均为8位单片机,其内部结构是基本相同的
不同点为:8051内部有4KBROM,8751内部有4KBEPROM,而8031内部无程序存储器
3.MCS-51的位存储区在哪里?寻址范围是多少?
内部RAM的20~2FH为位寻址区域,位地址范围00~7FH;特殊功能寄存器中地址能被8整除的字节地址单元也可以位寻址,位地址范围80~FFH;位存储区共256个位
4.8051的定时器/计数器有几个?是多少位的?有几种工作方式?其工作原理如何? 8051有2个16位的定时器/计数器,有4种工作方式。
定时器与计数器的工作原理是相同的,8051的定时器/计数器是根据输入的脉冲进行加1计数,当计数器溢出时,将溢出标志位置1,表示计数到预定值。
5.8051有哪几个中断源?哪些是内部中断源?哪些是外部中断源?
8051有5个中断源,分别是定时器/计数器T0、T1的溢出中断TF0、TF1,串行口的收/发中断RI/TI,外部中断 、 ;其中定时器/计数器T0、T1的溢出中断TF0、TF1、串行口的收/发中断RI/TI是内部中断源,外部中断 、 是外部中断源。
三、判断题(20分)
1.判断以下各条指令是否正确(LL1和PROC为标号)(10分) (1)MOVX @R0,B X (2)MOV A,30H O (3)MOVX A,30H X (4)ADDC A,R7 O (5)SUB A,R2 X (6)ANL #99H ,36H X (7)MOV C,ACC.0 O (8)ORL P1.0,P3.1 X (9)JBC P0,LL1 X (10)ACALL PROC O
2.判断以下说法是否正确,不正确予以改正。(10分)
(1)单片机是面向数据处理的。×单片机是面向控制的
(2)定时器与计数器的工作原理均是对输入脉冲进行计数。O
(3)由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,所以其串行口不能同时发送和接收数据,即不是全双工的串行口。
×由于MCS-51的串行口的数据发送和接收缓冲器都是SBUF,但在物理上,实际上是两个缓冲器,其串行口可以同时发送和接收数据,是全双工的串行口。
(4)END表示指令执行到此结束。× END表示指令汇编到此结束
(5)ADC0809是8位逐次逼近式模/数转换接口。O
四、阅读程序(20分)
1.下列各条指令其源操作数的寻址方式是什么?各条指令单独执行后,A中的结果是什么?(5分)设(60H)=35H,(A)=19H,(R0)=30H,(30H)=0FH。 (1)MOV A,#48H ;寻址方式:立即寻址 (A)=48H (2)ADD A,60H ;寻址方式:直接寻址 (A)=4EH (3)ANL A,@R0 ;寻址方式:寄存器间接寻址 (A)=09H
2.阅读下列程序段,写出每条指令执行后的结果,并说明此程序段完成什么功能?(15分) MOV R1,#30H ;(R1)= 30H MOV A,#64H ;(A)= 64H ADD A,#47H ;(A)= ABH ,(CY)= 0, (AC)= 0 DA A ;(A)= 11H ,(CY)= 1 , (AC)= 1 MOV @R1,A ;(R1)= 30H ,(30H)= 11H
此程序段完成的功能:求两个BCD码数(64H和47H)的和,并将结果放在内部RAM的30H单元。
五、计算(画图)题(10分)
若8051的晶振频率fosc为6MHz,定时器/计数器T0工作在工作方式1,要求产生10ms定时,写出定时器的方式控制字和计数初值(分别写出TH0与TL0值)。 (1)T0:定时方式,工作在方式1。 方式字TMOD=01H
(2)fosc=6MHz,16位计数器,10ms定时,设计数初值为a, t=12/ fosc*(216 - a) 10*103=12/6 *(216 - a) a=60536=EC78H 即TH0=ECH TL0=78H 所以:TMOD=01H TH0=ECH TL0=78H 六、编程题(15分)
1.阅读程序并填空,形成完整的程序以实现如下功能。(5分)
有一长度为10字节的字符串存放在8031单片机内部RAM中,其首地址为40H。要求将该字符串中每一个字符加偶校验位。(以调用子程序的方法来实现。) 源程序如下: ORG 1000H MOV R0,#40H MOV R7,#10 NEXT: MOV A,① ACALL SEPA MOV @R0,A INC R0 DJNZ ②,NEXT SJMP $ SEPA: ADD A,#00H ③ PSW.0,SRET ORL A,④ SRET: ⑤
① @R0 ② R7 ③ JNB ④ #80H ⑤ RET
2.从内部RAM30H单元开始,有10个单字节数据。试编一个程序,把其中的正数、负数分别送40H和50H开始的内部RAM单元。(10分) MOV R0,#30H MOV R1,#40H MOV A,#50H MOV R7,#10 LOOP: MOV 20H,@R0 JB 20H.7,FSHU ZSHU: MOV @ R1,20H INC R1 SJMP NEXT FSHU: XCH A,R1 MOV @R1,A XCH A,R1 INC A
NEXT: DJNZ R7,LOOP SJMP $
一、填空(每题2分,共10分)