单片机期末复习

简答题:5’ x 8 = 40’

基本一章至少一题

第一章

  1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?

答:
微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机
而微计算机、单片机它们都是一个完整的计算机系统
单片机是集成在一个芯片上的用于测控目的的单片微计算机。


  1. 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”?

答:
广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。
但多数人把 “嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。
目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。


第二章

定义在 2.10 低功耗节点模式

  1. AT89S52单片机有哪两种低功耗节电模式?说明两种低功耗节电模式的异同。

AT89S52单片机有两种低功耗节电工作模式:

空闲模式(idle mode)和掉电模式(power down mode)

  • 空闲模式下,虽然振荡器仍然运行,但是CPU进入空闲状态。
    此时,片内所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0~P3端口等所有其他寄存器,以及内部RAM和SFR中的内容均保持进入空闲模式前的状态。
    因为CPU耗电量通常要占芯片耗电的80%~90%,因此CPU停止工作则会大大降低功耗。
  • 掉电模式下,振荡器停止工作。
    由于没有了时钟信号,内部的所有部件均停止工作,但片内的RAM和SFR的原来内容都被保留,有关端口的输出状态值都保存在对应的特殊功能寄存器中。

第三章

  1. 解释下列术语:手工汇编、机器汇编、反汇编
  • 手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。这种人工查表“翻译”指令的方法称为“手工汇编”。
  • 机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。
  • 反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。

第四章

  1. 中断服务子程序与普通子程序有哪些相同和不同之处?
  • RETI 指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断
  • RET指令则没有这个操作。除了这一点两条指令不同外,其它操作都相同。

  1. AT89S52单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应?

在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。

在下述三种情况下,AT89S51将推迟对外部中断请求的响应:

  • AT89S52正在处理同级或更高优先级的中断。
  • 所查询的机器周期不是当前正在执行指令的最后一个机器周期。
  • 正在执行的指令是RETI或是访问IE或IP的指令。

如果存在上述三种情况之一,AT89S52将丢弃中断查询结果,将推迟对外部中断请求的响应。


  1. 中断响应需要满足哪些条件?

一个中断源的中断请求被响应,必须满足以下条件:

  • 总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。
  • 该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。
  • 该中断源的中断允许位=1,即该中断被允许。
  • 无同级或更高级中断正在被服务。

第五章

计时器有应用题

  1. 定时器/计数器T1、T0的工作方式2有什么特点?适用于哪些应用场合?

方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。


第六章

有编程应用题

  1. 假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”的帧格式。

字符“B”的ASCII码为“42H”,帧格式如下:
在这里插入图片描述


第七章 简答题

  1. LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?

静态显示时,欲显示的数据是分开送到每一位LED上的。
动态显示则是数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。

静态显示亮度很高,但口线占用较多。
动态显示口线占用较少,但是需要编程进行动态扫描,适合用在显示位数较多的场合。


编程题:10’ x 6 = 60’

第三章

  1. 编写程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”。
		MOV		A,45H
		ANL		A,#0FH
		ORL		A,#0FH
		MOV		45H,A
  1. 编写程序,查找在内部RAM的30H~50H单元中是否有0AAH这一数据。若有,则将51H单元置为“01H”;若未找到,则将51H单元置为“00H”。
START:		MOV		R0,#30H
			MOV		R2,#20H
LOOP:		MOV		A,@R0
			CJNE	A,#0AAH,NEXT
			MOV		51H,#01H
			LJMP	EXIT
NEXT:		INC		R0
			DJNZ	R2,LOOP
			MOV		51H,#00H
EXIT:		RET

第五章

计时器有应用题

  1. 若晶体振荡器为11.0592MHz,串行口工作于方式1,波特率为4 800bit/s,写出T1采用方式2作为波特率发生器的方式控制字和初始化程序。

计数初值为FAH,参考的初始化程序如下:

		ANL 	TMOD,#0F0H		;屏蔽高4位
		ORL		TMOD,#20H		;控制字
		MOV		TH1,#0FAH		;写入计数初值
		MOV		TL1,#0FAH
		MOV		SCON,#40H

