单片微型计算机原理和接口技术习题解答赖修琳.docx
- 文档编号:10719961
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:31
- 大小:47.85KB
单片微型计算机原理和接口技术习题解答赖修琳.docx
《单片微型计算机原理和接口技术习题解答赖修琳.docx》由会员分享,可在线阅读,更多相关《单片微型计算机原理和接口技术习题解答赖修琳.docx(31页珍藏版)》请在冰豆网上搜索。
单片微型计算机原理和接口技术习题解答赖修琳
<1.1>
单片机是指单一集成电路芯片,是集成的微型计算机,其包含中央处理器CPU、内存MEM和输入输出I/O三部分。
而个人计算机至少包含显示器和键盘,其核心部分也包含CPU、MEM和I/O,也可以用单片机制作个人计算机。
注:
个人计算机强调人机交互操作,而单片机主要应用于自动控制。
现代的个人计算机内存容量比较大,一般都超过1MBRAM,难以集成到单片机中,所以个人计算机的内存MEM都采用独立的MEM芯片。
<1.2>
单片机由于集成在单一芯片上,所以高可靠性是其最主要的特点。
单片机由于CPU、MEM和I/O的差别,种类繁多,能适应各种各样的要求,性价比极高。
<1.3>
1)民用智能家电;2)个人移动电子设备:
电子表,手机,MP3;3)工业智能测控;4)农业,医疗,军事;5)计算机网络设备
<1.4>
1)CPU;2)I/O:
定时计数器、普通I/O、串行通信;3)MEN:
FLASH+RAM
<1.5>
第13页。
计算机各组成部分的信息传输的一组公共线路。
总线分为片总线,内总线,和外总线。
采用总线方便系统的功能扩充。
<1.6>
CPU读存储器的过程:
1)送出地址2)读信息有效3)存储器对应单元的数据输出到总线4)CPU取得数据5)结束读信号地址。
CPU写存储器的过程:
1)送出地址,选择存储器对应单元2)送出数据3)输出有效写信号4)结束写信号5)结束数据和地址信号。
<1.7>
B、D、H;十进制。
<1.8>
该题目的意思应该是8位二进制数。
无符号书0~255,带符号数通常是补码:
-128~127;BCD码是指压缩BCD码:
00~99。
<1.9>
这是一个7位二进制书,补码是-110111B=-37H=-(48+7)=-55。
无符号二进制数是49H=4*16+9=73。
‘A’的ASCII码是41H,49H既是字母‘I’,BCD码是49.
<1.10>
电脑型电饭锅,电子表。
<1.11>
第15页,1)程序地址指针寄存器(PC或AR)的内容输出到地址总线,选择程序存储器单元;2)控制单元输出读信号;3)存储器输出指令内容到数据总线;4)CPU将指令内容存入CPU指令寄存器;5)PC指针加一;6)指令译码;7)执行指令。
<1.12>
1)24+23+22+21+20+2-2=16+8+2+1+0.25=27.25
2)256-43+2-1=100H-2BH+2-1=.1B=0D5.8H
3)126=128-2=80H-02H=7EH
4)111=128-17=80H-11H=6FH=01101111B
5)7542
6)5923H=0101100100100011B
7)-(100H-85H)=-7BH=-(7*16+11)=-123
8)-112=100H-70H=90H
9)84H=-(100H-84H)=-7CH=-124
<2-1>
(1)8位CPU
(2)程序存储器8KFlash
(3)256B内部RAM
(4)4个8位I/O端口
(5)3个16位定时/计数器
(6)6个中断源
(7)1个串行接口
<2-2>
(1)4*8=32根I/O线
(2)P0是数据线和低8位地址线的分时复用总线
P2是高8位地址总线
P3.6和P3.7是外扩RAM的读写信号线
(3)地址总线16位,数据总线8位
<2-3>(35页)
(1)难记可以列举。
最多128个通用PSW,A,B,SP,DPH,DPL
T0:
TH0,TL0
T1:
TH1,TL1
中断:
IE,IP
I/O:
P0,P1,P2,P3
串口:
SCON,SBUF
电源:
PCON
T2:
TH2,TL2;RCAP2H,RCAP2L;T2CON,T2MOD;
难点:
WDTRST;AUXR;AUXR1;DP0L,DP0H;DP1L;DP1H
(2)问题是分组的方法:
可按
(1)的方式分组
(3)内容太多,不列举。
<2-4>
(1)内部RAM:
00~FFHSFR:
80H~FFH
RAM又分成:
寄存器区00~1FH
位寻址区20H~2FH
通用RAM30H~FFH
(2)各区域寻址方式有差别
<2-5>
RESET:
高电平复位;
ALE:
外部低8位地址有效
PSEN:
取代码有效(外部);
EA:
选择内外程序存储器
INT0,INT1,T0,T1,RD,WR,X0/X1晶振
<2-6>
节电是CPU无时钟而停止工作,其它部分正常。
掉电是所有部分无时钟,振停。
因为电池容量有限,要延长便携设备的工作时间,节电尤其重要。
<2-7>
通常有冷启动上电复位,热启动手动复位,以及看门狗复位。
冷启动复位后,程序指针PC的值是确定的(PC)=0000H,其次是中断允许EA=0;P0=P1=P2=P3=0xFF。
RAM的值是随机值,一般还有堆栈指针(SP)=0x07;(PSW)=00H.
而热启动和看门狗复位时,除RAM保持复位前的值外,其它寄存器的值同上。
<2-8>
AT89S52采用的是哈佛结构,程序和数据存储是独立的,它们共用地址数据总线,但是通过分时共享,PSEN信号有效时取程序空间,而WR和RD有效时取数据空间,PSEN,WR和RD三个信号任何时刻最多仅一个有效。
<2-9>
后进先出或先进后出的队列称为堆栈。
AT89S52的堆栈设在内部RAM数据区;SP是堆栈指针;存取数据的原则是先将SP增一再存入数据,取数时根据SP取数后将SP减一。
<2-10>
DPTR是数据指针寄存器。
用于存取外部数据RAM和程序空间的数据,由DPH和DPL组成。
<2-11>
PC:
16位,但不在SFR区域中。
见page38最后一段。
<2-12>
有4组工作寄存器;8个;PSW寄存器中的RS1和RS0位。
<3-1>
假设晶体频率为12MHZ,任何时候只有一个灯亮,每延时一定时间换一盏灯。
由于没学过51的汇编,可用C语言实现。
#include
VoidDelay(void)
Voidmain(void)
{
inti;
P1=0xFF;
P2=0xFF;
While
{
P1=0xFE;Delay();//p1.0灯亮
P1=0xFD;Delay();//p1.1灯亮
.
.
.
P1=0xFF;//p1所有灯灭
P2=0xFE;Delay();//p2.0灯亮
.
.
.
P2=0x7E;Delay();//p2.7灯亮
P2=0xFF;//p2所有灯灭
}
}
VoidDelay(void)//延时
{
inti,j;
for(i=0;i<1000;i++)
for(j=0;j<1000;j++)
}
<3-2>
在p3.0引脚上设一键,按下为0,开机后判断p3.0的状态决定流水方向。
if(p3&0x01)//只判p3最低位
LoopUpDown();
else
LoopDownUp();
<3-3>
书中没有介绍数码管的工作原理,自己查资料完成。
<3-4>同上
<3-5>同上
提示:
自学5.2.3,习题集中应预习相关内容。
<4-1>
汇编指令中存取数据的方式或数据所在地址的方式(见page74:
表4-1)
(1)立即数:
程序空间
(2)直接地址:
RAM:
00~7FH,SFR:
80H~FFH
(3)间接地址:
RAM:
00~FFH,外部RAM
(4)变址:
程序
(5)寄存器:
A,DPTR,R0~R7,乘除法中得B,位寻址的C
(6)相对:
程序
(7)位寻址:
内部RAM:
20~2FH;SFR中被8整除的字节
<4-2>
255条(111条不科学)page74
(1)移动;
(2)算术;(3)逻辑;(4)位操作;(5)控制
每类包括的指令不好记忆
指令[操作数1[操作数2[操作数3]]]
CJNEA,#55,NEXT
控制指令,累加器A中得内容不是55时转移到NEXT
<4-3>
MOVR2,#5
MOVR0,#30H
MOVDPTR,#100H
LOOP:
MOVA,@R0
MOVX@DPTR,A
INCR0
INCDPTR
DJNZR2,LOOP1
MOVR2,#10
MOVDPTR,#2000H
MOVR0,#40H
LOOP2:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR2,LOOP2
<4-4>
MOVR2,#6
MOVDPTR,#1000H
MOVR0,#0
LOOP:
MOVP2,#20H
MOVXA,@R0
MOVP2,#30H
MOVX@R0,A
CLRA
MOVCA,@A+DPTR
MOVP2,#20H
MOVX@R0,A
INCR0
INCDPTR
DJNZR2,LOOP
<4-5>
CLRC
MOVA,51H
SUBBA,41H
MOV31H,A
MOVA,50H
SUBBA,40H
MOV30H,A
<4-6>
MOVDPTR,#1000HINCDPTR
MOVA,30HMOVA,31H
ADDA,40HADDCA,41H
DAADAA
MOVX@DPTR,AMOVX@DPTR,A
<4-7>
设低8位存R6,高8位存R5
MOVA,R3
MOVB,R4
MULAB
MOVR5,B
MOVR6,A
<4-8>
MOVA,20H
ANLA,21H
ORLA,22H
XRLA,23H
ADDA,ACC
CPLA
MOV25H,A
<4-9>
MOVR0,#30H
MOVR2,#20
MOVB,#0
LOOP:
CJNZ@R0,#‘W’,NEXT
INCB
NEXT:
INCR0
DJNZR2,LOOP
MOVA,B
JZNEXT2
MOVA,#‘Y’
SJMPNEXT3
NEXT2:
MOVA,#‘N’
NEXT3:
NOP
<4-10>
MOVA,30H
MOVB,#10H
DIVAB//拆分BCD码,分别存入A,B
MOLAB
DAA
MOV31H,A
MOVB,#10
DIVA,B
SWAPA
ORLA,B
SWAPA
<4-11>
当在30H区域找到一个最小值时,将相应单元置成FFH。
从小到大找完后,再移动到50H区域。
B保存最小值
MOVR3,#10
LOOP2:
MOVR1,#40H
MOVR2,#10
MOVR0,#30H
MOVA,#0FFH
LOOP1:
MOVB,@R0
CJNEA,B,$+3
JNC
MOVA,@R0
MOVDPH,R0;记忆地址
INCRO
DJNZR2,LOOP1
MOV@R1,A
MOVR0,DPH
MOV@R0,#0FFH
INCR1
DJNZR3,LOOP2:
倒转40H区域到50H区域
MOVR2,#10
MOVR0,#40H
MOVR1,#50+9
LOOP3:
MOVA,@R0
MOV@R1,A
INCR0
DECR1,LOOP
<4-12>
MOVA,30H
MOVB,#10
DIVA,B
MOV40H,A
MOVA,B
MOVB,#10
DIVA,B
MOV41H,A
MOV42H,B
<4-13>
MOVR2,#10
MOVR0,#40H
MOVR1,#50H
LOOP:
MOVA,@R0
ADDA,#’0’
MOV@R1,A
INCR0
INCR1
DJNZR2,LOOP
<4-14>
MOVR2,#16
MOVR0,#30H
MOVR1,#40H
LOOP:
MOVA,@R0
CJNEA,#0AH,$+3
JNCNEXT1
ADDA,#’0’
SJMPNEXT2
NEXT1:
ADDA,#‘A’-0AH
NEXT2:
MOV@R1,A
INCR0
INCR1
DJNZR2,LOOP
<4-15>
MOVR2,#30H
MOVDPTR,#2000H
MOVP2,#10H
MOVR0,#00H
MOVR1,#30H
LOOP:
MOVA,@DPTR
MOV@R1,A
MOVX@R0,A
CLRA
MOVX@DPTR,A
INCDPTR
INCR1
INVR0
DJNZR2,LOOP2
<5-1>
由于p0~p3是准双向口,作为输入时首先应输出高电平。
<5-2>
(1)本题的LED应该指数码管,多个LED可以静态,也可以动态显示。
(2)该题中的“基本原理”不明确,应该指动态数码管的显示原理。
其原理是分时动态扫描每支LED,所有LED每秒至少要显示25次,利用人眼的视觉特性实现同时显示的现象。
(3)静态显示不存在该问题,所以此处仍指动态显示方式。
其他操作是指无法保证LED的扫描显示,可以理解应用定时中断实现动态扫描?
<5-3>
题目不明确,何为“简易键盘”?
应给出连线图。
(1)独立按键:
中断,查询
(2)矩阵键盘:
扫描
<5-4>
P0要外接上拉电阻(通常情况,保证与P1~P3相同)
<5-5>
P0是数据总线与低8位地址总线的复用总线,当ALE为高时,P0为A0~A7,当ALE为低时P0为D0~D7,P2是高8位地址总线。
<5-6>
P3.0:
RXD串行口接收信号输入
P3.1:
TXD串行口发送信号输出
P3.2:
INT0外部中断输入0
P3.3:
INT1外部中断输入1
P3.4:
T0计数器的输入时钟
P3.5:
T1计数器的输入时钟
P3.6:
WR外部扩展RAM的写信号
P3.7:
RD外部扩展RAM的读信号
<5-7>
由于有6位数,静态方式要较多的硬件,所以采用动态方式。
采用共阴数码管,P1接段选,P2接字选即可。
如果亮度不够,可在P1接上拉电阻,增加驱动电流。
ORG0000H
LOOP:
MOVP1,#(1的代码)
MOVP2,#11111110B
LCALLDELAY
.
.
.
MOVP1,#(2的代码)
MOVP2,#11011111B
LCALLDELAY
LJMPLOOP
DELAY:
MOVR6,#100
DELAY1:
MOVR7,#100
DJNZR6,DELAY1
RET
END
<5-8>
在P1接静态数码管(共阴)。
在P2和P3接10个独立按键。
ORG0000H
MOVP2,#0FFH
MOVP3,#0FFH
LOOP:
JBP2.0,LOOP1
MOVP1,#(0代码)
LJMPLOOP
LOOP1:
JBP2.1,LOOP2
MOVP1,#(1代码)
JMPLOOP
.
.
.
JBP3.0
MOVP1,#(8...)
LJMPLOOP
JBP3.1
MOVP1,#(9...)
LJMPLOOP
END
<5-9>
1ms=800us+200us=200us*(4+1)
ORG0000H
LOOP:
SETBP1.0
LCALLDELAY200
LCALLDELAY200
LCALLDELAY200
LCALLDELAY200
CLRP1.0
LCALLDELAY200
SJMPLOOP
DELAY:
MOVR2,#100
DJNER2,DELAY
RET
END
修正时R2值可以改为98
<5-10>
大题,超难。
字符‘B’应改为‘b’
P1段选,P0字选,共阴动态
P2和P3独立按键
4位数存入30H~33H/40H~43H
ORG000H
MOVR0,#30H
MOVR2,#4
LCALLKeyIn;显示
LCALLCompare;得证不重复
JZ
MOV@R0
INCR0
DJNER2
K设置显示
同上输入40H~43H
比较30H~33H/40H~43H,求得A参数
求得B参数
显示A、B参数
A参数不为4
结束
<5-11>
在P1和P2端口上接两个共阴数码管(静态),酒瓶通过信号接到P3.2,输出脉冲接P3.3。
当有酒瓶通过时,光线被遮挡,光敏三极管截止,P3.2为高电平,否则P3.2为低电平。
30H单元存酒瓶计数值。
设晶体频率为12MHz
ORG0000H
Start:
MOV30H,#0;开始0瓶
Loop:
LCALLSHOW
JNBP3.2,$
JBP3.2,$
INC30H
LCALLSHOW
MOVA,30H
CJNEA,#12,Loop
SETBP3.3
MOVR7,#100
Loop1:
MOVR6,#100
Loop2:
MOVR5,#50
DJNER5,$
DJNER6,Loop2
DJNER7,Loop1
CLRP3.3
LJMPStart
END
<6-1>
处理器在执行正常程序过程中,发生某一事件,需要处理器暂停当前的程序,转而去处理突发事件。
这种现象称为中断。
中断的主要功能是解决突发事件的处理能力。
<6-2>
6个中断源
X0:
0003H
T0:
000BH
X1:
0013H
T1:
001BH
RS:
0023H
T2:
002BH
补充说明:
中断向量通常是可改变的地址,放在之指定位置表中,中断入口是固定不变的。
本题应该是中断入口,而非中断向量。
<6-3>
当处理器在处理某中断事件时,又再次被另一个中断事件中断,也就是新事件的中断级比之前的中断高。
这种处理器中则支持不同级别的中断,这就是中断优先级别的问题。
单片机中存在同级别的自然优先权问题和不同优先级问题高级别的中断将中断低级别中断,发生中断嵌套现象。
<6-4>
MOVIP,#0
SETBPT2
SETBEX0
SETBEX1
SETBET2
SETBES
SETBEA
<6-5>
TF0,TF1,IE0,IE1,TF2,RI,TI,TF0,TF1在中断服务返回时自动清零。
IE0,和IE1都工作在下降沿方式时,中断返回时自动清零。
而TF2,RI,TI必须通过软件清零。
<6-6>
产生了中断请求
允许了该中断
允许CPU中断,即EA=1
当前CPU没有在中断服务或正在服务的中断级别比该中断级别低
执行完了一条制定,如果是RETI指令或是处理中断IE,IP允许的指令,必须还要执行一条指令。
<6-7>
中断请求
CPU响应中断
保护现场
中断服务
恢复现场
中断返回
<6-8>
将X0或X1置为电平中断方式,扩展中断源相与输入,同时各扩展源通过I/O并口输入查询
将T0,T1,T2改为计数器方式中断,计数值为-1
<6-9>
RETI
操作IE和IP的指令
<6-10>?
之前计算机智能按指令批量处理,不能实现人机交互工作。
中断概念的提出,才让计算机能解决实时事件。
<6-11>
烧水设一气阀,烧开时触发一开关,变换成电压信号低电平,接P3.2产生中断,单片机响应中断后关电源或燃气阀,同时输出报警信号。
<6-12>?
降低了系统的效率和实际性
<6-13>
可屏蔽中断是指通过指令可关闭被开放的中断,而非屏蔽中断,是指一但开放后,无法通过指令关闭的中断,非屏蔽中断常用于一些非处理不可的突发事件,比如掉电要保护当前数据等。
<6-14>
两者都让CPU执行指定地址的指令。
但复位时CPU内很长寄存器被置为固定值。
而中断在执行指定地址的指令前,会将当前的PC值压栈,而且不影响硬件。
<6-15>
中断入口是指某中断产生中断请求后,CPU响应中断直接转入到固定地址,该地址即为中断入口。
而中断矢量是指CPU响应中断时,CPU从某向量表中取得一运行地址,该地址通常可通过软件修改设置。
<6-16>
电平中断适用那些通过软件方式可以清除的中断。
而边沿中断适合事件记录,即使CPU响应中断后该中断信号已消失,但这种中断能记忆曾经发生过的中断。
<6-17>
如果首先出现的中断还没消失,而又产生了第二个中断,且在CPU响应中断之前所有中断都消失了,这样采用边沿中断,但无法查出某个扩展中断产生过。
<7-1>
有3个,T0,T1,T2
T0有4中工作方式。
方式0为13位非重载;方式1为16为非自动重载;方式2为8为自动重载;方式3为双8为两计数器。
T1有3中工作方式,无T0的方式3。
T2有16位重载方式或工作在捕获模式。
<7-2>
此题目有问题。
T1无方式3。
T0工作在方式3时,T1通常工作在方式2作为串口的速率发生器。
此时T0的TH08位计数器将使用T1的TR1,TF1标志控制位,工作于定时器模式。
<7-3>
通过T2CON中的RCLK和TCLK进行设置,为1时用T2产生波特率,否则用T1产生波特率,只要两者不同,就可以用T1和T2分别产生收发速率,从而实现串口收发速率不相同的功能。
<7-4>
初始化时让T1工作在计数器方式1,而T0工作在定时器方式1,初始值分别为-1000和-2000.首先启动T1,当T1产生溢出后启动T0,到T0产生溢出时,重复上述过程即可。
ORG0000H
Loop:
MOVTCON,#0
MOVTMOD,#01010001B
MOVTH1,#high(-1000)
MOVTL1,#low(-1000)
MOVTH0,#high(-2000)
MOVTL0,#low(-2000)
SETBTR1
JNBTF1,$
SETBTR0
JNBTF0,$
LJMPLoop
END
<7-5>
由于对精度没有要求,可用T0工作在定时方式1,实现计时,每次定时2.5ms
ORG0000H
MOVTCON,#01H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微型计算机 原理 接口 技术 习题 解答 赖修琳