【VB开源代码栏目提醒】:网学会员--在 VB开源代码编辑为广大网友搜集整理了:MCS.5_1单片机汇编语言程序IDE设计与实现 - 硕士论文绩等信息,祝愿广大网友取得需要的信息,参考学习。
单位
代码 10476学 号 04081 80004分类号 TP314 河南衙瓢大孳 硕士学位
论文 MCS.5 1单片机汇编语言程序IDE设计与实现 学科、专业 :计算机软件与理论 研究方向 :嵌入式系统及应用 申请学位类别 :工学硕士 申 请 人 : 闰 娟 指导教师 :毋茂盛 教授 二oo七年六月 摘要 〕DE即集成开发环境(Integrated Development Environment)是进行软件开发必不可少的工具软件,一个方便、成熟、稳定、功能强大的IDE,可显著地提高开发效率.本文主要研究了如何设计与实现一个基于VC_卜}的MCS.51单片机汇编语言程序的DE系统。
该系统在WINDOWS环境下运行,通过编译器的两遍扫描实现对MCS.51汇编语言的编译,生成写入单片机的Intcl Hcx格式的目标文件,并为用户提供源码与目标码对照的列表文件(·.1st文件)以及编译过程中出现的错误反馈信息。
IDE中的编译模块按照词法分析、语法分析、语义分析、目标
代码生成等几个阶段进行,符号表的管理和出错处理贯穿编译工作的各个阶段,编译过程中源程序的各种信息被保留在各种不同的表格里。
由于该系统具有程序下载功能,要用到串口通信,因此本文还介绍了串行通信的基本原理、RS--232的定义以及串行通信的
常用连接方式,然后对W’mdows的通信机制进行了讨论。
在此基础上,对串行通信的W’mdows编程方法做了详细的探讨。
该软件系统将文件操作、参数设置、编辑、编译、
代码下载、实验演示、帮助信息(源程序、指令表等)等功能集成在统一的开发环境中,功能齐全,界面友好;在计算机上调试好的程序既可以通过编程器写入单片机中,也可以直接通过计算机的串口下载到实验仪上,使用方便灵活,特别适合于MCS.51单片机的实验教学。
本系统已通过河南省科技厅组织的会议鉴定,达国内领先水平。
关键词:单片机,汇编语言,IDE,编译器,串行
通信 Abstract Integrated Development Environment(1DE),plays a very important role in Software developing procedure.With a maua鸭stable,powerful,and convenient IDE software,we will be more efficient in work.This thesis res%rches how to design and realize the IDE of MCS-51 assembly language based onthe VC++language. This IDE system carries out under the WINDOWS environment,through two sca31n岖the compiler realizes the translation ofMCS-51 assembly language.The system produc髓the Intel Hex fileand the+.Ist tabulates which provides the comparison ofthe SOIfi’CA:code and goal code幻the us瓯aswell as appearing wrong feedback information.The compiler pl’oc≈s¥according to the lexical analysis,the grammar analysis,the¥昀脚dc analysis,the goal code production and so On several stages carrieson.The symbol table management and mistake processing pass4t∞ough each stage of the translationwork..In the translation pI口∞鹊each kind ofinformation of som’ce program is retained in all sorts ofdifferent forms·This text also introdttu镕basic mode because the IDE has the function ofdownloadingthe code.Itinu’oducesthedefinitionofRS-232 and serialcommunicationdailyconnectionwayofserialcommunication,then discusses communication mechanism in Windows,on this basis.makes detaileddescription ofsorial W’mdows programming methyl ofserial communication. This IDE Soft system integrams the document option,pemamcter∞tt:-m岛editor,compiler,codedownloading,experiment demonstration,help information and so 011.It has a friendly interface.Besides,the object code can also be directly download to lhe SCM by serial port without the programmer.It isquite useful in MCU’s experiment teaching.It has get the identification oftbe science and technologydepar衄ent ofHenan province,and keeps ahead ofthe national level.Keywortle:MCU,Assembly language,IDE,Compiler,Serial communication Ⅱ 独创性声明 本人郑重声明:所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得河南师范大学或其他教育机构的学位或证书所使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并表示了谢意。
签名:f主I必 日期:趟1,≤,f2 关于
论文使用授权的说明 本人完全了解河南师范大学有关保留、使用学位
论文的规定,即:有权保留并向国家有关部门或机构送交
论文的复印件和磁盘,允许
论文被查阅和借阅。
本人授权河南师范大学可以将学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位
论文。
(保密的学位
论文在解密后适用本授权书) 引言 引言 “工欲善其事,必先利其器”,精良的工具装备,是搞研发成功的基本条件。
单片机IDE(集成开发环境)是开发单片机应用系统必不可少的工具。
目前,单片机IDE主要由世界几个大的软件公司开发,如德国的Koil、荷兰的Tasking,美国的Franklin,台湾的IAR等等。
其中Keil的产品pVision2和Tasking的产品EDE品质尤为出众,知名度颇耐n。
研究它们的设计原理和各自的优缺点,开发适合自己的IDE,成为摆在国内计算机界面前的一个迫切任务。
在本文中,笔者用VcH来开发实现了MCS一5l单片机汇编语言程序的集成开发环境。
首先,该系统将编辑、编译源程序和程序下载、帮助信息(源程序、指令表等)都集成在统一的开发环境中,功能齐全,界面友好;其次,该系统还提供了24个不同的硬件综合性或设计性实验
演示。
此外,该系统实现了
代码下载功能,在计算机上调试好的程序可以脱离编程器,直接通过计算机的USB或串口下载到单片机实验设备上,实验方便灵活。
其设计主要有以下几个部分:文件操作设计;编辑器的设计;编译器的设计;参数设置设计;用户登录模块设计;帮助文件模块设计;
代码下载功能的设计。
其中文件操作实现对文件的读、写、打印、关闭和保存等功能。
编辑器实现对源文件的编辑,如查找、剪切、复制等功能。
帮助文件显示单片机相关概念、指令附录、指导手册和每个实验的具体信息等。
编译器可实现对MCS.51汇编语言的编译功能,其主要目标是将单片机汇编语言源程序文件翻译成写入单片机的IntelttEX文件和为用户提供源码与目标码的对照的列表(1ist)文件。
整个编译过程按照词法分析、语法分析、语义分析、目标
代码生成等几个阶段进行,通过两遍扫描实现对MCS一51汇编语言的翻译,并生成写入单片机的目标文件、为用户提供源码与目标码对照的
列表文件的信息以及编译过程中出现的错误反馈信息伫】。
代码下载功能实现将生成的目标
代码(IntelHex格式)通过串口直接下载到单片机的功能,从而省去了以往必须要使用编程器才能下载的烦琐步骤及相关实验设备。
本课题隶属于河南省科技攻关项目I面向应用的Es教学实验系统研制’(项目编号t 0524220074) l 第一章绪论 第一章绪论1.1选题依据与意义 嵌入式技术在计算机、电子,通信、控制等学科或专业中具有极为重要的地位,对我国的
经济发展和国防建设有非常重大的影响。
中国有世界上最大的家用电子产品消费市场,同时,对于现代化的医疗、测控仪器和机电产品也需要有专用的嵌入式系统软件的支持。
各种各样的嵌入式设备已经应用到生活的各个方面,包括PDA、机顶盒、移动终端、工业控制设备等等。
这些需求都极大地刺激了嵌入式系统的发展和产业化的进程【3】。
2l世纪之初的十年被人们称为是“后PC时代”,嵌入式系统无处不在。
为了促进嵌入式技术在我国的发展,中国
计算机学会微机专业委员会从2000年以来,每年都要举办一次全国性的“嵌入式系统技术与应用研讨会”。
我国嵌入式技术的发展在很大程度上取决于学校的教学。
为了进一步做好嵌入式系统的教学工作,2003年10月由清华大学、北京航空航天大学、‘单片机与嵌入式系统应用》杂志社、 《电子产品世界》杂志社以及多家中、外著名公司联合在北京召开了主题为“
学习嵌入式、研究嵌入式、使用嵌入式”的首届高校嵌入式系统教学研讨会。
中国科学院院士沈绪榜、许居衍、中国微机单片机学会理事长陈章龙等出席了会议。
清华大学鄂贝贝教授、北京航空航天大学何立民教授等分别作了“嵌入式教学体系探讨”以及“嵌入式系统教学研究”等重要
报告,出席会议的其它高校院、系领导、教学主任、实验中心主任、一线教师、实验教师等在会上共同研讨了嵌入式教学体系发展与改革
方案。
与会者普遍认为目前所使用的单片机教学实验系统大多是九十年代初研制的,已远远落后于嵌入式技术现在的发展水平。
对于MCU(Mica’o Controller Unit即微控制器)系统,许多新的有很高实用价值的技术,如CAN总线、USB接口、RS485、12C、SPI以及与Intemet接口技术等都被排斥在实验内容之外,因此,尽快开发新一代面向应用的单片机教学实验系统变得非常迫切和重要。
河南省科技攻关项目‘面向应用的ES教学实验系统研制》(项冒编号:0524220074)就是一个针对目前教学实验系统的现状,开发和研究新一代教学实验系统的项目。
本课题实现了该项目中的软件编制。
本文将用Vc十卜6.0开发单片机汇编 2 第一章绪论语言程序的IDE。
IDE即集成开发环境(Inte掣’ate.d Development Envkonment),IDE软件是进行软件开发必不可少的工具软件。
不仅仅是普通PC机软件开发有此需求,在进行嵌入式软件的开发过程中,如果有一个方便、成熟、稳定、功能强大的IDE,能更加显著她提高开发效率14】。
本文主要介绍了在探索嵌入式系统软件IDE开发技术的过程中,如何设计与实现一个基于vc.H的McS巧1单片机汇编语言的IDE。
本系统在Ivies.51单片机上实现了
代码下载功能,在计算机上调试好的程序既可以通过编程器写入单片机或EPROM中,也可以直接通过计算机的串口下载到应用
系统中。
系统运行时,程序可存放在单片机内部,也可存放在单片机外部的EPROM或Flash存储器中,非常方便灵活。
1.2国内外研究现状 学习单片机汇编语言理应有一个好的集成式的程序开发系统,其界面直观且能提高效率,可使初学者和程序员省去频繁输入命令的麻烦。
单片机DE(集成开发环境)是开发单片机应用系统必不可少的工具之一。
目前,单片机IDE主要由世界几大专门面向嵌入式系统的软件公司提供;德国的Keil、荷兰的Tasking,美国的Franklin,台湾的IAR等等。
其中Kcil的产品jtVision2和Tasking的产品EDE品质尤为出众,知名度颇高。
研究它们的
设计原理和各自的优缺点,开发适合自己的IDE,成为摆在国内计算机界面前的一个迫切任务. 虽然目前市场上有许多MCS.5l汇编语言编译器,就其编辑、编译、连接、调试、运行等主要功能来说,大家虽然都已基本实现了,但也有不足之处,比如说有的系统不能实现文件下载,有的费时费力不够直观且极易出错等,这些都在一定程度上为初学者带来了不便。
而且,目前对汇编语言编译器的开发大多采用Turbo c、VB语畜等,但是随Ⅵsual C++的广泛应用,其强大的功能、便捷性和直观性日益体现出来,其“可视”的资源编辑器与MFC类以及应用程序向导,为快速高效地开发出功能强大的W’mdowsb盘用程序提供了极大的方便嘲。
同时,在编译器的整体设计中要利用串口进行数据通讯。
而在串口通信的各神开发工具中间,VC由于其功能的强大和灵活,同时也得到了Microsoft的最大支持,利用RS-232进行数据信号的采集和传递也成为VC编程的一大热点〔61。
所以一般在涉及硬件操作的通讯编程中,大都推荐使用VC作为 第一章绪论开发工具。
鉴于此,本文将用VC¨6.O来面向应用的单片机教学实验系统中的MCS.51单片机汇编语言IDE,此DE不仅应具有编辑、编译功能,而且还将具备专门为ES教学实验系统研制的能将编译过的汇编程序(即Intel Hox格式)通过串口直接下载到单片机的功能。
这样一来,不但使编写
程序变的更加便捷、直观,同时也省去了以往必须要使用编程器才能使程序下载到单片机的繁琐步骤及相关实验设备。
1.3
论文内容 第一章主要介绍选题依据与意义、国内外研究现状、研究方法等;第二章主要探讨了一些理论基础和相关概念,如单片机的相关理论知识,一般〔DE的主要功能、开发环节,还有对编译器的相关概念、理论知识的介绍,同时对HEX文件的格式做了简单介绍等;第三章主要研究了该软件系统的具体设计,首先介绍了对编程工具VCH哂.0的选择和其特点,以及编辑器的界面设计和具体实现的步骤,研究了编译器设计模块中的词法分析、语法分析和符号表管理等具体模块的设计,然后介绍了串口通信的基本概念、W’mdows串口通信API函数以及串口通信的设计实现过程和一些人性化设计,如用户登录模块、实验演示模块和帮助文件模块,最后简单介绍了该系统的使用方法;第四章主要介绍了该系统在高校单片机实践教学中的应用;第五章给出了作者的结论和建议。
4 第二章MCS.51单片机汇编语言程序IDE的设计 第二章MCS.5 l单片机汇编语言程序〕DE的设计2.1单片机概述 单片机又称微控制器,在工业控制中占据很重要的地位,目前8位单片机仍占有单片机市场60%以上的份额。
MCS一51系列单片机属于8位单片机,具有很强的功能,适用范围广,既可构成功能很强的复杂系统,也可组成较简单的应用系统用。
单片机靠写入存储器中的机器语言程序的执行来实现对各种系统的控制。
随着微电子工艺水平的提高,近二十余年来单片微型计算机有了飞跃的发展。
世界上著名的集成电路制造商纷纷推出各自的产品,单片机型号之多,已达到难以统计的地步。
以著名的芯片制造业巨头——血tcl公司为例,早期推出的MCS-48系列单片机是一种功能简单、寻址范围很有限的低性能8位单片机,这类单片机早已被稍后推出的MCS.51系列8位单片机所取代。
在MCS.51系列单片杌的内核8051/80C51的基础上,ATMEL公司、Philips公司、Siemens公司等很多大公司,纷纷推出了名目繁多的派生芯片。
这类单片机是目前世界上应用最广的一类单片机。
它的繁衍发展之路也是其它系列单片机发展的共同道路嘲。
归纳起来,它沿两条路发展; ①改进集成电路制造工艺,提高芯片的工作速度,降低工作电压和降低功耗。
早期的8051的最高振荡器频率为12MHz,一个机器周期为11.ts。
Intel 80C51ZX的一个机器周期仅为l/6J∞。
早期的8051的正常
工作电压都是5V,而Philips公司的80cL5l/80cL410可工作于1.8V的低电压。
80CL5l/80cL4lO是全静态设计的,当芯片采用外部时钟时,可工作于直流状态,即可把外部时钟完全关掉仍能够保持住芯片内部状态;当时钟重新加上时,芯片将继续正常工作。
当外部对钟停止时,芯片的消耗电流只有l“A。
②在保留共同的CPU体系结构、最基本的外设装置(如异步串行口、定时器等)和一套公用的指令系统的基础上,根据不同的应用领域,把不同的外设装置集成到芯片内,在同一家族内衍生出各种型号的单片机。
Intel公司在805l/80C51的基础上,已衍生出lO种共50多个型号的芯片;Phinps公司在80C51的基础上衍生出20多种近50个型号的单片机。
第二章MCS.51单片机汇编语言程序IDE的设计2.2 MCS.5l单片机指令系统及其指令格式概述 MCS一51单片机指令系统具有功能强、指令短、执行快等特点,共有111条指令和8条伪指令。
从功能上可划分成数据传送,算术操作、逻辑操作、程序转移位操作等五大类;从空问属性上分为单字节指令(49条)、双字节指令(46条)和最长的三字节指令(只有16条)。
从时间属性上可分成单机器周期指令(64条)、双机器周期指令(45条)和只有乘、除法两条4个机器周期的指令。
可见,MCS.51单片机指令系统在存储空间和执行时间方面具有较高的效率. 指令系统中的指令描述了不同的操作,不同操作对应不同的指令。
但结构上,每条指令通常由操作码和操作数两部分组成。
操作码表示计算机执行该指令将进行何种操作,操作数表示参加操作的数的本身或操作数所在的地址。
MCS-51单片机的指令有无操作数、单操作数、双操作数三种情况。
汇编语言指令有如下的格式: 【标号:】操作码助记符【目的操作数】【,源操作数】【.注释】 伪指令不要求计算机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的执行,仅仅是能够帮助进行汇编的一些指令。
它主要用来指定程序或数据的起始位置,给出一些连续存放数据的地址或为中间运算结果保留一部分存储空间以及表示源程序结束等等。
不同版本的汇编语言,伪指令的符号和含义可能有所不同,但基本用法是相似的网.如表2.1所示; 袭2-1伪指令表 序号 名称 说明 l ORG 汇编起始指令 2 DB 定义字节指令 3 BW 定义字指令 4 DS 定义空间指令 5 EQU 等值指令 6 BIT 位地址符号命令 7 咖 汇编结束指令 8 DATA 数据地址赋值命令 6 第二章MCS.51单片机汇编语言程序IDE的设计2.3集成开发环境概述 IDE的全称是Integrated Development Environment,直译为集成开发环境,它包括编辑、编译、调试等功能。
2.3.1 IDE的主要功能 通过对于上述IDE软件的分析,以及其他成熟的比如Visual Studio等软件的分析,可以看出,一个理想中的IDE软件应带有下面的功能。
(1)
代码编辑。
使用IDE的过程中,用户60%的时间都是在进行
代码编辑.理想的IDE应该尽量在
代码编辑中提供对用户的帮助,改进开发效率。
具体的手段包括提高程序的可读性(改善显示效果)、简化用户的输入动作(如
代码自动生成)、方便用户对程序的阅读(函数列表、交叉索引等)。
(2)Project管理及编译控制(此处不是指一般意义上的项目管理,而是一个软件包的编译选项等等)。
在使用IDE编辑
软件的时候,有些软件引入了项目(Project)的概念。
例如Visual Studio就有专门的项目文件来记录当前软件的路径、编译信息、文件信息、类信息等掣1们。
也有不少Linux下面的〔DE并没有专门引入Project的概念,它们认为使用GNU的Makefile系统就可以很方便的实现软件的项目管理和编译控制,再加_J:Automake和Auteconf昝生成Makeffie的辅助程序,在编译软件的过程中不需要其他额外信息了.本文也未引入Projm管理,着重研究编译控制。
(3)平台管理(一般IDE没有,嵌入式需要针对不同开发板及环境预设一些基本的Profile,方便用户选择使用)。
针对嵌入式开发环境的目标平台多样性的特点,可以引入平台信息管理功能。
针对每个CPU体系、Processor的型号、开发板的名称,将所有的平台信息分类记录在平台信息管理模块中。
用户使用一个新的开发平台的过程中,就可以选取相应的配置文件,比较简单地获得他人已经在本平台下成功使用过的开发环境、操作系统等。
这样就能辅助开发人员很快地进入最终应用开发的阶段。
(4)软件调试。
IDE的调试功能是不可或缺的。
早期的Turbo C 2.0软件,就以简便且强大的调试功能而深受好评,广泛流行。
软件调试,通常是对本地运行的软件,利用操作系统提供的Trace功能,控制它的执行,并获取它的内部信息,从而检查出软件执行过程中所出现的错误。
而在嵌入式系统开发中,还必须支持远程调试。
需要说明的是,在本文中,并未能够实现上面的全部功能,主要着重点在于
代码编辑、调 7 第二章MCS.51单片机汇编语言程序1DE的设计试、连接和下载部分。
也就是在PC机上控制目标板中程序执行,从而检查软件错误。
另外,嵌入式开发中,还可能利用到强大的TrAG在线调试功能,利用硬件断点寄存器等方式实现对系统软件的调试。
2.3.2单片机应用系统软件开发步骤 综上所述,在嵌入式软件开发中,由于目标平台的资源有限性,所有的开发工作都是在Host PC上面完成的,所以,导致嵌入式系统中每一个软件的开发过程必须经历下面的环节: (1)源
代码编辑 嵌入式开发主要使用的是C,c-H、汇编等类型的源程序。
因此,使用一个好的
代码编辑软件可以提高这个环节的工作效率。
(2)编译生成目标程序 在源
代码编辑完成之后,必须要进行编译、出错处理、连接,然后生成目标
代码。
(3)下载或编程 一
代码总是要在目标平台上才可以执行的。
所以编译生成的目标程序首先必须要下载到开发板。
代码下载的步骤比较复杂。
例如,下载Boot loader的动作是根据Prooessor所支持的方式来实现的,每个平台各不相同;而下载Linuxkernel的动作又是根据Bootloade:所支持的方式来实现的,每个Bootloader也各不相同;下载应用程序的方式又是根据操作系统所提供的方式来实现的,是
网络方式还是串口方式,通讯协议又是哪种,都无法确定。
所以,这个步骤难于统一完成。
本文采用的是通过串口将目标文件下载到单片机上。
(4)调试 通常的软件调试,都是在本机运行调试软件(比如gdb)来完成的。
在嵌入式环境中,开发板上可能由于资源所限,无法运行gdb。
因此,嵌入式环境中的软件调试,通常采用的.