Keil.docx
- 文档编号:12255237
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:15
- 大小:34.06KB
Keil.docx
《Keil.docx》由会员分享,可在线阅读,更多相关《Keil.docx(15页珍藏版)》请在冰豆网上搜索。
Keil
Keil
编辑本段简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
编辑本段基本知识
KeilC51开发系统基本知识KeilC51开发系统基本知识
1.系统概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
2.KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
使用独立的Keil仿真器时,注意事项
*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。
[1]?
编辑本段优点
KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
编辑本段版本
?
目前keil的版本已经出到keiluVision4。
keil软件常与proteus仿真软件相配合使用。
编辑本段教程
为了让初学者更好地入门,笔者利用Keil提供的AGSI接口开发了两块仿真实验板。
这两块仿真板将枯燥无味的数字用形象的图形表达出来,可以使初学者在没有硬件时就能感受到真实的学习环境,降低单片机的入门门槛。
图1是键盘、LED显示实验仿真板的图,从图中可以看出,该板比较简单,有在P1口接有8个发光二极管,在P3口接有4个按钮,
图的右边给出了原理图。
图2是另一个较为复杂的
实验仿真板。
在该板上有8个数
码管,16个按键(接成4*4的
矩阵式),另外还有P1口接的8
个发光管,两个外部中断按钮,一个带有计数器的脉冲发生器等资源,显然,这块板可以完
成更多的实验。
一、实验仿真板的安装
这两块仿真实验板实际上是两个dll文
件,名称分别是ledkey.dll和simboard.dll,
安装时只要根据需要将这两个或某一个文
件拷贝到keil软件的c51\bin文件夹中即可。
二、实验仿真板的使用
要使用仿真板,必须对工程进行设置,
设置的方法是点击Project->OptionforTarget
‘Target1’打开对话框,然后选中Debug标签
页,在Dialog:
Parameter:
后的编缉框中输入
-d文件名。
例如要用ledkey.dll(即第一块仿
真板)进行调试,就输入-dledkey,如图3
所示,输入完毕后点击确定退出。
编译、连接完成后按CTRL+F5进入调试,此时,点击菜
单Peripherals,即会多出一项“键盘LED仿真板(K)”,选中该项,即会出现如图1的界面,
键盘、LED显示实验仿真板
图2单片机实验仿真板
Keil软件实全教程(五)
同样,在设置时如果输入-dsimboard则能够调出如
图2的界面。
第一块仿真板的硬件电路很简单,电路图已在
板上,第二块板实现的功能稍复杂,其键盘和数码
显示管部分的电路原理图如图4所示。
下表给出了
常用字形码,读者也可以根据图中的接线自行写出
其它如A、B、C、D、E、F等的字形码。
除了键
盘和数码管以外,P1口同样也接有8个发光二极管,
连接方式与图1相同;脉冲发生器是接入T0即P3.4引脚。
0c0h0f9h0a4h0b0h99h92h82h0f8h80h90h0FFH
0123456789消隐
三、实例调试
以下以一个稍复杂的程序为例,说明键盘、LED显示实验仿真板的使用。
该程序实现
的是可控流水灯,接P3.2的键为开始键,按此键则灯开始流动(由上而下),接P3.3的键
为停止键,按此键则停止流动,所有灯暗,接P3.4的键为向上键,按此键则灯由上向下流
动,接P3.5的键为向下键,按此键则灯由下向上流动。
例8:
UpDownBIT00H;上下行标志
StartEndBIT01H;起动及停止标志
LAMPCODEEQU21H;存放流动的数据代码
ORG0000H
AJMPMAIN
ORG30H
MAIN:
MOVSP,#5FH
MOVP1,#0FFH
CLRUpDown;启动时处于向上的状态
hgfe
P0.7
P0.0
P0.5
P0.4
P0.7
P0.6
dcba
P0.3
P0.2
P0.0
P0.1P2.7
P2.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0驱动
P3.0
P3.1
P3.2
P3.5
P3.3
P3.4
P3.6
P3.7
23
67
AB
EF
01
45
89
VCCCD89C51
图4实验仿真板2数码管和键盘部分的电路图
图3实验仿真板的设置
Keil软件实全教程(五)
CLRStartEnd;启动时处于停止状态
MOVLAMPCODE,#01H;单灯流动的代码
LOOP:
ACALLKEY;调用键盘程序
JNBF0,LNEXT;如果无键按下,则继续
ACALLKEYPROC;否则调用键盘处理程序
LNEXT:
ACALLLAMP;调用灯显示程序
AJMPLOOP;反复循环,主程序到此结束
;延时程序,键盘处理中调用
DELAY:
MOVR7,#100
D1:
MOVR6,#100
DJNZR6,$
DJNZR7,D1
RET
KEYPROC:
MOVA,B;从B寄存器中获取键值
JBACC.2,KeyStart;分析键的代码,某位被按下,则该位为1
JBACC.3,KeyOver
JBACC.4,KeyUp
JBACC.5,KeyDown
AJMPKEY_RET
KeyStart:
SETBStartEnd;第一个键按下后的处理
AJMPKEY_RET
KeyOver:
CLRStartEnd;第二个键按下后的处理
AJMPKEY_RET
KeyUp:
SETBUpDown;第三个键按下后的处理
AJMPKEY_RET
KeyDown:
CLRUpDown;第四个键按下后的处理
KEY_RET:
RET
KEY:
CLRF0;清F0,表示无键按下。
ORLP3,#00111100B;将P3口的接有键的四位置1
MOVA,P3;取P3的值
ORLA,#11000011B;将其余4位置1
CPLA;取反
JZK_RET;如果为0则一定无键按下
CALLDELAY;否则延时去键抖
ORLP3,#00111100B
MOVA,P3
ORLA,#11000011B
Keil软件实全教程(五)
CPLA
JZK_RET
MOVB,A;确实有键按下,将键值存入B中
SETBF0;设置有键按下的标志
;以下的代码是可以被注释掉的,如果去掉注释,就具有判断键是否释放的功能,否则
没有
K_RET:
;ORLP3,#00111100B;此处循环等待键的释放
;MOVA,P3
;ORLA,#11000011B
;CPLA
;JZK_RET1;读取的数据取反后为0说明键释放了
;AJMPK_RET
;K_RET1:
CALLDELAY;消除后沿抖动
RET
D500MS:
;流水灯的延迟时间
MOVR7,#255
D51:
MOVR6,#255
DJNZR6,$
DJNZR7,D51
RET
LAMP:
JBStartEnd,LampStart;如果StartEnd=1,则启动
MOVP1,#0FFH
AJMPLAMPRET;否则关闭所有显示,返回
LampStart:
JBUpDown,LAMPUP;如果UpDown=1,则向上流动
MOVA,LAMPCODE
RLA;实际就是左移位而已
MOVLAMPCODE,A
MOVP1,A
LCALLD500MS
LCALLD500MS
AJMPLAMPRET
LAMPUP:
MOVA,LAMPCODE
RRA;向下流动实际就是右移
MOVLAMPCODE,A
MOVP1,A
LCALLD500MS
LAMPRET:
RET
END
将程序输入并建立工程文件,设置工程文件,在Debug标签页中加入“-dledkey”,汇
编、连接文件,按Ctrl+F5开始调试,打开仿真板,使用F5功能键全速运行,可以看到所
Keil软件实全教程(五)
有灯均不亮,点击最上面的按钮,立即会看到灯流动起来了,点击第二个按键,灯将停止流
动,再次点击第一个按钮,使灯流动起来,点击第三个按钮,可以发现灯流动的方向变了,
点击第四个按钮,灯的流动方向又变回来了。
如果没有出现所描述的现象,可以使用单步、
过程单步等调试手段进行调试,在进行调试时实验仿真板会随时显示出当前的情况,是不是
非常的直观和方便呢?
下面的一个例子是关于第二块实验仿真板的,演示点亮8位数码管。
例9:
ORG0000h
JMPMAIN
ORG30H
MAIN:
MOVSP,#5FH
MOVR1,#08H
MOVR0,#58H;显示缓冲区首地址
MOVA,#2
INIT:
MOV@R0,A;初始化显示缓冲区
INCA
INCR0
DJNZR1,INIT;将0-7送显示缓冲区
LOOP:
CALLDISPLAY
JMPLOOP
;主程序到此结束
DISPLAY:
MOVR0,#7FH;列选择
MOVR7,#08H;共有8个字符
MOVR1,#58H;显示缓冲区首地址
AGAIN:
MOVA,@R1
MOVDPTR,#DISPTABLE
MOVCA,@A+DPTR
MOVP0,A
MOVP2,R0
MOVA,R0
RRA
MOVR0,A
INCR1
DJNZR7,AGAIN
RET
DISPTABLE:
DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0FFH;字形码表
END
这一程序内部RAM中58H到5FH被当成是显示缓冲区,主程序中用2-9填充该显示
区,然后调用显示程序显示2-9。
这里是用了最简单的逐位显示的方式编写的显示程序。
最后介绍一个小小技巧,将鼠标移入按钮区域,按下左键,按钮显示被按下,不要放开
Keil软件实全教程(五)
鼠标左键,将光标移出按钮区域,松开左键,可以看到,按钮仍处于按下状态,利用这一功
能,在需要I/O口长期处于低电平时,你就不必一直用手按着鼠标的左键啦。
[1]
词条图册更多图册
参考资料
∙1
Keil仿真器的结构和使用特点
http:
//www.chinaren.ws/viewthread.php?
tid=7350&extra=
扩展阅读:
∙1
http:
/www.CrazyC
我来完善“keil”相关词条:
proteus
proteus
XX百科中的词条内容仅供参考,如果您需要解决具体问题(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
598本词条对我有帮助
添加到搜藏
分享到:
合作编辑者
ad394970083,百科ROBOT,潘昊,cloudgamer,fenwick2008,liuxp03,selfeel,乌伤情怀
更多
如果您认为本词条还需进一步完善,百科欢迎您也来参与编辑词条在开始编辑前,您还可以先学习如何编辑词条
如想投诉,请到XX百科投诉中心;如想提出意见、建议,请到XX百科吧。
成长任务
词条动态
热词推送
编辑热词可获得额外经验值
进入我的百科
您目前的等级是级
您目前的经验值是点
您还需点经验值即可升为级
词条统计
浏览次数:
约87075次
编辑次数:
13次历史版本
最近更新:
2011-01-01
创建者:
yuchigong
更多贡献光荣榜
鼠标滑过用户名,我们有名片啦!
辛勤贡献者:
Greensyz
版本
liuxp03
版本
最新动态
风华绝代随风去:
百科消息:
百科邀你国际儿童图书日共献爱心
日本大地震
百科官方微博粉丝突破60000
XX百科人人网公共主页开通
山山水水--中国的自然美景
礼贤下士--百科分类管理员主页
科友之家--XX百科核心用户专区
XX百科“知识先锋”计划启动
我的船长我的船--百科船长日志
XX身边美食节可以白吃的地儿
科学家解读日本核泄漏影响
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Keil