04第四讲 单片机软件开发平台.docx
《04第四讲 单片机软件开发平台.docx》由会员分享,可在线阅读,更多相关《04第四讲 单片机软件开发平台.docx(12页珍藏版)》请在冰点文库上搜索。
04第四讲单片机软件开发平台
第四讲单片机软件开发平台(KeilC)的安装、简介和使用
电工电子实验教学中心
艾庆生2007-3-12
单片机鲜明的特点就是软、硬件的结合。
我们除了进行硬件方面的准备外,接下来的事儿就是软件编程、源程序编译、创建目标文件(如产生16进制文件)、软件调试、下载目标文件(俗称“烧片”)等,这也是我们必须认真掌握的重点内容。
下面给大家介绍常用软件KeilC.
一、关于KeilC软件
KeiluVision2(简称KeilC)是德国Keil公司(KeilQuel)的产品,其性能较其它同类产品优异,特别是兼容ANS1C后,又增加了很多与硬件密切相关的编译特性,使得在8051系列单片机上开发应用程序更为方便和快捷。
在KeiluVision2的平台下,用户源程序的大小不再有任何限制,支持ASM、C、PLM语言混合编程,源文本调试,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。
丰富的显示方式,多方位、动态地显示仿真的各个过程,使用极为便利。
KeilC调试软件为你提供了一个全集成环境,统一的界面包含一个项目管理器,一个功能强劲的编辑器,以及汇编和调试工具,并提供一个与第三方编译器的接口。
由于风格一致,从而大大节省时间和精力。
KeilC51集成开发环境是使用工程方法来管理文件的,而不是单一文件的模式。
所有的文件包括源程序(包括C程序,汇编程序)、头文件、甚至说明性的技术文档都可以放在工程项目文件里面统一管理。
在使用KeilC51之前,您应该习惯这种工程的管理方式,对于刚刚使用KeilC51的用户来讲,一般可以按照下面的步骤来创建一个自己的KeilC51应用程序。
1、建一个项目文件。
2、工程选择一个目标器件(如ATMEL89C52)。
3、创建源程序文件并输入程序代码并保存。
4、把源文件添加到项目中。
5、为工程项目设置软硬件调试环境。
6、编译项目文件。
7、硬件或者软件调试。
二、KeilC软件的安装
1、将带有KEIL安装软件的光盘放入光驱里,打开光驱中带有KEIL安装软件的文件夹,双击Setup文件夹中“Setup”即开始安装(注:
为大家学习方便,该软件放在服务器上:
ftp:
//192.168.1.9/EDA软件/Keil750AHK/里,可下载学习)。
如果您的微机上已经安装了KEIL的软件,会提示您是否要先把您以前的软件先卸载,此时您最好是先卸载掉,然后再安装本软件(如图所示)。
2、如果您需要把软件安装在C盘以外的其它盘,需要运行一个补丁文件,直接打开KEIL软件已安装目录中的\KEIL\UV2,双击“Crackdir”图标,点击确定即完成补丁的安装(如图所示)。
三、KeilC软件的操作说明
1、新建一个项目文件(注:
项目在计算机上的体现就是先建立一个自己命名的文件夹,而项目文件即应在该文件夹里)。
首先点击KeiluVision2,进入uVision2界面。
点击工具栏Project选项中的NewProject,准备开始建立自己的项目。
输入工程文件名称(不需加后缀,它会自动加上uv2的后缀),并选择保存工程文件的目录(即刚建立的自己命名的文件夹)。
为项目文件选择一个目标器件(如ATMEL89C51),如图所示。
用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。
在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真:
连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。
波特率为38400。
若用单片机最小系统做实验,由于它有专门的下载程序,不需要KeilC的硬件仿真,故可以在此处不予选择。
选择串口
选择波特率
硬件仿真
软件仿真
点击“文件/新建”创建源程序文件并输入程序代码。
在文本框中输入源程序,如下图所示
点击“文件/保存“对程序进行保存
用鼠标对项目工作区的源代码组1,点击右键在弹出的菜单中选择添加文件到源代码组,如下图所示
在弹出的添加文件框中,选择需要添加到项目中的文件
点击编译连接的图标,对项目文件进行编译
点击“调试/启动/停止调试”进入调试界面
在调试界面中可以对程序进行单步或者全速运行的调试
连机/停止
单步
全速运行
若要查看内存中的数据,点击“视图/存储器窗口”
在此地址框中,输入不同的指令查看内部数据
如果需要查看一些内部数据,在菜单栏点击[视图/存储窗口]。
C:
0X地址 显示程序存储区数据
X:
0X地址 显示数据存储区中数据
D:
0X地址 显示CPU内部存储区中数据
四、KeilC的使用
下面我们用实用程序做例子来了解和熟悉KeilC的使用。
实验一拆字程序实验
1.实验目的:
熟悉KeilC软件平台、掌握汇编语言设计方法。
2.实验内容:
把70H地址上的内容拆开,高4位送71H地址的低4位,低4位送72H地址的低4位,71H、72H地址的高4位清零。
本程序通常在把数据送显示缓冲区时使用。
3.实验器材:
计算机1台
4.实验步骤:
⑴在D盘新建一个文件夹,取名MyProject;
⑵双击打开KeiluVision2,进入uVision2界面。
点击工具栏Project选项中的NewProject,在对话框里输入工程的项目名,例如mysy1,回车;
⑶随即又会产生一个对话框,让你为项目文件选择一个目标器件,我们选ATMEL公司的芯片(如ATMEL89C51);
⑷用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”。
在“为目标‘目标1’设置选项”中,点击“输出”菜单,根据需要选择是否需要“产生HEX文件”,本实验不需要,故不需打勾。
点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真:
本实验为软件仿真,以后用单片机最小系统时可不考虑此项。
⑸然后按流程图编写程序,见后附的参考程序,输入完毕后将该源程序以后缀为asm的文件名加以保存,如保存为caizi.asm;注意,最好应保存在项目文件夹里;
⑹用鼠标对项目工作区的源代码组1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择刚保存的文件caizi.asm,把它添加到项目中。
最后对整个项目进行保存。
⑺文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。
⑻设置观察窗口:
a.用鼠标点击[视图/存储器窗口],在地址栏中输入[D:
0X70];
b.在70H中写入数据(任意);
c.单步执行观察寄存器和70H—72H的变化。
5.程序框图:
6.实验程序(caizi.asm)
;把指定字节的高低位拆开分别存放,多用于显示子程序
ORG0000H
MOVR0,#70H;指定的字节
MOVA,@R0
MOVB,A;暂存
SWAPA;交换
ANLA,#0FH;屏敝高位
INCR0
MOV@R0,A
INCR0
MOVA,B
ANLA,#0FH;指定字节的内容屏敝高位
MOV@R0,A
LOOP:
SJMPLOOP
END
实验二拼字程序实验
1.实验目的:
进一步熟悉软件调试方法、进一步掌握汇编语言设计;
2.实验内容:
把8000H、8001H两个字节的低位分别送入8002H的高位和低位。
本程序一般用于把显示缓冲区数据取出拼装成一个字节。
3.实验器材:
计算机1台
4.实验步骤:
⑴仿照实验一的步骤,一直做到第⑻步;(源程序文件为pinzi.asm)
⑵设置观察窗口:
a.用鼠标点击[视图/存储器窗口],在地址栏中输入[X:
0X8000];
b.在8000H和8001H中写入数据(任意);
c.用断点或单步方式运行程序,检查8000H-8002H,A,B中內容变化情况。
5.程序框图:
6.思考问题:
修改8000H、8001H内容重复上述实验。
7.实验程序:
(pinzi.asm)
;把两字节的低位合拼成一个字节,多用于显示子程序
ORG0000h
MOVDPTR,#8000H
MOVXA,@DPTR
ANLA,#0FH;屏敝高位
SWAPA
MOVB,A;保存
INCDPTR
MOVXA,@DPTR
ANLA,#0FH
ORLA,B;合拼
INCDPTR
MOVX@DPTR,A;送8002H存放
LOOP:
SJMPLOOP
END
思考题:
1。
请编写一个程序,将外部数据区0X8000-0X800F共16个字节的数据复制到0X8050-0X805FH里去(注:
需事先向0X8000-0X800F里写入数据)。
2。
在上一个程序的基础上,加部分程序段,实现向0X8000-0X800F里自动赋值。