第七章

4.对下图所示的键盘,采用线反转法原理编写出识别某一按键被按下并得到其键号的程序。
在这里插入图片描述

先对P1口高四位送低电平,读取P1口低四位的值;
再对P1口低四位送低电平,读取P1口高四位的值,
将两次读到的值组合在一起就得到了按键的特征码,再根据特征码查找键值。

	KEYIN:		MOV		P1,#0FH					;反转读键
				MOV		A,P1
				ANL		A,#0FH
				MOV		B,A
				MOV		P1,#0F0H
				MOV		A,P1
				ANL		A,#0F0H
				ORL		A,B
				CJNE	A,#0FFH,KEYIN1
				RET								;未按键
	KEYIN1:		MOV		B,A						;暂存特征码
				MOV		DPTR,#KEYCOD			;指向特征码表
				MOV		R3,#0FFH				;顺序码初始化
	KEYIN2:		INC		R3
				MOV		A,R3
				MOVC	A,@A+DPTR
				CJNE	A,B,KEYIN3
				MOV		A,R3					;找到,取顺序码
				RET
	KEYIN3:		CJNE	A,#0FFH,KEYIN2			;未完,再查
				RET								;已查完,未找到,以未按键处理
	KEYCOD:		DB		0E7H,0EBH,0EDH,0EEH		;特征码表
				DB		0D7H,0DBH,0DDH,0DEH
				DB		0B7H,0BBH,0BDH,0BEH
				DB		77H,7BH,7DH,7EH

第九章

  1. 编写程序,采用82C55的PC口按位置位/复位控制字,将PC7置“0”,PC4置“1”(已知82C55各端口的地址为7FFCH~7FFFH)。

本题主要考察对82C55的C口的操作。
其方式控制字的最高位为0时,低四位控装置对C口置复位。由题目可知方式控制寄存器的地址为7FFFH。

			ORG		0H
	MAIN:	MOV		PTR,#7FFFH		;控制字寄存器地址7FFFH送DPTR
			MOV		A,#0EH			;将PC7置0
			MOVX	@DPTR,A
			MOV		A,#09H			;将PC4置1
			MOVX	@DPTR,A
			END
  1. AT89S52单片机扩展了一片82C55,若把82C55的PB口用作输入,PB口的每一位接一个开关,PA口用作输出,每一位接一个发光二极管,请画出电路原理图,并编写出PB口某一位开关接高电平时,PA口相应位发光二极管被点亮的程序。

电路图可参见图9-10,PA口每一位接二极管的正极,二极管的负极接地。PB口每1位接一开关和上拉电阻,开关另一端直接接地。这样只需要将读到的PB口的值送给PA口就可以满足题目要求了。

			ORG		0100H
MIAN:		MOV		A,#10000010B		;设置PA口方式0输出,PB口方式0输入
			MOV		DPTR,#0FF7FH		;控制口地址送DPTR
			MOVX	@DPTR,A			;送方式控制字
			MOV		DPTR,#0FF7DH		;PB口地址送DPTR
			MOVX	A,@DPTR			;读入开关信息
			MOV		DPTR,#0FF7CH		;PA口地址送DPTR
			MOVX	@DPTR,A			;PA口的内容送PB口点亮相应的二极管

第八章 存储器拓展题

五道题只考一题

  1. 请回答:
    1、下图中外部扩展的数据存储器容量是多少?
    2、三片6264的地址范围分别是多少?(地址线未用到的位填1)
    3、若外部程序存储器已扩展(未画出),请编写程序,要求:
    (1)将30H~3FH中的内容送入6264 1# 的前16个单元中;
    (2)将6264 2# 的前32个单元的内容送入40H~5FH中;

在这里插入图片描述

1.外部扩展的数据存储器为3片8K的RAM,外扩容量为24 K
2.

A15   A14   A13    地址范围
 0     1     1    6000H~7FFFH
 1     0     1    A000H~BFFFH

3.(1)程序如下:

     	ORG  	0000H
RESET:	AJMP	MAIN		;复位,转主程序
        ORG		0100H
