MCS51系列单片机的学习要点分析

2019-06-11 11:31李启明李传芳
天工 2019年2期
关键词:堆栈中断

李启明 李传芳

[摘 要]学习MCS51系列单片机,需要了解MCS51系列单片机的学习要点,这是学习MCS51系列单片机的捷径。这篇文章的目的就是说明MCS51系列单片机的学习要点,并加以分析,供给读者参考。

[关键词]MCS51;读写指令;堆栈;I/O ;中断

掌握了微机的工作原理以及汇编程序的基本应用方法,为学习MCS51系列单片机打下坚实的基础,使学习MCS51系列单片机更加轻松简单。如果我们能够将学习MCS51系列单片机的要点提出来,那就可以起到事半功倍的作用。

一、MCS51系列单片机存储器读写指令

在微机原理中的汇编语言程序里,无论是在内外存储器间传送数据还是读取程序存储器的数据,都是应用MOV操作指令来完成。但是MCS51系列单片机有许多不同。首先是MSC51系列单片机的存储器分为内部数据存储器和外部数据存储器以及内外部程序存储器,其汇编语言程序读写这些存储器指令都有不同之处。例如读写内部数据存储器的数据用MOV指令即可,而读写外部数据存储器的数据则必须使用MOVX指令。读内外部程序存储器的数据时也要使用MOVC指令。

二、MCS51系列单片机的堆栈和堆栈指令

无论是在微机原理还是在MCS51系列单片机中,堆栈的含义都是相同的,就是以“先進后出”的方式。堆栈操作中有两条指令:①是入栈指令PUSH,②是出栈指令POP。微机原理中,堆栈是按向下减少的,进行PUSH指令操作时,栈顶地址SP减2后送回SP,再存入一个字数据(即两个字节数据);POP指令是把当前栈顶地址SP所指的一个字数据(即两个字节数据)取出后,栈顶地址SP加2后送回SP。而在MCS51系列单片机中,堆栈是向上增长的,PUSH指令入栈的数据只是一个字节,且入栈时先将栈顶地址SP自动加1,然后才将数据压入堆栈;而POP指令的操作则是先将堆栈中的一个字节数据弹出送给direct(存储地址),然后栈顶地址SP自动减1。

三、MCS51系列单片机的I/O输入输出方式

在微机原理的课程中,进行I/O输入输出必须扩展连接外部的I/O元器件,如8155、8255 I/O芯片。8086/8088CPU采用I/O端口独立编址形式。CPU用专门的I/O指令去访问I/O端口。输入指令IN AX,PORT端口字信息送AX,以及IN AL,PORT端口字节信息送AL;输出指令OUT  PORT, AX字信息送端口,以及OUT PORT, AL字节信息送端口。IN和OUT指令都提供了字和字节两种使用方式,地址PORT就是专用的地址空间,而在MCS51系列单片机的输入输出就简单得多了,因为MCS51系列单片机的芯片内有四个双向并行I/O端口P0~P3,每个端口都配有端口锁存器、输出驱动器和输入缓冲器,每个I/O口可以进行字节输入/输出,也可以单独进行位输入/输出。在对I/O口进行读写操作时,其读写方式和读写数据存储器的方式是一样的。例如读写P1端口,其指令为MOV A,P1端口P1字节信息送A累加器,MOV P1,A字节信息送端口P1。单独进行位输入输出的指令为SETB P1.0把P1口的第0位置1,即输出高电平;CLR P2.3 把P2口的第3位置0,即输出低电平。

四、MCS51系列单片机的中断

在微机原理的课程中,以8086/8088的中断系统为例,该中断系统可以处理256种不同的中断。最多有256个中断向量,每个中断向量对应一个中断类型码,且每个中断向量需要四位存储地址,一共需要1k的存储单元,中断向量表安排在00000H~003FFH。在中断响应时,CPU把中断类型码乘于4,由此取得该中断源的中断向量地址指针,依据该指针可从中断向量表中取出两个字分别送入IP和CS,引导CPU去执行中断服务程序。所有在编制好中断服务程序后,给中断服务程序安排了存储空间,还须将它的入口地址置入中断向量表中与中断类型码对应的地址中,当中断到来时,CPU才会根据中断类型码自动取出中断向量,转入中断服务程序中。MCS51系列单片机的中断系统具有三类共五个中断源,即INT0和INT1以及 T0、T1定时或计数溢出中断和串行口发送或接受中断。MCS51系列单片机的中断系统也设置了中断向量,但其向量地址是一一对应固定的。INT0外部中断向量地址是0003H,INT1外部中断向量地址是0013H,T0定时/计数溢出中断向量地址是000BH,T1定时/计数溢出中断向量地址是001BH,串行发送或接受中断向量地址是0023H。MCS51系列单片机发生中断时,其CPU会根据中断类型从各固定地址取出中断服务程序的入口地址,转入中断服务程序中。

参考文献:

[1]许立梓,何小敏,高明琴,等.微型计算机原理及应用[M].北京:机械工业出版社,2003.

[2]李明,毕万新.单片机原理与接口技术[M].大连:大连理工大学出版社,2014.

[作者单位]

广东工业大学课室管理中心

(编辑:原琳娜)

猜你喜欢
堆栈中断
TMS320F28335外部中断分析与研究
基于SpringBoot结果集序列化过滤插件的研究与实现
Stacking算法在医疗健康数据中的应用研究
雪后林鸟
基于生成语法的句子理解机制
Windows栈缓冲区溢出攻击原理及其防范
跟踪导练(二)(5)
缓冲区溢出安全编程教与学
实现状态量变化检测的中断技术研究
新闻浮世绘