APP下载

MCS—51单片机汇编过程

2018-03-30刘英会岳伟利张宗彩

电子技术与软件工程 2017年16期
关键词:汇编语言信号灯指令

刘英会 岳伟利 张宗彩

摘要

单片机与我们的生活息息相关,由于其体积小,容易嵌入各种玩具,电器中,受到广大厂商的欢迎。可大部分使用者对单片机的工作原理并不清楚,尤其是单片机的汇编语言與机器语言的关系。本文中以信号灯闪烁系统的设计仿真为例,对其汇编过程进行了详细的分析。通过本文的阐述,帮助更多的初学者快速掌握单片机。

【关键词】指令系统 闪烁系统

一个完整的单片机系统除了需要硬件电路的支持,软件设计也必不可少。指令是单片机能够识别和执行的命令,一个单片机能够执行全部指令的集合称为这个单片机的指令系统。由于单片机的硬件只能识别二进制数,因此最初的指令采用二进制表示,后来用八进制和十六进制表示,这些都称为机器语言。机器语言不易理解,编制程序容易出错,为了便于阅读和书写,一些厂商根据指令功能和操作对象的不同,给出不同指令的英文缩写符号,称为助记符。用助记符表示的指令称为汇编语言指令。

需要注意的是,汇编语言不能直接运行,它要汇编为机器语言指令后才能运行。但多数人对单片机的汇编过程并不了解,本文以信号灯的闪烁系统设计及仿真为例,阐述汇编语言编译为机器语言的具体过程。

1 MCS-51系列单片机的指令系统

以数据传送指令为例,单片机的数据传送指令是编程时使用最多的指令。用到的助记符有MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP,根据这些指令作用的不同,将其分为内部数据传送指令、外部数据传送指令、访问程序存储器指令、堆栈操作指令和数据交换指令5类。如“MOV A,Rn”对应的机器语言“E8?EF”,再如“MOV A,direct”对应的机器语言“E5 direct”。由此可见,汇编语言与机器语言之间存在一一对应关系,而编译为机器语言后占用多大的存储空间,由字节数决定。

2 信号灯闪烁系统设计与仿真

通过制作一个最简单的单片机系统——信号灯闪烁系统,阐述汇编语言编译为机器语言的过程。在单片机的P0.0端口上接上一个发光二极管L1,编制汇编程序使L1不停地一闪一灭,时间间隔为0.2S。

2.1 硬件设计

本系统采用单片机为51系列,硬件系统结构由电源电路、时钟电路、复位电路和LED信号灯电路。

2.2 软件设计

从硬件设计的电路原理图可以看出,当P0.0端口输出高电平时,根据发光二极管的单向导电性可知,L1熄灭,这里可以使用SETBP0.0指令使P0.0端口输出高电平,当P0.0端口输出低电平时,L1点亮;

由于单片机指令的执行时间很短,属于微秒级,要求彩灯闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以在执行彩灯点亮和熄灭指令时,插入延时程序,达到我们的要求。

2.3 利用keil C51集成开发软件编辑、编译和连接程序

新建工程,选择51芯片,新建文件编辑汇编源程序,将汇编文件保存为.asm形式,将文件添加进工程里,单击编译按钮,对汇编源文件进行编译、链接,在保存工程的文件夹中将生产.hex文件。

单击“debug”进行程序的调试,start debug。

在程序由汇编语言转化为机器语言过程中,编译后存储在程序存储器以0000H为首地址的单元中。

由图1可知,程序编译后存储在程序存储器以0000H为首的地址单元中,每条汇编语言占用的字节数由指令决定,占用1-3字节不等。而每条汇编语言与机器语言间的一一对应关系由上表清晰可见。

3 结论

通过单片机信号灯闪烁系统的设计过程可知,虽然在keil编程软件中我们使用的汇编语言,但实际写入单片机的是二进制的机器语言,汇编语言的每一条指令与机器语言之间存在一一对应的关系。初学者可以通过查询相关资料对单片机的五类汇编语言的汇编过程有更深入的了解。

参考文献

[1]曹建树,代峰燕等.应用型工科院校单片机课程教学改革与实践[J].实验室研究与探索,2012(03):129-131

[2]王爱华.浅谈单片机汇编语言教学[J].黑龙江科技信息,2009(17):143.

[3]陈龙,张亚君.Proteus仿真软件在单片机实验教学中的应用[J].实验技术与管理,2009(08):73-75.

[4]许超,吴新杰,张丹.基于Proteus和Keil的单片机课程教学改革[J].辽宁大学学报(自然科学版),2011(01):27-29.

猜你喜欢

汇编语言信号灯指令
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
汇编语言与C语言的混合程序设计技术研究
交通信号灯
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
提高《汇编语言程序设计》教学效率的思考与实践
安装在路面的交通信号灯
试论汇编语言与C语言的混合程序设计技术
交通信号灯控制系统设计
坐标系旋转指令数控编程应用