MAIN: 	MOV		DPL,#00H	;初始化DPTR
        MOV		DPH,#60H
        MOV		R0,#30H.    ;初始化R0
LOOP:   MOV		A,@R0
		MOVX  	@DPTR,  A
        INC   	R0
        INC   	DPTR
        CJNE  	R0,#40H,LOOP  
        NOP
        RET

(2)程序如下:

		ORG   	0000H
RESET:	AJMP	MAIN		;转主程序
        ORG		0100H
MAIN: 	MOV		DPL#00H		;初始化DPTR
        MOV		DPH,#0A0H
        MOV		R0,#40H		;初始化R0
LOOP2: 	MOVX	A,@DPTR            
        MOV		@R0,A
        INC    	DPTR
        INC    	R0
        CJNE    R0,#60H,LOOP2    
        NOP
        RET   
  1. 请回答:
    1.下图中外部扩展的程序存储器和数据存储器容量各是多少?
    2.两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1)
    3.请编写程序,要求:
    (1)将内部RAM 30H~3FH中的内容送入1# 6264的前16个单元中;
    (2)将2# 6264的前4个单元的内容送入40H~43中;

在这里插入图片描述

解:

  1. 外扩程序存储器的容量是8K,外扩数据存储器的容量是16K
2764范围:	C000H~DFFFH
1#范围: 	A000H~BFFFH
2#范围: 	6000H~7FFFH

3.请编写程序
(1)

		MOV  	R1 ,#10H
        MOV  	DPTR, #0A000H
        MOV  	R0,#30H
LOOP:	MOV		A,@R0
        MOVX  	@DPTR,A
		INC 	DPTR        
		INC  	R0
        DJNZ  	R1,LOOP
		RET

(2)

		MOV  	R1 , #04H
   		MOV  	DPTR , #6000H
   		MOV  	R0 , #40H
LOOP:	MOVX  	A , @DPTR
   		MOV 	@R0 , A
   		INC  	DPTR
   		INC  	R0
   		DJNZ 	R1 ,LOOP
   		RET
  1. 请回答:(共14分)
    1.下图中外部扩展的程序存储器和数据存储器容量各是多少?
    2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位填1)
    3.请编写程序,要求:
    (1)将内部RAM 40H-4FH中的内容送入1# 6264的前16个单元中;
    (2)将2# 6264 的前4个单元的内容送入50H-53H中;

在这里插入图片描述

答:
1.
解外部扩展的程序存储器容量为:8KB
外部扩展的数据存储器容量为:8KB×2=16kb
2.

程序存储器2764地址的高3位:
A15    A14   A13
 0      0     0
地址范围为:0000H-1FFFH

数据存储器1#6264地址高3位:
A15     A14     A13
 0        1       1
地址范围为:6000H-7FFFH

数据存储器2#6264地址范围为:
A15     A14     A13
 1       0       1
地址范围为:A000H-BFFFH

3.编写程序
(1)

		MOV   RO, #40H
        MOV   DPTR, #6000H   	;设置数据指针为6000H
LOOP:	MOV   A, @RO       		; 将片内RAM(40-4FH)中的内容送入A中
        MOVX  @DPTR,A   		; 将A→@DPTR中
        INC  RO
        INC   DPTR
        CJNE  RO,#50H,LOOP 	; 将此子程序循环执行16次
        RET

(2)

		MOV   RO, #50H
        MOV   DPTR, #0A000H  	;  设置数据指针为A000H
  LOOP: MOVX  A, @DPTR  
        MOVX  @RO,A     		; 将外部数据存储器内容送入到片内中
        INC   RO
        INC   DPTR
        CJNE  RO,#54H,LOOP 	;  将此子程序循环执行4次
        RET
  1. 请回答:
    1.下图中外部扩展的程序存储器和数据存储器容量各是多少?
    2.三片存储器芯片的地址范围分别是多少??(单片机发地址时,每次只能选中一片芯片) 。
    3.请编写程序(用汇编语言),指令后要有注释,要求:
    (1)将内部RAM 40H~4FH中的内容送入1# 6264的前16个单元中;
    (2)将2# 6264 的前4个单元的内容送入片内RAM单元50H~53H中;

