简答题:5’ x 8 = 40’
基本一章至少一题
第一章
- 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?
答:
微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机
而微计算机、单片机它们都是一个完整的计算机系统
单片机是集成在一个芯片上的用于测控目的的单片微计算机。
- 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”?
答:
广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。
但多数人把 “嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。
目前“嵌入式系统”还没有一个严格和权威的定义。目前人们所说的“嵌入式系统”,多指后者。
第二章
定义在 2.10 低功耗节点模式
- AT89S52单片机有哪两种低功耗节电模式?说明两种低功耗节电模式的异同。
AT89S52单片机有两种低功耗节电工作模式:
空闲模式(idle mode)和掉电模式(power down mode)
- 空闲模式下,虽然振荡器仍然运行,但是CPU进入空闲状态。
此时,片内所有外围电路(中断系统、串行口和定时器)仍继续工作,SP、PC、PSW、A、P0~P3端口等所有其他寄存器,以及内部RAM和SFR中的内容均保持进入空闲模式前的状态。
因为CPU耗电量通常要占芯片耗电的80%~90%,因此CPU停止工作则会大大降低功耗。 - 掉电模式下,振荡器停止工作。
由于没有了时钟信号,内部的所有部件均停止工作,但片内的RAM和SFR的原来内容都被保留,有关端口的输出状态值都保存在对应的特殊功能寄存器中。
第三章
- 解释下列术语:手工汇编、机器汇编、反汇编
- 手工汇编:通过查指令的机器代码表(表3-2),逐个把助记符指令“翻译”成机器代码,再进行调试和运行。这种人工查表“翻译”指令的方法称为“手工汇编”。
- 机器汇编:借助于微型计算机上的软件(汇编程序)来代替手工汇编。通过在微机上运行汇编程序,把汇编语言源程序翻译成机器代码。
- 反汇编:将二进制的机器码程序翻译成汇编语言源程序的过程称为“反汇编”。
第四章
- 中断服务子程序与普通子程序有哪些相同和不同之处?
- RETI 指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断
- RET指令则没有这个操作。除了这一点两条指令不同外,其它操作都相同。
- AT89S52单片机响应外部中断的典型时间是多少?在哪些情况下,CPU将推迟对外部中断请求的响应?
在一个单一中断的系统里,AT89S51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。
在下述三种情况下,AT89S51将推迟对外部中断请求的响应:
- AT89S52正在处理同级或更高优先级的中断。
- 所查询的机器周期不是当前正在执行指令的最后一个机器周期。
- 正在执行的指令是RETI或是访问IE或IP的指令。
如果存在上述三种情况之一,AT89S52将丢弃中断查询结果,将推迟对外部中断请求的响应。
- 中断响应需要满足哪些条件?
一个中断源的中断请求被响应,必须满足以下条件:
- 总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。
- 该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。
- 该中断源的中断允许位=1,即该中断被允许。
- 无同级或更高级中断正在被服务。
第五章
计时器有应用题
- 定时器/计数器T1、T0的工作方式2有什么特点?适用于哪些应用场合?
方式2为初值自动装入的8位定时器/计数器,克服了在循环定时或循环计数应用时就存在用指令反复装入计数初值影响定时精度的问题。
第六章
有编程应用题
- 假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B”的帧格式。
字符“B”的ASCII码为“42H”,帧格式如下:
第七章 简答题
- LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?
静态显示时,欲显示的数据是分开送到每一位LED上的。
动态显示则是数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。
静态显示亮度很高,但口线占用较多。
动态显示口线占用较少,但是需要编程进行动态扫描,适合用在显示位数较多的场合。
编程题:10’ x 6 = 60’
第三章
- 编写程序,将内部RAM中45H单元的高4位清“0”,低4位置“1”。
MOV A,45H
ANL A,#0FH
ORL A,#0FH
MOV 45H,A
- 编写程序,查找在内部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
第五章
计时器有应用题
- 若晶体振荡器为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
第九章
- 编写程序,采用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
- 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、下图中外部扩展的数据存储器容量是多少?
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.下图中外部扩展的程序存储器和数据存储器容量各是多少?
2.两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1)
3.请编写程序,要求:
(1)将内部RAM 30H~3FH中的内容送入1# 6264的前16个单元中;
(2)将2# 6264的前4个单元的内容送入40H~43中;
解:
- 外扩程序存储器的容量是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
- 请回答:(共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.下图中外部扩展的程序存储器和数据存储器容量各是多少?
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.下图中单片机外部扩展的程序存储器和数据存储器容量各是多少?
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。
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