Keil

阅读: 评论:0

Keil
编辑本段简介
  单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU16MB或更多RAM20M以上空闲的硬盘空间、WIN98NTWIN2000WINXP操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
编辑本段基本知识
  Keil C51开发系统基本知识Keil C51开发系统基本知识
  1. 系统概述
  Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。
  2. Keil C51单片机软件开发系统的整体结构
  C51工具包的整体结构,uVisionIshell分别是C51 for Windowsfor Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51tSc
ope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
  使用独立的Keil仿真器时,注意事项
  * 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。
  * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。
  * 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU/EA引脚接至低电平)的目标系统中使用。 [1]?
编辑本段优点
  Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
编辑本段触控产品版本
  ? 目前keil的版本已经出到keil uVision4keil软件常与proteus仿真软件相配合使用。
编辑本段教程
  为了让初学者更好地入门,笔者利用Keil 提供的AGSI 接口开发了两块仿真实验板。这两块仿真板将枯燥无味的数字用形象的图形表达出来,可以使初学者在没有硬件时就能感受到真实的学习环境,降低单片机的入门门槛。图1 是键盘、LED 显示实验仿真板的图,从图中可以看出,该板比较简单,有在P1 口接有8 个发光二极管,在P3 口接有4 个按钮,
  图的右边给出了原理图。
  图 2 是另一个较为复杂的
  实验仿真板。在该板上有8 个数
  码管,16 个按键(接成44
  矩阵式),另外还有P1 口接的8
  个发光管,两个外部中断按钮,一个带有计数器的脉冲发生器等资源,显然,这块板可以完
  成更多的实验。
  一、实验仿真板的安装
  这两块仿真实验板实际上是两个 dll
  件,名称分别是ledkey.dll simboard.dll
  安装时只要根据需要将这两个或某一个文
  件拷贝到keil 软件的c51\bin 文件夹中即可。
  二、实验仿真板的使用
  要使用仿真板,必须对工程进行设置,
  设置的方法是点击Project->Option for Target
  ‘Target1’打开对话框,然后选中Debug 标签
  页,在Dialog :Parameter:后的编缉框中输入
  -d 文件名。例如要用ledkey.dll(即第一块仿
  真板)进行调试,就输入-dledkey,如图3
  所示,输入完毕后点击确定退出。编译、连接完成后按CTRL+F5 进入调试,此时,点击菜
  单Peripherals,即会多出一项键盘LED 仿真板(K,选中该项,即会出现如图1 的界面,
  键盘、LED 显示实验仿真板
  图 2 单片机实验仿真板
  Keil 软件实全教程(五)
  同样,在设置时如果输入-dsimboard 则能够调出如
  图2 的界面。
  第一块仿真板的硬件电路很简单,电路图已在
  板上,第二块板实现的功能稍复杂,其键盘和数码
  显示管部分的电路原理图如图4 所示。下表给出了
  常用字形码,读者也可以根据图中的接线自行写出
  其它如ABCDEF 等的字形码。除了键
  盘和数码管以外,P1 口同样也接有8 个发光二极管,
  连接方式与图1 相同;脉冲发生器是接入T0 P3.4 引脚。
  0c0h 0f9h 0a4h 0b0h 99h 92h 82h 0f8h 80h 90h 0FFH
  0 1 2 3 4 5 6 7 8 9 消隐
  三、实例调试
  以下以一个稍复杂的程序为例,说明键盘、精细雾化喷嘴LED 显示实验仿真板的使用。该程序实现
  的是可控流水灯,接P3.2 的键为开始键,按此键则灯开始流动(由上而下),接P3.3 的键
  为停止键,按此键则停止流动,所有灯暗,接P3.4 的键为向上键,按此键则灯由上向下流
  动,接P3.5 的键为向下键,按此键则灯由下向上流动。
  例 8
  UpDown BIT 00H ;上下行标志
  StartEnd BIT 01H ;起动及停止标志
  LAMPCODE EQU 21H ;存放流动的数据代码
  ORG 0000H
  AJMP MAIN
  ORG 30H
  MAIN:
  MOV SP,#5FH
  MOV P1,#0FFH
  CLR UpDown ;启动时处于向上的状态
  h g f e
  P0.7
  P0.0
  P0.5
  P0.4
  P0.7
  P0.6
  d c b a
  P0.3
  P0.2
  P0.0
  P0.1 P2.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
  2 3
  6 7
  A B
  E F
  0 1
  4 5
  8 9
  VCC C D 89C51
  图4 实验仿真板2 数码管和键盘部分的电路图
  图 3 实验仿真板的设置
  Keil 软件实全教程(五)
  CLR StartEnd ;启动时处于停止状态
  MOV LAMPCODE,#01H ;单灯流动的代码
  LOOP: ACALL KEY ;调用键盘程序
  JNB F0,LNEXT ;如果无键按下,则继续
  ACALL KEYPROC ;否则调用键盘处理程序
雨水弃流井  LNEXT: ACALL LAMP ;调用灯显示程序
  AJMP LOOP ;反复循环,主程序到此结束
  ;延时程序,键盘处理中调用
  DELAY: MOV R7,#100
  D1: MOV R6,#100
  DJNZ R6,$
  DJNZ R7,D1
  RET
  KEYPROC:
  MOV A,B ;B 寄存器中获取键值
  JB ACC.2,KeyStart ;分析键的代码,某位被按下,则该位为1
  JB ACC.3,KeyOver
  JB ACC.4,KeyUp
  JB ACC.5,KeyDown
  AJMP KEY_RET
  KeyStart:
  SETB StartEnd ;第一个键按下后的处理
  AJMP KEY_RET
  KeyOver:
  CLR StartEnd ;第二个键按下后的处理
  AJMP KEY_RET
  KeyUp:
  SETB UpDown ;第三个键按下后的处理
  AJMP KEY_RET
  KeyDown:
  CLR UpDown ;第四个键按下后的处理
  KEY_RET:
  RET
  KEY:
  CLR F0 ;F0,表示无键按下。
  ORL P3,#00111100B ;P3 口的接有键的四位置1
  MOV A,P3 ;P3 的值
  ORL A,#11000011B ;将其余4 位置1
  CPL A ;取反
  JZ K_RET ;如果为0 则一定无键按下
  CALL DELAY ;否则延时去键抖
  ORL P3,#00111100B
  MOV A,P3
  ORL A,#11000011B
  Keil 软件实全教程(五)
  CPL A
  JZ K_RET
  MOV B,A ;确实有键按下无动力清扫器,将键值存入B
  SETB F0 ;设置有键按下的标志
  ;以下的代码是可以被注释掉的,如果去掉注释,就具有判断键是否释放的功能,否则
  没有
  K_RET: ;ORL P3,#00111100B ;电子式电压互感器此处循环等待键的释放
  ;MOV A,P3
  ;ORL A,#11000011B
  ;CPL A
  ;JZ K_RET1 ;读取的数据取反后为0 毛豆剥壳机说明键释放了

本文发布于:2023-05-13 11:36:51,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/97983.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:开发   使用   软件   汇编   目标
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图