在这里插入图片描述

答:
1.
外扩的程序存储器容量为:8kB
外扩的数据存储器容量为:8kB×2=16kB
2.

程序存储器2764地址范围为: 
A15   A14   A13  
 0     0     0
范围为:0000H~1FFFH

数据存储器1#6264地址范围为: 
A15     A14     A13
0        1       1
范围为:6000H~7FFFH

数据存储器2#6264地址范围为: 
A15     A14     A13
1        0       1
范围为:A000H~BFFFH

3.编写程序
(1)

 		MOV   RO, #40H
        MOV   DPTR, #6000H  ;设置数据指针为6000H
LOOP:	MOV   A, @RO		;将片内RAM(40-4FH)中的内容送入A中
        MOVX  @DPTR,A   	;将A→@DPTR中
        INC  RO
        INC   DPTR
        CJNE  RO,#50H,LOOP	;将此子程序循环执行16次
        RET

(2)

		MOV   RO, #50H
		MOV   DPTR, #0A000H	;设置数据指针为A000H
LOOP: 	MOVX  A, @DPTR  
        MOVX  @RO,A     	;将外部数据存储器内容送入到片内中
        INC   RO
        INC   DPTR
        CJNE  RO,#54H,LOOP	;将此子程序循环执行4次
        RET
  1. 请回答:
    1.下图中单片机外部扩展的程序存储器和数据存储器容量各是多少?
    2.三片存储器芯片的地址范围分别是多少?(地址线未用到的位为1)
    3.请编写程序,将内部RAM 40H~4FH中的内容送入1# 6264的前16个单元中;

在这里插入图片描述

答:
1.
外部扩展的程序存储器容量为:8KB
外部扩展的数据存储器容量为:8KB×2=16KB
2.

程序存储器2764地址范围为:0000H~1FFFH
数据存储器1#6264地址范围为:6000H~7FFFH
数据存储器2#6264地址范围为:A000H~BFFFH

3.编写程序

		MOV   	R0,#40H
        MOV   	DPTR,#6000H   	;设置数据指针为6000H
LOOP:	MOV   	A,@R0       	;将片内RAM(40~4FH)中的内容送入A中
        MOVX  	@DPTR,A   		;将A→@DPTR中
        INC  	R0
        INC   	DPTR
        CJNE  	R0,#50H,LOOP 	;将此子程序,循环执行16次
        RET
  1. 请回答:
    1.下图中外部扩展的程序存储器和数据存储器容量各是多少?地址范围分别是什么?没用到的地址线设为1。
    2.编写汇编程序,将ROM中以D300H为首的16个表格数据送入2# 6264的前16个单元中。已知特殊功能寄存器AUXR1的最低有效位可用于选择DPTR0和DPTR1。
    在这里插入图片描述

答:
1.
外扩1片程序存储器2764,容量为8KB,
地址范围是:C000H~DFFFH

外扩2片数据存储器6264,容量为16KB,
地址范围是:
1# 6264: C000H~DFFFH
2# 6264:A000H~BFFFH

2.

		MOV   AUXR1,#00H
		MOV   DPTR, #0D300H
		MOV	  AUXR1,#01H
		MOV   DPTR, #0A000H
		MOV	  R3,#10H
LOOP:	MOV   AUXR1,#00H
		MOVC  A, @A+DPTR
		INC   DPTR
		MOV   AUXR1,#01H
		MOVX  @DPTR, A
		INC   DPTR
		DJNZ  R3,LOOP

		MOV	  R3,#10H
		MOV	  R0,#30H
		MOV   DPTR, #0D300H
LOOP:	MOVC  A, @A+DPTR
		INC   DPTR
		MOV   @R0,A
		INC	  R0
		DJNZ  R3,LOOP
		MOV   R3,#10H
		MOV	  R0,#30H
		MOV   DPTR, #0A000H
LOOP1:	MOV	  A, @R0
		MOVX  @DPTR, A
		INC   DPTR
		INC	  R0
		DJNZ  R3,LOOP1
  • 15
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值