赖美云有没有一米五wifi

单片机结构和原理 - zhliao - 博客园
随笔 - 119
89C51单片机结构框图
1、一个8位 的微处理器CPU。
2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。
3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。
4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。
5、两个或三个定时/计数器:&每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制
6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。
7、片内振荡器和时钟产生电路:但需外接晶振和电容。
8、五个中断源的中断控制系统。
9、具有节电工作方式:休闲方式及掉电方式。
在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的15%。在掉电方式中,片内振荡器停止工作,由于时钟被&冻结&,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。这种方式下的电流可降到15 &A以下,最小可降到0?6 &A。
由中央处理单元(CPU)、存储器(ROM及RAM)和I/O接口组成。89C51单片机内部结构如图所示:
&下面介绍的是mcs-51
MCS-51单片机存储器的配置特点
① 内部集成了4K的程序存储器ROM; & & & & & & & & & & & &
② 内部具有256B的数据存储器RAM; & & & & & & & & & & & &&
③ 可以外接64K的程序存储器ROM和 数据存储器RAM。
从物理结构的角度讲,51单片机的存储系统可以分为四个存储空间:既片内ROM,RAM和片外ROM、RAM。
从逻辑上讲(既编程的角度),51单片机的存储系统实际上分为三个存储空间。
1.& 片内数据存储器RAM;
2.& 片外数据存储器RAM;
3.& 片内或外的程序存储器ROM(由EA电平决定)。
1.程序存储器ROM用于存放程序、常数或表格。
2.在51单片机中,由引脚 /EA 上的电平选择内、外ROM: EA=1时,CPU执行片内的4KROM中的程序; EA=0时,CPU选择片外ROM中的程序。
3.无论是使用片内还是使用片外ROM,程序的起始地址都是从ROM的0000H单元开始。
4.尽管系统可以同时具备片内ROM和外部ROM,但是在一般正常使用情况下,通过/EA的设定来选择其一(或者使用内部ROM,或者使用外部ROM)。
5.如果EA=1(执行片内程序存储器中程序时):如果程序计数器的指针PC值超过0FFFH(4K)时,单片机就要自动的转向片外的ROM存储器且从1000H单元开始执行程序(无法使用片外ROM的低4K空间)。
6.当程序超过4K时,有两种使用程序存储器ROM的方法:
①设置EA=0,使用外部ROM。从地址=0000H开始;
②设置EA=1,使用内部的4KROM和外部ROM(地址从1000H开始的单元)。
程序存储器六个特殊的单元:
在ROM中有六个单元具有特定功能。
0000H单元:复位时程序计数器PC所指向的单元,因此用来& 存放程序中的第一条指令;
0003H单元:外部中断/INT0的矢量入口地址;
000BH单元:定时器T0溢出中断的矢量入口地址;
0013H单元:外部中断/INT1的矢量入口地址;
001BH单元:定时器T1的溢出中断矢量入口地址;
0023H单元:串行口接收、传送的中断矢量入口地址。
矢量入口单元:在编写中断程序时,写入对应的&跳板指令&
单片机第一条指令的两个特征:
①存放在ROM的0000H单元;
②必须是&跳转指令&以跳过下面的5个中断矢量,转到后面的真正的主程序入口0100H单元。
&&ORG& 0000H& LJMP& 0100H
& ORG& 0100H
START:& MOV& A,#00H
& && ∶& ∶
& && ∶ &∶
& && ∶& ∶
& && ∶ &∶
外部程序存储器:
当单片机使用外ROM存储器时(扩展系统),必须设定/EA=0,此时单片机的端口功能就要发生相应的改变:
&① P0、P2作为外部ROM的地址和数据总线;
&② 使用引脚/psen信号来选通外部ROM的数据三态输出。
内部数据存储器RAM:
无论在物理上还是逻辑上,系统中RAM 都可分为两个独立空间:内部和外部RAM。由不同的指令来访问。
1.访问内部数据存储单元时,使用 MOV 指令;
2.访问外部数据存储器时,使用 MOVX 指令。内部RAM从功能上将256B空间分为二个不同的块:
1.低128B的RAM块;
2.高128B的SFR(Special Function Register )块。
在低128B的RAM存储单元中又可划分为:
1.工作寄存器区;
2.位寻址区;
3.通用存储数据的&便签区&。
高128B的专用寄存器区SFR中仅仅使用了21寄存器(51系列),其它107个单元不能使用。采用68HC908MR16单片机的空间矢量控制变频电源设计
> 采用68HC908MR16单片机的空间矢量控制变频电源设计
采用68HC908MR16单片机的空间矢量控制变频电源设计
摘要:介绍了一种基于PWM算法的的实现方式。系统MOTOROLA公司的电机专用芯片,通过PI调节将直流电逆变成频率可调的三相正弦波交流电,同时利用串行通信实现系统的状态显示和参数修改。 关键词:;脉宽调制;器;专用芯片MR160 引言随着拖动技术的不断发展以及大功率电力电子器件的不断更新,交流异步电机V/fPWM在工业上的应用越来越广泛。传统的SPWM变频调速技术理论成熟,原理简单,易于实现,但其逆变器输出线电压的幅值最大值仅为0.866Ud,直流侧电压利用率较低;而PWM(SVPWM)算法可使逆变器输出线电压幅值最大值达到Ud,较SPWM调制方式提高了15%,且在同样的载波频率下,SVPWM方式的逆变器开关次数少,降低了开关损耗。为此,本文运用SVPWM算法,将逆变器和电机作为整体考虑,并综合三相电压,通过实时计算,利用MR16实现了电机的恒磁通变频调速控制。 本文引用地址:1 空间矢量PWM基本工作原理
图1所示为三相电压型逆变器的工作原理图,它由6个开关器件组成。逆变器输出的空间电压矢量为
根据同一桥臂的上下两个开关器件不能同时导通的原则,其三相桥臂开与关可以有8种状态。在这8种开关模式中,有6种开关模式输出电压,在三相电机中形成相应的6个磁链矢量,另外2种开关模式不输出电压,不形成磁链矢量,称之为零矢量。各种状态形成的矢量在空间坐标系中的位置关系如图2所示。括号内的二进制数依相序A,B,C表示开关的不同状态,&1&表示上桥臂功率器件导通,下桥臂器件关闭;&0&表示的工作状态与此相反。任意一个电压空间矢量的幅值和旋转角度都表示此刻输出PWM波的基波幅值及频率大小,它的相位则表示不同的脉冲开关时刻。因此,三相桥式逆变器的目标就是利用这8种基本矢量的时间组合,去近似模拟合成这样一个磁链圆。 图1 电压型逆变器原理图 图2 逆变器输出电压空间矢量
通常将一个圆周期6等份,并习惯地称之为扇区。每一扇区又可继续划分为任意的m个小等份。当理想电压矢量位于任一扇区之中时(如图2所示),就用该扇区的两个边界矢量和两个零矢量去合成该矢量,例如:当理想电压矢量处于第一扇区时就由和两个非零矢量以及零矢量合成,其他扇区依此类推。假设理想电压矢量位于图3所示的位置,依据正弦定理可以得到式(2)&式(4)。
(0&&/3) (2)
t0=Ts-t1-t2 (4) 式中:Us为逆变器输出电压矢量的幅值;
U1为非零矢量的幅值;
U2为非零矢量的幅值;
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一面试相关(6)
1.MCS51的中断系统有几个中断源?几个中断优先级?中断优先级是如何控制的?在出现同级中断申请时,CPU按什么顺序响应(按由高级到低级的顺序写出各个中断源)?各个中断源的入口地址是多少?
答:MCS51单片机有5个中断源,2个中断优先级,中断优先级由特殊功能寄存器IP控制,在出现同级中断申请时,CPU按如下顺序响应各个中断源的请求:INT0、T0、INT1、T1、串口,各个中断源的入口地址分别是0003H、000BH、0013H、001BH、0023H。
1、单片机是将微处理器、一定容量的 RAM 和ROM以及 I/O 口、定时器等电路集成在一块芯片上而构成的微型计算机。
8、当CPU访问片外的存储器时,其低八位地址由 P0口提供,高八位地址由 P2口提供,8位数据由 P0口提供。
9、在I/O口中,P0口在接LED时,必须提供上拉电阻,P3口具有第二功能。
19、是非题:工作寄存器区不允许做普通的RAM单元来使用。F
20、是非题:工作寄存器组是通过置位PSW中的RS0和RS1来切换的。T
21、是非题:特殊功能寄存器可以当作普通的RAM单元来使用。F
22、是非题:访问128个位地址用位寻址方式,访问低128字节单元用直接或间接寻址方式。T
23、是非题:堆栈指针SP的内容可指向片内00H~7FH的任何RAM单元,系统复位后,SP初始化为00H。F
24、数据指针DPTR是一个16位的 特殊功能寄存器 寄存器。
25、是非题:DPTR只能当作一个16位的特殊功能寄存器来使用。F
26、是非题:程序计数器PC是一个可以寻址的特殊功能寄存器。F
28、当系统处于正常工作状态且振荡稳定后,在RST引脚上加一个&高&电平并维持&2&个机器周期,可将系统复位。
29、是非题:单片机89C51复位后,其PC指针初始化为0000H,使单片机从该地址单元开始执行程序。T
31、是非题:单片机系统上电后,其内部RAM的值是不确定的。T
36、以下哪一条指令的写法是错误的(C)。
A、MOV DPTR,#3F98H&& B、MOV R0,#0FEH&& C、MOV 50H,#0FC3DH&& D、INC R0
37、以下哪一条指令的写法是错误的(D)。
A、INC DPTR&&&& B、MOV R0,#0FEH&&&& C、DEC&& A&&&& D、PUSH&& A
38、以下哪一条指令的写法是错误的(B)。
A、MOVC A,@A+DPTR&&& B、MOV R0,#FEH&&&& C、CPL&& A&&&& D、PUSH&& ACC
39、是非题:在51系列单片机的指令系统中,其加法、减法、乘法和除法必须有累加器A的参与才能完成。T
46、单片机89C51的5个中断源分别为&INT0 、INT1 、T0 、T1以及TXD/RXD&& 。
47、单片机89C51的中断要用到4个特殊功能寄存器,它们是TCON、SCON、 IE 以及IP。
48、在89C51中,外部中断由IT0(1)位来控制其两种触发方式,分别是&电平&触发方式和& 边沿&触发方式。
50、是非题:在89C51中,当产生中断响应时,所有中断请求标志位都由硬件自动清零。F
51、中断处理过程分为3个阶段,即中断响应、中断处理以及中断返回。
52、简述51系列单片机中断响应的条件。
●有中断源发出中断请求;
●中断总允许位EA=1,即CPU开中断;
●申请中断的中断源的中断允许位为1,即中断没有屏蔽;
●无同级或更高级中断正在被服务;
●当前的指令周期已经结束;
●若现在指令为RETI或者是访问IE或IP指令,则该指令以及紧接着的另一条指令已执行完。
53、是非题:在51系列单片机中,中断服务程序从矢量地址开始执行,一直到返回指令RETI为止。T
56、是非题:在执行子程序调用或执行中断服务程序时都将产生压栈的动作。T
65、是非题:在51系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。F
69、单片机89C51具有并行 通信和串行 通信两种通信方式。
79、单片机89C51中的串行通信共有4种方式,其中方式 0&是用作同步移位寄存器来扩展I/O口的。
99、MCS-51 单片机的RS1,RS0=01 时,当前寄存器R0—R7 占用内部RAM(B)单元。
A、 00H—07H&& B、 08H—0FH&&& C、 10H—17H D、 18H—1FH
101、MCS-51 单片机有片内RAM 容量(&& A )。
&& A. 128B B、 4KB&& C、 8KB D、 256B
104、在执行下列指令后,A=___60H___,R0=__45H____,(60H)=___45H___。
MOV &&&A,# 45H
MOV &&&R0,# 60H
MOV &&&@R0,A
XCH &&&A, R0
106、设RAM 中(2456H)=66H,(2457H)=34H,ROM 中(2456H)=55H,(2457H)=64H。请分析下面程序执行后各寄存器的内容。 (A)=___64H___,(DPTR)=__2356H____。
MOV DPTR,#2456H
MOVC A,@A+DPTR
107、MCS-51 单片机的定时器/计数器工作方式0 是(&&& C )。
A、8 位计数器结构 B、16 位计数器结构&& C、13 位计数器结构 D、2 个8 位计数器结构
108、执行下列程序后,(A)=__35H____,(B)=__16H____。
MOV A,#9FH
MOV B,#36H
ANL &&&B,A
109、MCS-51 单片机的外部中断0 中断入口地址为(&& C&& )。
A、 000BH B、 001BH C、0003H D、 0013H
立即数寻址
程序存储器ROM
片内RAM低128B、特殊功能寄存器
寄存器寻址
工作寄存器R0-R7、A、B、C、DPTR
寄存器间接寻址
片内RAM低128B、片外RAM
程序存储器(@A+PC,@A+DPTR)
程序存储器256B范围(PC+偏移量)
片内RAM的20H-2FH字节地址、部分SFR
1.MOV &&&A,40H &;直接寻址 &&(40H)→A
MOV &&R0,A &&&;寄存器寻址 &&(A)→R0
MOV &&P1,#0F0H &;立即数寻址 &&0F0→P1
MOV &&@R0,30H &;直接寻址 (30H) →(R0)
MOV &&DPTR,#3848H &;立即数寻址 &&3848H→DPTR
MOV &&40H,38H &&&;直接寻址 (38H) →40H
MOV &&R0,30H &&&&;直接寻址 (30H) →R0
MOV &&P0,R0 &&&&&;寄存器寻址 &&( R0 )→P0
MOV &&18H,#30H &;立即数寻址 &&30H→18H
MOV &&A,@R0 &&&;寄存器间接寻址 ((R0)) →A
MOV &&P2,P1 &&&&;直接寻址 (P1)→P2
最后结果:(R0)=38H,(A)=40H,(P0)=38H,
(P1)=(P2)=0F0H,(DPTR)=3848H,(18H)=30H,
(30H)=38H,(38H)=40H,(40H)=40H,(48H)=38H
2. MOV A,DATA ;直接寻址 2字节1周期
MOV A,#DATA ;立即数寻址 2字节1周期
MOV DATA1,DATA2 ;直接寻址 3字节2周期
MOV 74H,#78H ;立即数寻址 3字节2周期
2-1 &MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?
答:MCS-51单片机在一块芯片中集成了、、、定时计数器、多功能口
和中断控制等基本功能部件。
单片机的核心部分是CPU,是单片机的大脑和心脏。
程序存储器用于存放编好的程序或表格常数。数据存储器用于存放中间运算结果、数据
暂存和缓冲、标志位等。
定时/计数器实质上是加法计数器,当它对具有固定时间间隔的内部机器周期进行计数时
,它是定时器;当它对外部事件进行计数时,它是计数器。
I/O 接口的主要功能包括:缓冲与锁存数据、地址译码、信息格式转换、传递状态(外
设状态)和发布命令等。
中断控制可以解决 CPU
与外设之间速度匹配的问题,使单片机可以及时处理系统中许
多随机的参数和信息,同时,它也提高了其处理故障与应变能力的能力。
2-5 &简述单片机片内区地址空间的分配特点。
答:片内数据存储器分为工作寄存器区、位寻址区和数据缓冲器区等3个区域。 工作寄存器使用内部中地址为~的个单元,
并分成个工作寄存器组,每个组有个工作寄存器,名称为~。
对于内部 中地址为
~的 个单元,不仅具有字节寻址功能,而且还具有位寻址功能。这 个单元共 位,每一位都赋予 个位地址,位地址范围是~。
~是数据缓冲区,即用户区,共个单元。
2-7 &单片机复位后,各特殊功能寄存器中的初始化状态是什么?
特殊功能寄存器 &初始状态 &特殊功能寄存器 &初始状态
&&&&&ACC &00H &TMOD &00H
&&&&&PC &0000H &TCON &00H
&&&&&PSW &00H &TL0 &00H
&&&&&SP &07H &TH0 &00H
&&&&&DPTR &0000H &TL1 &00H
&&&&&P0~P3 &0FFH &TH1 &00H
&&&&&IP &xx000000B &B &00H
&&&&&IE &0x000000B &SCON &00H
&&&&&PCON &0xxx0000B &SBUF &不定
2-8 &MCS-51单片机的个特殊功能寄存器中,哪些具有位寻址能力?
答:MCS-51
单片机中的程序状态字寄存器(),寄存器,累加器() ,端口
~P3,控制寄存器中用于中断控制的中断优先级控制寄存器()和中断允许控制寄存
器(IE) ,用于设置定时计数器和串行口工作方式的定时计数器控制寄存器()
、串行口控制寄存器(SCON)具有位寻址能力。
2-15 &什么时候需要复位操作?对复位信号有何要求?
答:复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。
上电复位利用电容器的充电实现。在时钟电路工作后,在 RST
端连续给出 个机器周
期的高电平就可完成复位操作。MCS-51
单片机的上电加按键复位电路当复位按键按下
3-1 &什么是寻址方式?指令系统有哪些寻址方式?相应的寻址空间在何处?
答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据所在的
地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。
MCS-51 指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间接寻
址、基址加变址寻址、相对寻址和位寻址等七种。
对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采用直
接寻址方式,不能采用寄存器间接寻址,对
等单片机内部 的高 个
字节(80H~FFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令
只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问, 而内部的
低128个字节()既能用直接寻址,也能用间接寻址。
3-2 &访问内部单元可以采用哪些寻址方式?访问外部单元可以采用哪些寻址方
式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式?
答:对特殊功能寄存器只能采用直接寻址方式,单片机内部RAM的高个字节 (
,只能采用寄存器间接寻址,外部扩展的数据存储器只能用MOVX指令访问,而内部
RAM的低个字节()既能用直接寻址,也能用间接寻址。
3-3 &访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
答:访问外部数据存储器可以用以下指令实现:
MOVX A, @Ri &&&;→,寄存器指向的片外地址中的内容送到累加器中
MOVX @Ri, A &&&;→,累加器中内容送到寄存器指向的片外地址中
MOVX A, @DPTR;((DPTR))→,数据指针指向的片外地址中的内容送到累加器中
MOVX @DPTR, A &;
→,累加器中内容送到数据指针指向的片外地址中
访问程序存储器可以用以下指令实现:
MOVC A, @A+DPTR &&;→,表格地址单元中的内容送到累加器中
MOVC A, @A+PC ;→,→,表格地址单元中的内容送到累加器中
3-4 &试用下列种寻址方式编程,将立即数送入内部的单元中。
(1) 立即寻址方式;寄存器寻址方式;寄存器间接寻址方式
(1)立即寻址方式: &&
(2)寄存器寻址方式:
MOV 30H, R5
(3)寄存器间接寻址方式:MOV 30H, @R1
3-6 &加法和减法指令影响哪些标志位?怎么影响的?
答:在带进位的加法运算中,会影响进位位Cy,最终要将中的值和其后面的值以及进位
位Cy中的值相加,最终结果存在。
在带进位减法指令中,要将累加器A的内容与第二操作数及进位标志相减,结果送回到
累加器A中。在执行减法过程中,如果位()有借位,则进位标志置“”,否则
清“”;如果位()有借位,则辅助进位标志置“”,否则清“”;如位有借位
没有借位,或位 有借位而位
没有借位,则溢出标志
置“”,否则清“”。
若要进行不带借位的减法操作,则必须先将Cy清“”。
3-8 &试编写一段程序,将内部数据存储器、
单元内容传送到外部数据存储器、单元中。
答: MOV A, 30H
MOV DPTR, #1000H
MOV @DPTR, A
MOV A, 31H
MOV DPTR, #1000H
MOV @DPTR, A
3-9 &试编写一段程序,将外部数据存储器单元中的内容传送到单元中。
答: MOV DPTR, #0040H
MOV A, @DPTR
MOV 0100H, A
6-2 &MCS-51 单片机提供了几个中断源?有几级中断优先级别?各中断标志是如何产生的
又如何清除这些中断标志?各中断源所对应的中断矢量地址是多少?
答:MCS-51单片机提供了个中断源,有级中断优先级别。中断标志由特殊功能寄存器
TCON和的相应位锁存。 &
中断标志的撤消分为:
1)定时计数器中断请求的撤消 中断请求被响应后,硬件会自动清或。
2)外部中断请求的撤消
(1)跳沿方式外部中断请求的撤消是自动撤消的。
(2)电平方式外部中断请求的撤消,除了标志位清“”之外,还需在中断响应后把中断
请求信号引脚从低电平强制改变为高电平。
3)串行口中断请求的撤消
响应串行口的中断后,CPU无法知道是接收中断还是发送中断,还需测试这两个中断标
志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行口中断请求的
撤消只能使用软件的方法。
&&CLR &TI &;清标志位
&&CLR &RI &;清标志位
各中断源对应的中断矢量地址分别为:
中断源 &中断矢量
外部中断0 &0003H
定时器T0中断 &
外部中断1 &0013H
定时器T1中断 &
串行口中断 &0023H
定时器中断T2(仅系列有)
6-4 试分析以下几种中断优先级的排列顺序(级别由高到低)是否可能?若可能,则应如何
设置中断源的中断级别?否则,请简述不可能的理由。
(1) 定时器中断,定时中断,外中断,外中断,串行口中断;
(2) 串行口中断,外中断,定时器中断,外中断,定时器中断;
(3) 外中断、定时器中断,外中断,定时器中断,串行口中断。
(1)可以,将定时器中断,定时设置为高优先级中断,将外中断,外中断
INT1,串行口中断
(2)可以,将串行口中断设置为高优先级中断,将外中断
中断INT1,定时器中断设置为低优先级中断;
(3)不行,因为
级中断优先级别,同级中断还存在按次序决定的
第二优先级结构,由高到低依次为外中断 1NT0、定时器
中断、外中断
器T1中断、串行口中断。
7-2 &如果采用晶振的频率为
,定时计数器工作方式
、、下,其最大的定时时间为多少?
答:内部定时脉冲周期=机器周期
工作方式0:
工作方式1:
工作方式2:
7-10 &定时计数器测量某正单脉冲的宽度,采用何种方式可得到最大量程?若时钟频率为
6MHz,求允许测量的最大脉冲宽度是多少?
答:采用定时器工作方式1可得到最大量程,最大脉冲宽度:
【2—9】什么是堆栈?堆栈有哪些功能? 设计时,为什么还要对SP重新赋值?
堆栈指针SP的作用是什么?
&【答】堆栈是在片内数据RAM区中,数据按照“先进后出”或“后进先出”原则进行管理的区域。堆栈功能有两个:保护断点和保护数据。在子程序调用和中断操作时这两个功能特别有用。在80C51单片机中,堆栈在子程序调用和中断时会把断点地址自动进栈和出栈。进栈和出栈的指令(PUSH、POP)操作可用于保护现场和恢复现场。由于子程序调用和中断都允许嵌套,并可以多级嵌套,而现场的保护也往往使用堆栈,所以一定要注意给堆栈以一定的深度,以免造成堆栈内容的破坏而引起程序执行的“跑飞”。
&&&&堆栈指针SP在80C51中存放当前的堆栈栈顶所指存储单元地址的一个8位寄存器。80C51单片机的堆栈是向上生成的,即进栈时SP的内容是增加的;出栈时SP的内容是减少的。
&&&&系统复位后。80C51的SP内容为07H。若不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放。但工作寄存器R0~R7有4组,占有内部RAM地址为00H~1FH,位寻址区占有内部RAM地址为20H~2FH。若程序中使用了工作寄存器1~3组或位寻址区,则必须通过软件对SP的内容重新定义,使堆栈区设定在片内数据RAM区中的某一区域内(如30H),堆栈深度不能超过片内RAM空间。
【2一13】程序存储器指令地址、堆栈地址和外接数据存储器地址各使用什么指针?为什么?
【答】程序存储器指令地址使用程序计数器PC指针,PC中存放的是下一条将要从程序存储器中取出的指令的地址。程序计数器PC变化的轨迹决定程序的流程。PC最基本的工作方式是自动加1。在执行条件转移或无条件转移指令时,将转移的目的地址送入程序计数器,程序流向发生变化。在执行调用指令或响应中断时,将子程序的入口地址或者中断矢量地址送人PC,程序流向发生变化。 &&&堆栈地址使用堆栈指针.SP。SP在80C51中存放当前的堆栈栈顶所指存储单元地址,是一个8位寄存器,对数据按照“先进后出”原则进行管理。外接数据存储器地址使用数据指针DPTR。DPTR是一个16位特殊功能寄存器,主要功能是作为片外数据存储器或I/0寻址用的地址寄存器,这时会产生RD或wR控制信号,用于单片机对外扩的数据存储器或I/0的控制。数据指针DPTR也可以作为访问程序存储器时的基址寄存器,此时是寻址程序存储器中的表格、常数等单元,而不是寻址指令。
【2一19】80C51单片机的4个I/O口在使用上有哪些分工和特点?
【答】4个I/O口的分工和特点如下:
①&P0口是一个多功能的8位口,可按字节访问也可按位访问。
l&用作I/0口。相当于一个真正的双向口:输出锁存,输入缓冲,但输入时须先将口置l;每根口线可以独立定义为输入或输出。
l&用作地址/数据复用总线。作数据总线使用时,输入/输出8位数据D0~D7;作地址总 &&&线用时,输出低8位地址AO~A7。
&② P1口是一个8位口,可按字节访问也可按位访问,因此,P1口不仅可以8位一组进行 &输入、输出操作,还可以逐位分别定义各口线为输入线或输出线。输入时有条件,即需要先输出1,将该口设为输入状态。一般作I/o口用。
③ P2口是一个多功能的8位口,可按字节访问也可按位访问。在单片机采用并行扩展方式时,P2口作为地址总线的高8位D8~D15。
④ P3口是一个多功能的8位口,可按字节访问,也按可位访问。可作为I/0口使用,为准双向口。既可以字节操作,也可以位操作;既可以8位口操作,也可以逐位定义口线为输入线或输出线。
P3可替代输入、输出功能。
替代输入功能:
&&&&P3.0一一RXD,串行输入口。
&&&&P3.2一一IN'I、0,外部中断O的请求。
&&&&P3.3一一INTl,外部中断1的请求。
&&&&P3.4一TO,定时器/计数器O外部计数脉冲输入。
&&&&P3.5一一T1,定时器/计数器1外部计数脉冲输入。
&&&&替代输出功能:
&&&&P3.1一一TXD,串行输出口。
&&&&P3.6一一wR,外部数据存储器写选通,输出,低电平有效。
&&&&P3.7~RD,外部数据存储器读选通,输出,低电平有效。
【3—4】简述80C51的指令寻址方式,并举例说明。
【答】执行任何一条指令都需要使用操作数,寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。
&&&&80C5l系列单片机的指令系统中共有以下7种寻址方式。
&&&&①立即寻址。在指令中直接给出操作数。出现在指令中的操作数称为“立即数”,为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀“#”。
&&&&例如:MOV DPTR,#1234H &&&;1234H为立即数,直接送DPTR
&&&&②直接寻址。在指令中直接给出操作数单元的地址。
&&&&例如: &&MOV A,55H &&&;55H是操作数单元的地址,55H单元内的数据才是操作数,取出后送累加器A
&&&&③寄存器寻址。在指令中将指定寄存器的内容作为操作数。因此,指定了寄存器就能得
到操作数。寄存器寻址方式中,用符号名称来表示寄存器。
&&&&例如: &INC R7 &&&;R7的内容为操作数,加1后再送回R7
&&&&④寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才
是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址
方式中,寄存器中存放的则是操作数的地址。
&&&&寄存器间接寻址须以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻
址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“@”。
&&&&例如: ORL &A.@Ro; &当R0寄存器的内容是60H时,该指令功能是以RO寄存器的内容60H为地址,将60H地址单元的内容与累加器A中的数相“或”,其结果仍存放在A中。
&&&&⑤相对寻址。在指令中给出的操作数为程序转移的偏移量。相对寻址方式是为实现程序的相对转移而设立的,为相对转移指令所采用。
&&&&在相对转移指令中,给出地址偏移量(在80C51系列单片机的指令系统中,以“rel”表示,为8位带符号数),把PC的当前值加上偏移量就构成了程序转移的目的地址。而PC的当前值是指执行完转移指令后的PC值,即转移指令的PC值加上转移指令的字节数。转移的目的地址可用如下公式表示:
&&&&目的地址=(转移指令所在地址+转移指令字节数)+rel
&&&&例如:SJMP 80H &&&;80H为程序转移的偏移量,即一128。当前PC值减去128后即为转移地址
&&&&⑥变址寻址。以DPTR或PC作基址寄存器,累加器A作变址寄存器,以两者内容相加形成的16位程序存储器地址作为操作数地址。又称“基址寄存器+变址寄存器间接寻址”。变址寻址方式只能对程序存储器进行寻址。
&&&&例如: MOVC A,@A+DPTR &&&;功能是把DPTR和A的内容相加,所得到的程序存储器地址单元的内容送A
&&&&⑦位寻址。80C51系列单片机有位处理功能,可以对数据位进行操作,因此,就有相应的位寻址方式。位寻址的寻址范围:
&&&&●片内RAM中的位寻址区。
&&&&·可位寻址的特殊功能寄存器位。
&&&&例如:MOV c,80H &&&;功能是把位寻址区的80H位(即P0.0)状态送累加位C
【3—14】已知(30H)=40H,(40H)=10 H,(10H)=00H,(P1)=CAH,请写出执行以下程序段后有关单元的内容。
&【答】有关单元的内容如下:
&&&&MOV &&&R0,#30H &&&;(RO)=30H
&&&&MOV &&&A,@R0 &&&;(A)=40H
&&&&MOV &&&Rl,A &&&;(R1)=40H
&&&&MOV &&&B,@R1 &&&;(B)=1OH
&&&&MOV &&&@R1,P1 &&&;(40H)=CAH
&&&&MOV &&&A,@RO &&&;(A)=40H
&&&&MOV &&&10H,#20H &&&;(10H)=20H
&&&&MOV &&&30H,10H &&&;(30H)=20H
执行以上程序段后,有关单元的内容分别为:(30H)=20H,(40H)=CAH,(10H)=20H,(P1)=CAH。
【3-1】已知(A)=7AH,(RO)=30H,(30H)=A5 H,(PSW)=80H。请填写各条指令单独执行后的结果。
【答】结果如下:
(1) &XCH &A,R0 &&&;(A)=30H,(R0):7AH
(2) &XCH &A,30H &&&;(A)=A5H,(30H)=7AH,(PSW)=81H
(3) &XCH &&&A,@R0 &&&;(A)=R5H,(30H)=7AH,(PSW)=81H
(4) &XCHD &&A,@R0 &&&;(A)=75H,(30H)=AAH,(PSW)=81H
(5) &SWAP &A &&&;(A)=A7H
(6) &ADD &A,R0 &&&;(A)=AAH,(PSW)=04H
(7) &ADD &A,30H &&&;(A)=1FH,(PSW)=81H
(8) &ADD &A,#30H &&&;(A)=AAH,(PSW)=04H
(9) &ADDC &A,30H &&&;(A)=20H,(PSW)=01H
(10) &SUBB &A,30H &&&;(A)=D4H,(PSW)=84H
(11) &SUBB &A,#30H &&&;(A)=49H,(PSW)=01H
【3-15】已知(R1)=20 H,(20 H)=AAH,请写出执行完下列程序段后A的内容。 &&&
&&&&【答】各指令的执行结果如下:
&&&&MOV &&&A,#55H &&&;(A)=55H
ANL &&&A,#0FFH &&&;(A)=55H
ORL &&&20H,A &&&;(20H)=FFH
XRL &&&A,@R1 &&&;(A)=AAH
CPL &&&A &&&;(A)=55H
&执行完程序段后,A的内容为5 5 H。
【3—17】已知两个十进制数分别在内部RAM中的40 H单元和50H单元开始存放(低位在前),其字节长度存放在内部RAM的30 H单元中。编程实现两个十进制数求和,求和结果存放在40 H开始的单元中。
&&&&ORG 0000H
&&&&SJMP &&&MAIN
&&&&ORG 0030H
&&&&MAIN:
&&&&MOV &&&R0,#40H &&&;被加数首址.又作两个十进制数和的首址
&&&&MOV &&&R1,#50H &&&;加数首址
&&&&MOV &&&R2,30H &&&;字节长度
&&&&CLR &&&C
&&&&PP: &MOV &&&A,@R1 &&&;取加数
&&&&ADDC &&&A,@R0 &&&;带进位加
&&&&DA &&&A &&&;二一十进制数调整
&&&&MOV &&&@R0,A &&&;存和 &&&
&&&&INC &&&R0 &&&;修正地址
&&&&INC &&&R1
&&&&DJNZ &&&R2,PP &&&;多字节循环加
&&&&AJMP &&&$
【4-17】根据8100 H单元中的值X,决定P1口引脚输出为:
&&&&加上必要的伪指令,并对源程序加以注释。 &&&.
【答】程序如下:
&&&&ORG 0000H
&&&&SJMP &&&BEGIN
&&&&ORG 0030H
&&&&BEGIN: &&&MOV DPTR,#8100H
&&&&MOVX &&&A,@DPTR
&&&&MOV &&&R2,A
&&&&JB &&&ACC.7,SMALLER;有符号数&0
&&&&SJMP &&&UNSIGNED &&&;无符号数≥0
&&&&SMALLER:DEC &&&A &&&;X&0,输出-X(先减1,再取反)
&&&&CPL &&&A
&&&&MOV &&&P1,A
&&&&SJMP &&OK
&&&&UNSIGNED:CJNE &&&A,#00H,BIGGER &&&;不等于0即大于0
&&&&MOV P1,#80H &&&;X等于0,输出80H
&&&&SJMP &&&OK
&&&&BIGGER: &CLR &&&C &&&;X大于0,输出A×2
&&&&RLC &&&A &&&;A×2
&&&&MOV &&&P1,A
&&&&OK: &&&SJMP &&&$
&&&&&&&&END
例如:输入55 H,P1口引脚输出AAH;输入00 H,P1口引脚输出80 H;输入F1(一1 5的补码),P1口引脚输出0FH。
【5-4】什么是单片机的中断优先级?中断优先级处理的原则是什么?
【答】在一个单片机系统中往往允许有多个中断源,通常给每个中断源规定了优先级别,称为“优先权&或“中断优先级’’。
&&&&当单片机同时接收到两个或多个不同优先级的中断请求时,先响应高优先级的中断。如果同时接收到的是几个同一优先级的中断请求,则由内部的硬件查询序列确定它们的优先服务次序,当服务结束后,再响应级别较低的中断源。
&&&&在80C51单片机中有高、低两个中断优先级,通过中断优先级寄存器IP来设定。
&&&&在80C51单片机中存在同一优先级内由内部硬件查询序列确定的第二个优先级结构。
其排列如下:
&&&&中断源 &&&&&&&中断优先级
&&&&外部中断0 &&&&&&&最高
&&&&定时器T0中断 &&&&&
定时器T1中断 &&&
&&&&串行口中断 &&&
&&&&定时器T2中断 &&&最低
【5—7】80C51单片机在什么情况下可响应中断?
【答】中断响应是有条件的,即:
·中断源申请中断;
·该中断源已被允许中断,且CPU也已允许中断;
·没有同级或高优先级中断在执行中断服务程序。
&在接受中断申请时,如遇下列情况之一,硬件生成的长调用指令LCALL将被封锁:
①CPU正在执行同级或高一级的中断服务程序。因为当一个中断被响应时,其对应的中断优先级触发器被置1,封锁了同级和低级中断。
②查询中断请求的机器周期不是执行当前指令的最后一个周期。目的在于使当前指令执行完毕后,才能进行中断响应,以确保当前指令的完整执行。
③当前正在执行RETI指令或执行对IE、IP的读/写操作指令。80C51.中断系统的特性规定,在执行完这些指令之后,必须再继续执行一条指令,然后才能响应中断。
【6-1】80C51单片机内部设有几个定时器/计数器?简述各种工作方式的特点。
【答】80C51单片机内部设有2个16位定时器/计数器TO和T1。定时器/计数器有4种工作方式,其特点如下: &&&.
&&&&①方式O是13位定时器/计数器。由THx高8位(作计数器)和TLx的低5位(32分频的定标器)构成,TLx的低5位溢出时,向THx进位;THx溢出时,硬件置位TFx(可用于软件查询),并可以申请定时器中断。
&&&&②方式1是16位定时器/计数器。TLx的低8位溢出时向THx进位,THx溢出时,硬
件置位TFx(可用于软件查询),并可以申请定时器中断。
&&&&③方式2是定时常数自动重装载的8位定时器/计数器。TLx作为8位计数寄存器,
THx作为8位计数常数寄存器。当TLx计数溢出时,一方面将TFx置位,并申请中断;另一方面将THx的内容自动重新装入TLx中,继续计数。由于重新装入不影响THx的内容,所以可以多次连续再装入。方式2对定时控制特别有用。 &&&.
&&&&④方式3只适用于TO,T0被拆成两个独立的8位计数器TLO和TH0。TLO做8位计
数器,它占用了T0的GATE、INTO、启动/停止控制位TRO、TO引脚(P3.4)以及计数溢出标志位TF0和TO的中断矢量(地址为000BH)等TH0只能做8位定时器用,因为此时的外部引脚T0已为定时器/计数器TLO所占用。这时它占用了定时器/计数器T1的启动/停止控制位TRl、计数溢出标志位TFl.及T1中断矢量(地址为001BH)。
T0设为方式3后,定时器/计数器T1只可选方式O、1或2。由于此时计数溢出标志位TFI.及T1中断矢量(地址为001BH)已被TH0所占用,所以T1仅能作为波特率发生器或其他不用中断的地方。
3.访问片内RAM低128字节使用哪些寻址方式?访问片内RAM高128字节使用什么寻址方式?访问SFR使用什么寻址方式?
答:&访问片内RAM低128字节使用直接寻址,寄存器间接寻址,位寻址;访问片内RAM高128字节使用寄存器间接寻址;访问SFR使用直接寻址,位寻址。
4.访问片外RAM使用什么寻址方式?
答:&访问片外RAM使用寄存器间接寻址
5.访问程序存储器使用什么寻址方式?指令跳转使用什么寻址方式?
答:&访问程序存储器使用指令绝对寻址,指令相对寻址。指令跳转使用指令绝对寻址,指令相对寻址。
6.分析下面指令是否正确,并说明理由。
MOV R3,R7 错,两个操作数不能同时为工作寄存器
MOV B,@R2 对
DEC DPTR 错,不存在
MOV 20H.8,F0 错,位传送指令必须用C
CPL 36H 错,不存在
MOV PC,#0800H& 错,PC不能访问
7.分析下面各组指令,区分它们的不同之处。
MOV A,30H 与 MOV A,#30H
前者表示:(30H)→A &后者表示:30H→A
MOV A,R0 与 MOV A,@R0
前者表示:(R0)→A &后者表示:((R0))→A
MOV A,@R1 与 MOVX A,@R1
前者表示:在片内数据存储器((R1))→A &
后者表示:在片外数据存储器((R1))→A
MOVX A,@R0 与 MOVX A,@DPTR
前者R0表示8位地址 &后者DPTR表示16位地址
MOVX A,@DPTR 与 MOVC A,@A+DPTR&
前者表示:((DPTR))→A &后者表示:((DPTR)+(A))→A
8.在MCS-51单片机的片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。请说明下面各是什么指令和寻址方式,以及每条指令执行后目的操作数的结果。
MOV A,40H ;数据传送,直接寻址,(A)=48H
MOV R0,A ;数据传送,寄存器寻址,(R0)=48H
MOV P1,#0FH ;数据传送,立即数寻址,(P1)=0FH
MOV @R0,30H ;数据传送,直接寻址,(48H)=38H
MOV DPTR,#1234H ;数据传送,立即数寻址,(DPTR)=1234H
MOV 40H,30H ;数据传送,直接寻址,(40H)=38H
MOV R0,38H ;数据传送,直接寻址,(R0)=40H
MOV P0,R0 ;数据传送,直接寻址,(P0)=40H
MOV 28H,#30H ;数据传送,立即数寻址,(28H)=30H
MOV A,@R0& ;数据传送,寄存器间接寻址,(A)=38H
9.已知(A)=23H,(R1)=65H,(DPTR)=1FECH,片内RAM(65H)=70H, ROM(205CH)=64H。试分析下列各条指令执行后目标操作数的内容。
MOV A,@R1 ;(A)=70H
MOVX @DPTR,A ;(1FECH)=70H
MOVC A,@A+DPTR ;(A)=64H
XCHD A,@R1& ;(A)=65H
10.已知(A)=76H,(R1)=76H,(B)=4,CY=1,片内RAM(76H)=0D0H,(80H)=6CH。试分析下列各条指令执行后目标操作数的内容和相应标志位的值。
ADD A,@R1 ;(A)=46H,CY=1
SUBB A,#75H ;(A)=0D0H,CY=1
MUL AB ;(A)=40H,(B)=03H
DIV AB ;(A)=15H,(B)=01H
ANL 76H,#76H ;(76H)=50H
ORL A,#0FH ;(A)=1FH
XRL 80H,A& ;(80H)=73H
11.已知(A)=83H,(R0)=17H,(17H)=34H,试分析当执行完下面程序段后累加器A、R0、17H单元的内容。
ANL A,#17H ;(A)=03H
ORL 17H,A ;(17H)=37H
XRL A,@R0 ;(A)=34H
CPL A& ;(A)=0CBH
12.阅读下面程序段,说明该段程序的功能。
MOV R0,#40H
MOV R7,#10
MOV @R0,A
DJNZ R7,LOOP
答:把0,1,2,3……数列送到40H开始的10个单元中。
13.阅读下面程序段,说明该段程序的功能。
MOV R0,#40H
ADD A,@R0
MOV 43H,A
ADDC A,#0
MOV 42H,A
答:40H加41H单元的数,结果送42H:43H
14.阅读下面程序段,说明该段程序的功能。
MOV A,30H
ADD A,31H
MOV 33H,A
MOV 32H,A
答:(30H)×5+(31H)→(32H:33H)
22.编写程序,把片外RAM从2000H开始存放的16字节数据,传送到片内从30H开始的单元中。
MOV DPTR,#2000H
MOV R0,#30H
MOVX A,@DPTR
CINE R1,#16H,NEXT
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1079次
排名:千里之外
转载:89篇

我要回帖

更多关于 天生是优我 的文章

 

随机推荐