Keil仿真英文名&中文
keil_protues介绍
(7)生成HEX文件 生成HEX文件
转到Output选项页, 是选择编译输出的路径, 转到Output选项页,1是选择编译输出的路径,2是 Output选项页 设置生成的文件名,3是决定是否要创建HEX文件。 设置生成的文件名, 是决定是否要创建HEX文件。 HEX文件
二、Proteus 的使用
Proteus是一个虚拟实验室, Proteus是一个虚拟实验室, 是一个虚拟实验室 提供了大量的虚拟仪器、 提供了大量的虚拟仪器、仪 激励源和分析工具: 表、激励源和分析工具: 13类激励源 13类激励源 直流、正弦、脉冲…… 直流、正弦、脉冲 13类曲线图表 13类曲线图表 模拟、数字、频率…… 模拟、数字、频率 12类虚拟仪器 12类虚拟仪器 示波器、逻辑分析仪、 示波器、逻辑分析仪、 调试器…… SPI/I2C调试器 电压/ 电压/电流探针
Keil使用说明及中英文对照
KeilKeil µµVision2仿真软件——单片机集成开发环境 ——标题栏工具栏菜单栏程序窗口项目窗口输出窗口1、启动µVision2 ,新建一个项目文件• 选择【Project】/【New Project】选项。
•选择要保存项目文件的路径,•输入项目名。
然后单击“保存”按钮。
从器件库中选择一个器件。
Atmel公司AT89C512、新建一个源文件并把它加入到项目中①选择【File】/【New】②在弹出的程序文本框中输入一个程序【File】/【New】输入程序输入文件名④把源文件加入到项目中•在项目窗口中,单击Target1前面的+号,展开里面的内容Source Group1•用右键单击Source Group1,在弹出的快捷菜单中选择Add File to Group`Source Group1`选项添加文件3、对项目目标进行设置•用鼠标右键单击项目中Target1•在弹出的菜单中选择Options for Target Options for Target ““Target 1•弹出Options for TargetOptions for Target ““Target 1对话框,其中有8 个选项卡Options for TargetOptions for Target ““Target 1对话框③Debug选项卡设置有两类仿真形式可选:Use Simulator纯软件仿真和Use:Keil Monitor-51 Driver仿真器的仿真Use Simulator纯软件仿真Use:Keil Monitor-51 Driver仿真器的仿真单击图中的Settings按钮,其中的设置如下 :Use Simulator 纯软件仿真4、编译项目并生成可编程的HEX 文件。
选择【Project】/【Rebuild all target files 】编译成功信息5、仿真调试选择【Debug】/【Start/Stop Debug Session 】Start/Stop Debug Go调试窗口View 菜单寄存器、存储器窗口:存储器:X:片外RAMC:程序ROMI:片内RAM 寄存器§3.4 3.4 思考题与习题思考题与习题练习 :6、数据传送 16、逻辑操作20、16位数减法25、查找数据26、查找数据量30、BCD 码求和 31、数据搬家练习 :6、数据传送16、逻辑操作 20、16位数减法 25、查找数据 26、查找数据量 30、BCD 码求和31、数据搬家Back BackORG 0000HLJMP STARTORG 2000H START:MOV R0 ,#30HMOV DPTR,#1050H CLR CMOV A ,@R0ADD A , 40HMOVX @DPTR , A INC R0INC DPTRMOV A , @R0ADDC A , 41HMOVX @DPTR , A SJMP $END。
4、MDK的介绍与使用
4、MDK的介绍与使⽤1.1.RVMDK简介RVMDK源⾃德国的KEIL公司,是RealView MDK的简称,RealView MDK集成了业内最领先的技术,包括µVision4集成开发环境与 RealView编译器。
⽀持ARM7、ARM9和最新的Cortex-M3核处理器,⾃动配置启动代码,集成Flash烧写模块,强⼤的Simulation设备模拟,性能分析等功能,与ARM之前的⼯具包ADS等相⽐,RealView编译器的最新版本可将性能改善超过20%。
1.2.MDK 4.12集成开发环境的组成MDK⼜称叫RVMDK,源⾃德国的KEIL公司,是RealView MDK的简称,RealView MDK 集成了业内最领先的技术,包括µVision4集成开发环境与 RealView编译器。
⽀持ARM7、ARM9和最新的Cortex-M3核处理器,⾃动配置启动代码,集成Flash烧写模块,强⼤的Simulation设备模拟,性能分析等功能,与ARM之前的⼯具包ADS等相⽐,RealView编译器的最新版本可将性能改善超过20%。
1.3.MDK⼯程的编辑1.3.1.新建RVMDK⼯程1)点击WINDOWS操作系统的【开始】?【程序】?【Keil uVision4】启动Keil uVision 或在桌⾯双击【Keil uVision4】快捷⽅式启动。
启动MDK4.12如图所⽰:2)点击之后,出现启动画⾯:1)点击“project---New uVision Project”新建⼀个⼯程2)在对话框,选择放在刚才建⽴的“新建⽂件夹”下,给这个⼯程取个名后保存,不需要填后缀:3)弹出⼀个框,在CPU类型下我们找到并选中“STMicroelectronics”下的STM32F103RB:4)出现⼀个提⽰框,是否复制STM32启动代码到⼯程⽂件夹,我们选择【是】,就可以看到STM32的启动代码⾃动添加进来了:5)到这⾥⼯程全部建⽴完毕1.3.2.建⽴⽂件建⽴⼀个⽂本⽂件,以便输⼊⽤户程序。
keilμvision仿真软件使用说明
K e i lμV i s i o n仿真软件使用说明(总19页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除Keil μVision2仿真软件使用说明第一部分μVision2集成开发环境μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。
其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit(如表1-1所示)菜单工具栏快捷键描述Home 移动光标到本行的开始End 移动光标到本行的末尾Ctrl+Home 移动光标到文件的开始Ctrl+End 移动光标到文件的结束Ctrl+<- 移动光标到词的左边 Ctrl+-> 移动光标到词的右边 Ctrl+A 选择当前文件的所有文本内容 Undo Ctrl+Z 取消上次操作 Redo Ctrl+Shift+Z 重复上次操作CutCtrl+X Ctrl+Y 剪切所选文本剪切当前行的所有文本 Copy Ctrl+C 复制所选文本 Paste Ctrl+V粘贴Indent Selected Text将所选文本右移一个制表键的距离Unindent Selected Text将所选文本左移一个制表键的距离Toggle Bookmark Ctrl+F2 设置/取消当前行的标签 Goto Next Bookmark F2 移动光标到下一个标签处 GotoPrevious bookmark Shift+F2移动光标到上一个标签处 Clear All Bookmarks清除当前文件的所有标签 Find在当前文件中查找文本 F3 向前重复查找 Shift+F3 向后重复查找Ctrl+F3 查找光标处的单词Ctrl+]寻找匹配的大括号、圆括号、方括号(用此命令将光标放到大括号、圆括号或方括号的前面) Replace替换特定的字符 Find in Files … 在多个文件中查找 Goto Matching brace选择匹配的一对大括号、圆括号或方括号中的内容2)选择文本命令在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
Keil软件及其调试功能简介.
Keil软件及其调试功能简介目前流行的51系列单片机开发软件是德国Keil公司推出的Keil C51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:μVision IDE集成开发环境(包括工程管理器①、源程序编辑器②、程序调试器③,见图2)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
应用Keil进行软件仿真开发的主要步骤为:编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
Keil使用“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。
工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。
首先选择菜单File-New…,在源程序编辑器中输入汇编语言或C语言源程序(或选择File-O pen…,直接打开已用其它编辑器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.a51)或.c;然后选择菜单Project-New Project…,建立新工程并保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。
这时工程管理窗口的文件页(Files)会出现“Target1”,将其前面+号展开,接着选择Source Group1,右击鼠标弹出快捷菜单,选择“Add File to Group ‘Source Group1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其它文件)。
Keil仿真软件
④把源文件加入到项目中
• 在项目窗口中,单击 在项目窗口中,单击Target1 前面的 号,展开 前面的+号 里面的内容Source Group1 里面的内容 • 用右键单击 用右键单击Source Group1 ,在弹出的快捷菜单 中选择Add File to Group`Source Group1`选项 中选择 选项 添加文件
单片机调试过程
• 新建源程序文件 建立一个汇编或C 建立一个汇编或C源程序文件 .ASM 或 .C 文件 • 新建项目文件 .PRJ 文件 选择器件, 选择器件,把源文件添加到项目中 • 编译项目 生成目标文件 .HEX 文件 • 调试程序 • 固化程序
创建项目实例 :
• 启动 启动µVision2 • 新建一个项目文件
Debug(调试): (调试)
Start/Stop Debug 开始 停止调试 开始/停止调试 Go 运行程序 Step 单步执行程序 Run to Cursor line 运行到光标行 Stop Runing 停止程序运行 Breakpoints ⋯ 打开断点对话框 Insert/Remove Breakpoint 设置 取消断点 设置/取消断点 Enable/Disable Breakpoint 使能 禁止断点 使能/禁止断点 Memory Map⋯ ⋯ 打开存储器空间 Performance Analyzer⋯ ⋯ 打开设置分析窗口 Inline Assembly⋯ ⋯ 某一行重新汇编 Function Editor⋯ ⋯ 编辑调试函数
设置: ① Target 选项卡 设置:
• Xtal(MHZ):设置单片机工作的频率, ( ) 设置单片机工作的频率,
默认24.0MHz 默认 • Use On-chip ROM(0x0-0XFFF): : 表示使用片上的Flash ROM 表示使用片上的 • Off-chip Code memory: : 表示片外ROM 的开始地址和大小。 的开始地址和大小。 表示片外 • Off-chip Xdata memory: : 外部数据存储器的起始地址和大小。 外部数据存储器的起始地址和大小。 • Code Banking: 是使用 技术。 : 是使用Code Banking 技术。
计算机单片机数据库类Keil C 简介中英文翻译、外文翻译、外文文献翻译
附录三The µVision4The Keil Software 8051 development tools listed below are programs you use to compile your C code, assemble your assembly source files, link and locate object modules and libraries, create HEX files, and debug your target program.µVisio n4 for Windows™ is an Integrated Development Environment that combines project management, source code editing, and program debugging in one single, powerful environment.The C51 ANSI Optimizing C Cross Compiler creates relocatable object modules from your C source code.The A51 Macro Assembler creates relocatable object modules from your 8051 assembly source code.The BL51 Linker/Locator combines relocatable object modules created by the C51 Compiler and the A51 Assembler into absolute object modules.The LIB51 Library Manager combines object modules into libraries that may be used by the linker.The OH51 Object-HEX Converter creates Intel HEX files from absolute object modules.The RTX-51 Real-time Operating System simplifies the design of complex, time-critical software projects.Software Development CycleWhen you use the Keil Software tools, the project development cycle is roughly the same as it is for any other software development project.1. Create a project, select the target chip from the device database, and configure the tool settings.2. Create source files in C or assembly.3. Build your application with the project manager.4. Correct errors in source files.5. Test the linked application.µVision4 IDEThe µVision4 IDE combines project management, a rich-featured editor with interactive error correction, option setup, make facility, and on-line help. Use µVision4 tocreate your source files and organize them into a project that defines your target application. µVision2 automatically compiles, assembles, and links your embedded application and provides a single focal point for your development efforts.LIB51 Library ManagerThe LIB51 library manager allows you to create object library from the object files created by the compiler and assembler. Libraries are specially formatted, ordered program collections of object modules that may be used by the linker at a later time. When the linker processes a library, only those object modules in the library that are necessary to create the program are used.BL51 Linker/LocatorThe BL51 linker creates an absolute object module using the object modules extracted from libraries and those created by the compiler and assembler. An absolute object file or module contains no relocatable code or data. All code and data reside at fixed memory locations. The absolute object file may be used:To program an EPROM or other memory devices,With the µVision2 Debugger for simulation and target debugging,With an in-circuit emulator for the program testing.µVision4 DebuggerThe µVision4 symbolic, source-level debugger is ideally suited for fast, reliable program debugging. The debugger includes a high-speed simulator that let you simulate an entire 8051 system including on-chip peripherals and external hardware. The attributes of the chip you use are automatically configured when you select the device from the Device Database.The µVision4 Debugger provides several ways for you to test your programs on real target hardware:Install the MON51 Target Monitor on your target system and download your program using the Monitor-51 interface built-in to the µVision4 Debugger.Use the Advanced GDI interface to attach use the µVision4 Debugger front end with your target system.Monitor-51The µVision4 Debugger supports target debugging using Monitor-51. The monitor program resides in the memory of your target hardware and communicates with the µVision4 Debugger using the serial port of the 8051 and a COM port of your PC. WithMonitor-51, µVision4 lets you perform source-level, symbolic debugging on your target hardware.RTX51 Real-Time Operating SystemThe RTX51 real-time operating system is a multitasking kernel for the 8051 microcontroller family. The RTX51 real-time kernel simplifies the system design, programming, and debugging of complex applications where fast reaction to time critical events is essential. The kernel is fully integrated into the C51 Compiler and is easy to use. Task description tables and operating system consistency are automatically controlled by the BL51 linker/locator.C51 Optimizing C Cross CompilerThe Keil C51 Cross Compiler is an ANSI C Compiler that was writtenspecifically to generate fast, compact code for the 8051 microcontroller family.The C51 Compiler generates object code that matches the efficiency and speed of assembly programming.Using a high-level language like C has many advantages over assembly language programming:Knowledge of the processor instruction set is not required. Rudimentary knowledge of the memory structure of the 8051 CPU is desirable (but not necessary).Details like register allocation and addressing of the various memory types and data types is managed by the compiler.Programs get a formal structure (which is imposed by the C programming language) and can be divided into separate functions. This contributes to source code reusability as well as better overall application structure.The ability to combine variable selection with specific operations improves program readability.Keywords and operational functions that more nearly resemble the human thought process may be used.Programming and program test time is drastically reduced.The C run-time library contains many standard routines such as: formatted output, numeric conversions, and floating-point arithmetic.Existing program parts can be more easily included into new programs because of modular program construction techniques.The language C is a very portable language (based on the ANSI standard) that enjoys wide popular support and is easily obtained for most systems.Existing program investments can be quickly adapted to other processors as needed.Code OptimizationsThe C51 Compiler is an aggressive optimizing compiler that takes numerous steps to ensure that the code generated and output to the object file is the most efficient (smallest and/or fastest) code possible. The compiler analyzes the generated code to produce the most efficient instruction sequences. This ensures that your C program runs as quickly and effectively as possible in the least amount of code space.The C51 Compiler provides nine different levels of optimizing. Each increasing level includes the optimizations of levels below it. The following is a list of all optimizations currently performed by the C51 Compiler.General OptimizationsConstant Folding: Constant values occurring in an expression or address calculation are combined as a single constant.Jump Optimizing: Jumps are inverted or extended to the final target address when the program efficiency is thereby increased.Dead Code Elimination: Code that cannot be reached (dead code) is removed from the program.Register Variables: Automatic variables and function arguments are located in registers whenever possible. No data memory space is reserved for these variables.Parameter Passing Via Registers: A maximum of three function arguments may be passed in registers.Global Common Subexpression Elimination: Identical subexpressions or address calculations that occur multiple times in a function are recognized and calculated only once whenever possible.Common Tail Merging: Common instruction blocks are merged together using jump instructions.Re-use Common Entry Code: Common instruction sequences are moved in front of a function to reduce code size.Keil C 简介Keil Software 的8051开发工具提供以下程序,你可以用它们来编译你的C源码,汇编你的汇编源程序,连接和重定位你的目标文件和库文件,创建HEX文件,调试你的目标程序。
Keil C简介及与Proteus的仿真
Keil C简介及与Proteus的仿真一、Keil C51集成开发环境Keil C51 V6.xx(包括V6.02 V6.10 V6.12 V6.14 V6.20 V6.20C等)是目前世界上最好的51单片机的汇编和c语言的开发工具。
支持汇编,c语言以及混合编程。
同时具备功能强大的软件仿真和硬件仿真(用mon51协议)。
Keil C51的IDE(集成开发环境)主要有两个版本,一个是UV1 (Keil C51 V5.20以下版本)运行界面:仿真的环境又叫DScope51,界面如下:uv1 是16位的软件,连接实际上是dos命令行的,不能在windows NT,windows 2000里运行。
是早期的软件(1997年以前的软件),后来keil公司推出了新的32位的软件Keil C51 V6.xx又叫uv2 .是全32位的软件,可以运行在windows 9x,windows nt,windows me,windows 2000,windows XP等操作系统,功能更加强大,支持的芯片更多。
UV2的IDE环境如下:UV2调试环境如下:二、建立一个新的工程Project我们下面以uv2的ide为基础来说明,就是keil c51 v6.xx的版本。
很多同学下载了keil c51的软件,但是不知道怎么用,其实keil有很详细的文档,在你安装之后的keil\C51\hlp目录里,有几个文件gs51.pdf,c51.pdf,a51.pdf,tr51.pdf和几个chm文件:c51lib.chm,dbg51.chm,errors.chm,这些文档已经非常详细的论述了关于keil c51方面的内容. 你碰到问题的话,大都可以在这些文档里找到答案.但是很多同学不愿意去阅读,因为都是英文的.其实看英文的内容,也并不是要求有很高的英文水平,现在有很多很好的在线翻译的工具,比如金山词霸,不懂的地方,用鼠标一点,中文意思就出来了,还支持对pdf文件的翻译.只要有耐心,你通过这些文档,可以对c51的了解更加的深入.在很多时候,需要你自己学会自己解决问题的能力.特别是到了企业,企业虽然允许员工可以交流,但是一个老板看到一个员工,什么问题都要去问别人的话,我相信老板对这个员工的看法不可能是赞扬的,而是他认为这个员工根本就不行.更为严重的是,老板认为你这个员工自己不行还不要紧,还影响了别人也干不了活(他要为你解答问题呀).一定要培养独立解决问题的能力,实在没有办法了,才通过别的手段(比如在bbs上,同学之间等)去解决问题.keil 的技术支持已经做的比较好,很多问题,还可以在keil的网站的faq或论坛找到答案.还是来说说如何建立一个新的工程吧.在低版本的c编译系统,一般没有工程的概念,工程就是某个c或汇编文件.但是高版本的c编译系统,keil c51 v5.xx以后的版本,都需要一个文件来存储工程的相关信息. keil c51的windows 版的软件,都是要建立一个工程文件,不管你是汇编的,还是c的,只有一个文件,还是有多个文件的程序都要有一个工程文件. 没有工程文件,将不能进行编译和仿真.按如下步骤来建立一个新的工程1)点击菜单project,选择new project:2)然后选择你要保存的路径,输入工程文件的名字,比如保存到keil目录里,工程文件的名字为test.如下图所示,然后点击保存.3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,如果你设计的是华邦的W77E58,可以选择winbond->W77E58,但是有一些版本,比如6.02,对它不能仿真,但是可以选择dallas的ds80c320来代替设计W77E58,两者的内核是一样的,只是w77e58带flash rom,而ds80c320没有flash rom,如果你的软件在仿真W77e58的时候有问题,那么就选用ds80c320 .我这里还是以大家用的比较多的Atmel 的89c52来说明,如图所示,选择89c52之后,右边一栏是对这个单片机的基本的说明,然后点击确定.4)这时要新建一个源程序文件,建立一个汇编或c文件,如果你已经有源程序文件,可以忽略这一步.点击菜单File->New:5)输入一个简单的程序,如下:5)选择菜单File_>SAVE:6)选择你要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是c程序文件,扩展名为.c,如果是汇编文件,扩展名为a51或者asm,如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.txt的扩展名.那么我们这里是要存储一个c源程序文件,所以输入.c扩展名,保存为test.c的名字,(也可以保存为其他名字,比如learn.c等),点击保存.7)点击Target 1前面的+号,展开里面的内容source Group1:---->8)用右键点击Sourece Group 1(注意用鼠标的右键,而不是左键),将弹出一个菜单,选择Add Files to Guoup'Source Group 1'.9)选择刚才的文件test.c,文件类型选择C Source file(*.c).因为我们的是c程序文件,所以选择该类型,如果是汇编文件,就选择asm source file.如果是目标文件,选择Object file,如果是库文件,选择Library file.最后点击Add.点击add之后,窗口不会消失,(如果要添加多个文件,可以不断添加),添加完毕此时再点击Close关闭该窗口.10)这时在source group 1 里就有test.c文件,如图:11)前面我们讲到添加了test.c的文件.接下来要进行一些设置,用鼠标右键(注意用右键)点击左边的Target 1,会出现一个菜单,选择Options for Target 'Target 1':12)会出现一个选项,其中“Target”选项卡中:Xtal (Mhz):是设置你的单片机的工作的频率,默认是24.0MHZ,如果你的单片机的晶振用的是11.0592Mhz,那么在框里输入11.0592(单位是Mhz,所以带小数点).Use On-chip ROM(0x0-0x1fff):这个选项是使用片上的Flash Rom,我们知道At89c52有8k的flash Rom.取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果你的单片机的EA接低电平,表示使用外部Rom,那么不要选中该选项.我们在这里选中它Off-chip Code memory:表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从0x8000开始(不要填成8000,如果是8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom.最多可以外接3块Rom,如果你还用了别的地址,那么就添上.Off-Chip Xdata Memory :那么可以填上你外接的Xdata(外部数据存储器的起始地址和大小,一般的应用是接一个62256,我们在这里特殊的指定Xdata的起始地址为0x2000,大小为0x8000;Code Banking:是使用Code Banking技术.keil可以支持程序代码超过64k的情况,最大可以有2兆的程序代码.如果你的代码超过64k,那么就要使用Code Banking技术,以支持更多的程序空间.Code Banking是一个高级的技术,支持自动的Bank的切换,是建立一个大型系统的需要,比如你要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术.Memory Model:用鼠标点击Memory Model的下拉箭头,会有3个选项.Small:变量存储在内部ram里.Compact:变量存储在外部ram里,使用页8位间接寻址.Large:变量存储在外部Ram里,使用16位间接寻址.我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX @Ri,A 或MOVX A,@Ri指令.如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large 模式,是指变量会优先分配到外部ram里,用MOVX A,@DPTR或MOVX @DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在内部ram.假如用Large的模式:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在外部ram.这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsigned char a .那么我们最好选择Small.Code Rom Size:用鼠标点击下拉箭头,将有3个选项:Small: program 2K or less;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错.Compact:2k functiongs ,64k program;表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main()里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式.Large:64K program;表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.我们这里选择Large方式.Operating:点击下拉箭头有3个选项:None:表示不使用操作系统RTX-51 Tiny Real-Time Os:表示使用Tiny操作系统RTX-51 Full Real-Time Os:表示使用Full操作系统Keil c51提供了tiny系统(demo版没有tiny系统,正版软件才有),Tiny是一个多任务操作系统,使用定时器0来做任务切换.一般用11.0592Mhz时,切换任务的速度为30毫秒.如果有10个任务同时运行,那么切换时间为300毫秒.同时不支持中断系统的任务切换.也没有优先级.因为切换的时间太长,实时性大打折扣,多任务情况下(比如5个),轮一次就要150毫秒,150毫秒才处理一个任务,连实现键盘扫描这些事情都不行.更不要说串口接收,外部中断等.同时切换需要大概1000个机器周期,对cpu的浪费很大,对内部ram的占用也很厉害.实际上用到多任务操作系统的情况少之又少.关键是不适用.多任务操作系统一般适合于16位,32位的cpu,不适合8位cpu.Keil C51 Full Real-Time OS:是比Tiny要好一些的系统,但需要用户使用外部ram.支持中断方式的多任务和任务优先级.但是keil c51里不提供该运行库,要另外购买,价格在3万人民币左右,只好望而止步.Keil 的多任务操作系统的思想值得学习,特别是任务切换的算法,如何切换任务和保存堆栈等,有一定的研究价值.如果熟悉了其切换的方法,可以编写更好的切换(比如将一次切换的时间从30毫秒改为3毫秒,实用性会好一些.引入windows消息的思想,可以支持更为复杂的应用.)这些可能是一些发烧友研究的一个课题.也有免费的UCOS ii.这里我不推荐大家使用多任务操作系统.选择none.三、其他选项卡介绍1)上面讲到了Target栏的设置,下面要对Output栏进行设置:这一栏有很多的选项:Select Folder for Objects:点击这个按钮可以选择编译之后的目标文件存储在哪个目录里,如果不设置的话,就是在你的工程文件的目录里.Name of Executable:是设置生成的目标文件的名字,缺省是跟你的工程的名字是一样的.目标文件可以生成库或者obj,hex的格式.Create Executable:是生成OMF以及HEX文件:一般是选中Debug Information,选中Browse Information.这两个选项一般要选中,这样才有详细的调试所需要的信息,比如你要做c语言程序的调试,如果不选的话,调试时你将无法看到高级语言写的程序.Create Hex File:这个选项一般是要选中的,如上图所示.还有人问到如何生成OMF的文件,事实上Keil在每次编译之后都生成了OMF文件,那个跟你的工程文件名一样的,但是没有带扩展名的文件就是OMF格式的文件.例如我们这个工程的名字是test.uv2,将会生成一个OMF文件test(不带扩展名).默认是不选中的,所以要自己做设置.Create Library:选中时将生成lib库文件.根据你的需要是否要生成库文件,一般的应用是不生成库文件的.After Make:有几个设置:1.Beep when complete:编译完成之后发出咚的声音.2.Start Debugging:马上启动调试(软件仿真或硬件仿真).根据你的需要做设置,一般是不选中.3.Run User Program #1,Run User Program #2:这个选项可以设置编译完之后运行别的应用程序,比如有些用户自己编写的烧写芯片的程序(编译完便执行将hex文件写入芯片),或调用外部的仿真程序.根据自己的需要设置.2)我们来看Listing栏的设置:Keil C51在编译之后除了生成目标文件之外,还生成*.lst *.m51的文件.那么这两种扩展名的文件对你了解你的程序用到了那些idata ,data ,bit ,xdata,code ,ram,rom,stack等有很重要的作用.有些人就问到我如何知道我的程序需要多少的代码空间?那么在这两个文件里,会告诉你,一般按照上图进行设置.如果你不想生成某些内容,可以不选.选中Assembly Code还会生成汇编的代码.如果不知道如何用汇编来写一个long型数的乘法,那么你可以用c来写,写了之后编译,你就可以得到用汇编实现的代码.而不必在那里苦想.有了高级的工具,我们就要它来帮助你更好的设计.就算你是写汇编的,如果你熟悉c,也会给你带来很大的帮助.比如if for;while,case等一些c语言的结构,如何用汇编来做到,那么可以自己写一段c,然后编译,你就可以得到汇编实现这些高级语言算法的结构.这是很有用的.所以请选中Assembly Code.对于一个高级的单片机程序员,往往既要熟悉汇编,同时也要熟悉c语言,才能更好的去编写程序.因为汇编和c都是工具,可能在某些地方用c无法实现,但用汇编却很容易.有些地方用汇编,很繁琐,用c就很方便.在bbs上多次有人争论汇编和c的问题.我们无法说c好,还是汇编好,有时要取决于你的项目.我们认为能够最快的实现和完成你的设计的就是好的.多数情况下,是用c语言做设计比较快.特别是代码比较多的设计,c的优势就更为明显.如果用c也不好,用汇编也不好,那么就混合使用吧,keil c51是支持c和汇编混合编程的.Select Folder for Listings:选择生成的列表文件存放的目录.不做选择时使用工程文件所在的目录.3) Debug栏的设置:Use Simulator:使用软件仿真器Load Application at Start:启动时加载程序Go till main( ): 运行到main四、Proteus与keil的联合仿真方法一:选择硬件仿真器调试时的一些选项Settings:硬件调试的设置,此项必须要选如果使用同一台计算机,则IP名为127.0.0.1,如不是同一台机器则填另一台的IP地址。
Keil_uVision2仿真软件的使用说明.
附录一 Keil uVision2仿真软件的使用说明μVision2集成开发环境μVision2 IDE是德国Keil 公司开发的基于Windows 平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE 工具。
其中KeilC51是一种专门为单片机设计的高效率C 语言编译器,符合ANSI 标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。
1.关于开发环境μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。
图1-1 μVision2界面图2.菜单条、工具栏和快捷键下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。
1)编辑菜单和编辑器命令Edit (如表1-1所示)表1-1 编辑菜单和编辑器命令Edit2在μVision2中,可以通过按住Shift 键和相应的键盘上的方向键来选择文本。
如Ctrl+ →可以移动光标到下一个词,那么,Ctrl+Shift+ →就是选择当前光标位置到下一个词的开始位置间的文本。
当然,也可以用鼠标来选择文本。
3)项目菜单Project 和项目命令Project (如表1-2所示)表1-2 项目菜单和项目命令Project34)调试菜单Debug 和调试命令(如表1-3所示)45)外围器件菜单Peripherals (如表1-4所示)6)工具菜单Tool (如表1-5所示)利用工具菜单,可以设置并运行Gimpel PC-Lint、Siemens Easy-Case和用户程序。
通过Customize Tools Menu…菜单,可以添加需要的程序。
表1-5 工具菜单ToolμVisio n2包括一个项目管理器,它可以使8x51应用系统的设计变得简单。
要创建一个应用,需要按下列步骤进行操作:启动μVision2,新建一个项目文件并从器件库中选择一个器件。
5● 新建一个源文件并把它加入到项目中。
Proteus和Keil软件在单片机实验教学中的应用
Proteus和Keil软件在单片机试验教学中的应用起首,我们来说说Proteus软件。
Proteus软件是一种常用的电子电路仿真软件,它可以模拟和验证电子电路的工作原理。
在单片机试验教学中,Proteus软件可以用来设计和仿真各种电子电路,包括电源电路、时钟电路、输入输出电路等。
通过Proteus软件,同砚可以直观地了解单片机与其他外部电路之间的工作干系,以及电路中各元件的功能和作用。
同时,Proteus软件还可以援助同砚分析和调试电路中的问题,提高试验教学的效率。
其次,我们来说说Keil软件。
Keil软件是一种专用于单片机开发的集成开发环境(IDE),它提供了编译、调试、仿真等开发工具。
在单片机试验教学中,Keil软件可以援助同砚编写和调试各种单片机程序。
同砚可以通过Keil软件编写C语言程序,并将程序下载到单片机中运行。
在程序调试过程中,Keil软件可以提供强大的调试功能,如单步调试、断点调试等,援助同砚找出程序中的错误和问题。
通过Keil软件,同砚可以深度进修单片机的编程方法和技巧,提高自己的编程能力。
可以有浩繁方面。
起首,可以通过Proteus软件进行电路设计和仿真,在试验之前先进行虚拟仿真,更好地理解电路的工作原理。
其次,可以通过Keil软件编写各种单片机程序,并通过仿真功能进行调试,提前发现和解决问题。
最后,可以将程序下载到实际的单片机中进行试验,进一步验证和应用所学知识。
在单片机试验教学中,Proteus和Keil软件的应用可以带来浩繁好处。
起首,它们可以提供一个直观、真实的试验环境,让同砚更好地理解和精通所学知识。
其次,它们可以有效缩减试验中的人为操作失误,提高试验的准确性和可靠性。
此外,它们还可以援助老师更好地进行试验教学,提高教学效果。
当然,Proteus和Keil软件的应用也存在一些问题。
起首,它们都是商业软件,需要采购和授权,若果没有正版授权可能会限制软件的功能和使用。
keil_protues介绍
(二)原理图设计
预览窗口
挑选元件按钮
模型选择工具栏
库管理按钮 原理图编辑窗口 元件列表 方位控制按钮 仿真按钮
1、原理图编辑窗口 (The Editing Window) 用来绘制原理图, 用来绘制原理图,蓝色方框内为可 编辑区,元件要放到它里面。 编辑区,元件要放到它里面。 注意:这个窗口是没有滚动条的, 注意:பைடு நூலகம்个窗口是没有滚动条的, 你可用预览窗口来改变原理图的可 视范围。 视范围。
PROTEUS虚拟实验室-探针(Probe) 虚拟实验室-探针 虚拟实验室
电压探针(Voltage
probes)-既可在模拟仿真 )
中使用, 中使用,也可在数字仿真中使 用。在模拟电路中记录真实的 电压值,而在数字电路中, 电压值,而在数字电路中,记 录逻辑电平及其强度。 录逻辑电平及其强度。 探针即可用于基于图表的 仿真, 仿真,也可用于交互式仿真中 。
VSM仿真与分析 PROTEUS VSM仿真与分析
示例1: 电机控制——动态效果 示例 :PWM电机控制 电机控制 动态效果
CPU可加载程序运行 可加载程序运行
动态器件使仿真直观生动
51单片机仿真过程 单片机仿真过程 1.绘制原理图 选择软件设计语言(汇编、 2.选择软件设计语言(汇编、C)编 写源代码 编译代码,生成目标文件。 3.编译代码,生成目标文件。 装载HEX OMF文件 仿真调试。 HEX或 文件, 4.装载HEX或OMF文件,仿真调试。
第三方工具的应用
直接使用第三方IDE(Integrated Development ( 直接使用第三方 Environment ) 如:Keil’s uVision 2、WAVE6) 、 ) 开发源代码,并进行编辑,生成HEX文件后,切 文件后, 开发源代码,并进行编辑,生成 文件后 换到Proteus VSM ,再进行仿真。 再进行仿真。 换到 使用第三方IDE建立工程,编写C IDE建立工程 1、使用第三方IDE建立工程,编写C程序 编译生成HEX代码,加载到CPU当中。( HEX代码 CPU当中。(无源 2、编译生成HEX代码,加载到CPU当中。(无源 码调试信息) 码调试信息) 编译生成OMF格式代码,加载到CPU当中。 OMF格式代码 CPU当中 3、编译生成OMF格式代码,加载到CPU当中。
3、KeilRealViewMDK4.21开发环境下CK100仿真器的使用.docx
导读::本文主要介绍Keil Real View MDK 4.21开发环境下CK100仿真器的使用 、认识CK100仿真器CK100是广州致远电子有限公司于 2009年推出的一款在板级的 ARM 仿真器。
该仿真器体积小,使用灵活、 简便;嵌入到ARM 开发板中,更加方便用户调试。
CK100仿真器主要特性:1、 支持 ARM7、ARM9、Cortex-M0/M1/M3 内核2、 支持Thumb 模式,支持 SWD 仿真模式3、 支持片内外Flash 的在线编程和仿真4、 用户可自行添加自定义 Flash 编程算法5、 JTAG 时钟最高可达1MHz ,且JTAG 时钟可任意调整6、 与主流IDE 环境无缝嵌接,如 IAR 、Keil 、TKStudio 等、安装CK100安装程序CK100仿真器使用之前必须安装驱动程序。
下面给出驱动安装的图文教程:5etupTKScope ARM V3.40Welcome* to TKScopeRelease 8^01 DThhSETUP programimtalh:TKScops ARM V3.40This £ETUP program may be used to update a pe*itxis pioduct mslalalion. However, you should n*ake a backup co 廨 beware proceeding.It is iBC-dmnwtided Khat jpou BK A ail Window's progiarns before Mnlinuing wih SETUP.Fdcw the insUuctions la complete I he producl imtalldtion.I —- I K&cope -- ------------------------------------------------------------------------------------------------------------「咲曲占112、点击Next>>,继续安装1、打开驱动安装程序出 TKSco p eSetu p_ARM-EXE选中I agree to all 复选框,单击Next>>,继续安装3、Setup TKScope ARM V3.4CFoldler SetectionGelet:!: the loldet where SETUP wil infall file囂TKScoce SETUP wil install in Ehe fclktwinq fold曰T o install Io Fhis folds, press 'NeMt'. To in 別占I to a differ ent fcklef^ press 'Brow$e' and selecl ancflhertaldei.Browse …4、选择安装到Keil Real View MDK 的安装目录,单击Next>>,继续安装5、填好相关信息后,单击Next>>,继续安装6、等待安装完成7、单击Finish 完成安装安装完驱动程序后,,建议继续安装微软的 vc8实时运行库1、双击打开安装文件 Microsoft Visual C+t 2005可莓发:行給样包伍呂旬 =”豹细阅读以下许可协讣搖F 删»*N 键可査闻悔彼的衾下部 |MICf 晞OFT 软件诈可杀款~MICROSOFT VISVU. C++ 2005 RUMIME 口BRWES玉许可杀款昱Mi nroscif l, Corpor>li<jn (或您月 警耀蛙絢鬻I R )*本棗鳶也遹用于flicrzdEt 为毗软件提洪的(降非下述内昏咐带苜宜他条款)0加果晞实咐”2、单击’是’按钮,系统将自动完成安装Microsoft Visual C+ 4- 2005 RedistributableW a nd.&w s 正左酉2 蚩 M L era soft Visual 匚+* 2005 Rt dt i lr i but &bl t ,正在收集磁要信息..Ir ______________________________________________ I 【]取消至此”驱动安装完成阅软a收 择“計,安装程库铲t 硕和否® |、为CK100仿真器添加驱动程序 2 王乩卞总盏捉歪:戛討呈亭m i : 浏览汁胃机以青找^动程辛软件 手动查找样妄翹动程序放「牛. 附| 曲Drive 叭CK100 DriTerVMnXpjB 4从计算机的设备驱动程序列表中选择⑴ 出洌表将显示首歸養客的已曲删E 动程序软絆.皿与iS 爾樋于同TIBI1下的4、找到驱动所在位置(如图示),单击“下一步”继续3、选择浏览计算机以查找驱动程序软件 ◎ _更新邀滤字琥件-职100 Em 山gr 浏览计算机上的驱动程序文件 詡设备管理器 1、打开控制面板,找到 并打开 4逊算他曲 找到 ,右键单击,选择“更新驱动程序软件” J 邑括子文怯① 您想如何搜索驱动程序软1'牛? * \、_ , _更新富滤字验件-C^IOOE TH 山gr 寺自动披盍更新的驱动程序软件⑸ Windows 帯在恕的计茸机和Internet 上瓷找用于1联益酱的最彌昶序欺 ■4 .除非在设匿妄菠叹苗冃禁用诊功醜._更问孵字莪任-CdOOEmul 戒才己安装适台逼备的最佳驱动程序软性Endows 已涯云夕设局対駆刘程序衣禅昱繇弭CK100 Emulator在系统第一次上电时,,操作系统也会提示安装驱动的,,只要找到驱动文件安装便可,,此处不作介绍。
Keil C51、Proteus的区别
最近Sandeepin开始捣鼓自己的专业软件,但对Multisim、Protel、Keil C51、Proteus 四款软件的功能侧重点分得不太清,故转此篇文章,留作存档,以便不时之需。
Multisim(NI Circuit Design Suite Power Pro)有超强板级的模拟/数字电路板的设计工作。
它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。
高版本可以进行单片机等MCU的仿真。
Multisim有实际元器件和虚拟元器件,它们之间根本差别在于:一种是与实际元器件的型号、参数值以及封装都相对应的元器件,在设计中选用此类器件,不仅可以使设计仿真与实际情况有良好的对应性,还可以直接将设计导出到Ultiboard中进行PCB的设计;虚拟元器件只能用于电路的仿真。
Protel的高版本Altium Designer,是业界第一款也是唯一一种完整的板级设计解决方案。
是业界首例将设计流程、集成化PCB 设计、可编程器件(如FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终成品所需的全部功能。
主要用途:原理图输入设计PCB板。
Keil C51是美国Keil Software公司出品的51系列兼容单片机既可以汇编开发也可以C语言软件开发的系统。
Proteus具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真。
①C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③支持大量的存储器和外围芯片。
简单概括为:Multisim可以进行复杂模拟/数字电路的仿真、简单的PCB板设计、简单的单片机仿真。
Keil仿真软件
②Output 选项卡设置
• Select Folder for Objects:选择目标文件的存储 选择目标文件的存储 目录 • Name of Executable:设置生成的目标文件名字 : • Create Executable:生成 生成OMF 以及 以及HEX 文件 • Create HEX File: 要生成 要生成HEX 文件 • Create Library: 将生成 库文件 将生成lib • After Make:有以下几个设置 :有以下几个设置: Beep when complete :编译完后发出咚的声音 Start Debugging: 启动调试,一般不选中 一般不选中。 : 启动调试 一般不选中。 Run User Program #1,Run User Program #2 : 设置编译完之后所要运行的其他应用程序
并从器件库中选择一个器件。 并从器件库中选择一个器件。
• 新建一个源文件并把它加入到项目中。 新建一个源文件并把它加入到项目中。 • 增加并设置选择的器件的启动代码
针对目标硬件设置工具选项。 针对目标硬件设置工具选项。
• 编译项目并生成可编程的 文件。 编译项目并生成可编程的HEX 文件。 • 仿真调试
Keil软件介绍
Keil使用介绍一Keil软件介绍Keil 是一个公司的名字。
是由德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software组成。
Keil软件是目前最流行开发51系列单片机的软件。
支持c语言,汇编语言。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil 软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
Keil经过改进已经有了几个版本。
但是操作方法大同小异,我们就用keil4讲解如何使用keil软件。
二Keil使用方法1.下面用C编写一个简单的程序来介绍如何如何使用keil4如何用建立一个工程。
打开keil4软件,将出现如下界面。
1)建立一个工程。
单击〖Project〗菜单选项中New uVision Project,选择建工程文件的路径,输入功能的名字(最好一个功能单独建立一个文件夹)。
我们取名为led ,点击保存。
如下图1-1,1-2图1-1 建立工程图1-2 保存工程2)选择单片机型号。
当点击保存后回出现如1-3图所示对话框,选择单片机型号。
我们用的单片机是STC12C5A16S2,里面找不到单片机型号。
51内核的单片机有通用性,所以此处我们选择Atmel下面的AT89C52即可。
对话框右边是对此型号单片机的说明。
我们点击OK .图1-3 选择单片机型号完成上面后出现图1-4对话框提示是否把标准8051代码加入工程文件中,点击是,出现图1-5。
图1-4图1-5至此我们建立了一个工程文件,但是里面还没用工程代码文件,下面建立代码文件。
Keil ARTX 介绍
Keil ARTX 介绍Keil ARTX(Advanced Real-Time eXecutive)是keil为ARM 系列所提供的一个小型实时操作系统,整合于其UV3开发环境之中.一,简介与以前大家使用keil for 51时所熟悉RTX51实时操作系统类似,整个OS为keil IDE定制,面向特定的处理器,以库的形式提供,这就屏蔽了底层的操作,使得用户可以专注于应用的开发,但同时也使得用户无法接触到操作系统底层.ARTX提供的基本功能包括任务的建立,运行,删除,可以给任务指定优先级,对任务进行切换,具体可以参考keil的官方文档ARARM.chm,位于UV3的安装目录. ARTX为任务间通信和共享资源的保护提供如下机制:*事件标志*信号量*互斥信号量*邮箱ARTX的特征如下:任务数量最大256邮箱数量软件无限制,取决于硬件资源信号量数量软件无限制互斥信号量数量软件无限制信号数量每任务16个事件标志用户定时器软件无限制RAM空间需求最小500字节CODE空间需求小于5kB硬件要求一个片上定时器任务优先级 1~255上下文切换时间在60MHz,0等待时小于5us中断锁定时间 60MHz,0等待时为1.8us由于ARTX是keil为UV3所定制,所以使用UV3可以方便地建立基于ARTX的应用.简单的说,只需要引用一个头文件,并于连接时连接ARTX库.下面例子来自keil(位于Keil\ARM\ARTX\Examples\Artx_ex1).假定当前有两个任务,称作”do-this”与”do-that”.这些必须重复运行,例如间隔时间为50ms.两者都运行完成后会暂停一段时间,而”do-that”会在”do-this”运行后运行,并暂停20ms.按照如下步骤建立应用.首先利用关键字__task建立两个任务:void task1 (void) __task {.... code of task 1 placed here ....}void task2 (void) __task {.... code of task 2 placed here ....}任务必须建立于运行之前,可通过在main 函数中调用os_sys_init()来启动任务的运行.如下例中,task1最先启动,然后其通过调用os_tsk_create来启动task2. void task1 (void) __task {os_tsk_create (task2, 0);.... code of task 1 placed here ....}void task2 (void) __task {.... code of task 2 placed here ....}void main (void) {os_sys_init (task1);}完成最初所设定的应用任务的源代码如下:/* Include type and function declarations for ARTX */#i nclude "ARTX.H"/* id1, id2 will contain task identifications at run-time */OS_TID id1, id2;/* Forward reference. */void task1 (void) __task;void task2 (void) __task;void task1 (void) __task {/* Obtain own system task identification number */id1 = os_tsk_self ();/* Assign system identification number of task2 to id2 */id2 = os_tsk_create (task2, 0);for (;;) { /* do-this *//* Indicate to task2 completion of do-this */os_evt_set (0x0004, id2);/* Wait for completion of do-that (0xffff means no time-out)*/os_evt_wait_or (0x0004, 0xffff);/* Wait now for 50 ms */os_dly_wait (5);}}void task2 (void) __task {for (;;) {/* Wait for completion of do-this (0xffff means no time-out) */os_evt_wait_or (0x0004, 0xffff); /* do-that *//* Pause for 20 ms until signaling event to task1 */os_dly_wait (2);/* Indicate to task1 completion of do-that */os_evt_set (0x0004, id1);}}void main (void) {os_sys_init (task1);}os_dly_wait()用于将任务暂停一定的系统定时周期.os_evt_wait_or() 用于 os_evt_set() 等待和设置任务的事件标志.二,机制1. 计时中断ARTX 需要使用一个硬件的定时器产生周期性的中断.使用一个硬件定时器来实现,可在ARTX_Config.c中配置.2. 系统定时任务系统定时任务(系统时钟任务),在每一个系统定时中断产生时被执行,其具有最高的优先级且不可被抢占.此任务基本可以说是一个任务切换器. ARTX 给每个任务分配一个时间片(time slice),其时间的长短可以在ARTX_Config.c中进行配置,由于时间片很短(默认为10ms),使得任务看上去像是在同时运行.任务在自己分得的时间片内运行时,可通过os_tsk_pass() 或一些 wait函数放弃CPU 的控制权.然后ARTX 将切换到下一个就绪任务运行.os_clock_demon() 作为系统定时任务管理用户任务.它处理任务的延时,使等待的任务进入休眠态,当有时间发生时,将相应的任务唤醒并进入就绪态. 这也就是其处于最高优先级的原因.3. 任务管理任务可处于下列状态:RUNNING, READY, WAIT_DLY, WAIT_ITV, WAIT_OR,WAIT_AND, WAIT_SEM, WAIT_MUT, WAIT_MBX, INACTIVE4. 空闲任务当无任务运行时,ARTX 调度任务os_idle_demon() 进入运行状态,可在该任务添加代码中使得系统休眠,从而降低系统功耗,具体可以在ARTX_Config.c中配置.5. 系统资源ARTX 的任务有任务控制(TCB).这是一个可动态分配的内存块,保存着所有任务的控制和状态变量.TCB 可通过os_tsk_create()或os_tsk_create_user ()于运行时分配.TCB内存池的大小可以在ARTX_Config.c中根据系统中任务的状况进行配置,不仅是任务的数量,还有实际任务的实例数,原因在于ARTX 支持一个任务(函数)的多个实例.任务有其自己的堆栈,也于运行时被分配,然后栈指针被记录到任务的TCB 中.6. 协同任务调度如果禁止了轮转(Round-Robin)方式的任务调度,则用户必须使得任务可以协同调度,比如,调用函数os_dly_wait() 或 os_tsk_pass() 来通知ARTX 进行任务的切换.如下例:#i nclude <ARTX.h>int counter1;int counter2;void task1 (void) __task;void task2 (void) __task;void task1 (void) __task {os_tsk_create (task2, 0); /* Create task 2 and mark it as ready */ for (;;) { /* loop forever */counter1++; /* update the counter */os_tsk_pass (); /* switch to 'task2' */}}void task2 (void) __task {for (;;) { /* loop forever */counter2++; /* update the counter */os_tsk_pass (); /* switch to 'task1' */}}void main (void) {os_sys_init(task1); /* Initialize ARTX Kernel and start task 1 */ for (;;);}wait 系统调用与os_tsk_pass ()的区别在于前者使得任务等待一个事件,而后者直接切换到下一就绪任务运行.7. 轮转任务调度ARTX 可配置为轮转调度方式,任务将在一个分配的时间片内运行.任务可连续运行时间片长度的时间(除非任务本身放弃时间片),然后,ARTX 将会切换到下一个就绪且优先级相同的任务运行.如果没有相同优先级的任务就绪,则当前任务会继续运行.如下例:#i nclude <ARTX.h>int counter1;int counter2;void job1 (void) __task;void job2 (void) __task;void job1 (void) __task {os_tsk_create (job2, 0); /* Create task 2 and mark it as ready */ while (1) { /* loop forever */counter1++; /* update the counter */}}void job2 (void) __task {while (1) { /* loop forever */counter2++; /* update the counter */}}void main (void) {os_sys_init (job1); /* Initialize ARTX Kernel and start task 1 */ for (;;);}注意:不必等到时间片用完,任务就可以通过wait 系统调用或者os_tsk_pass () 来通知ARTX 可以切换到下一个就绪任务.wait 系统调用将使当前任务挂起(wait XXX 状态),等待一个特定的事件发生(然后其进入ready 状态).在这段等待的时间,其它的任务得以运行.8. 抢占式任务调度ARTX 是一个抢占式的多任务调度系统.如果一个高优先级的任务就绪,它将打断当前任务的运行,而使得高优先级任务可以立即运行.抢占式任务切换发生于:*在系统定时中断中,如果某一个高优先级任务的延时时间到达,将使得当前任务被挂起而高优先级任务被运行*如果挂起中的高优先级的任务接收到当前任务或中断发来的特定事件,将会挂起当前任务,切换到高优先级任务运行*高优先级任务等待到了所需的信号量*一个高优先级任务正在等待的互斥信号量被释放*一个高优先级任务等待的消息被发往信箱*信箱已满,而一个高优先级的任务等待往信箱发送一个消息.则当前任务或中断从信箱中取走一个消息时,将使得该高优先级任务被激活,并立即投入运行*当前任务的优先级下降,而有相对高优先级任务就绪时请参考下例:#i nclude <ARTX.h>OS_TID tsk1,tsk2;int cnt1,cnt2;void job1 (void) __task;void job2 (void) __task;void job1 (void) __task {os_tsk_prio (2);os_tsk_create (job2, 1);while (1) {os_evt_wait_or (0x0001, 0xffff);cnt1++;}}void job2 (void) __task {while (1) {os_evt_set (0x0001, job1);cnt2++;}}void main (void) {os_sys_init (job1);while (1);}任务 job1 比任务job2的优先级高. 当 job1 开始运行, 将创建任务 job2 然后进入 os_evt_wait_or() . 然后当前任务挂起并开始运行任务 job2. 一旦任务job2 为任务 job1发送一个事件标志, 它将被挂起然后 job1 继续运行. 任务job1 增加计数变量然后再次通过 os_evt_wait_or() 调用挂起. 任务 job2 将被继续运行, 增加计数器变量 cnt2 ,然后再次发送事件…9. 用户定时器用户定时器是基于系统定时的简单简单定时器模块.可在运行时动态创建与删除用户定时器.如果在用户定时器溢出前未被删除,该定时器的溢出将会调用用户定义的回调os_tmr_call()然后删除这个定时器.用户定时器超时的值可以在调用os_tmr_create()创建该定时器时指定.os_tmr_call() 可在 ARTX_Config.c 中配置.10.中断函数ARTX 支持中断平行处理,但是仍建议不要使用中断嵌套.最好使用短的中断函数,发时间标志到RTOS 的任务,这样一来,中断嵌套也就不必要了.如下例:#define EVT_KEY 0x0001OS_TID pr_task;int num_ints;/*----------------------------------------------------------------------------* External 0 Interrupt Service Routine*---------------------------------------------------------------------------*/void ext0_int (void) __irq {isr_evt_set (EVT_KEY, pr_task); /* Send event to 'process_task' */ EXTINT = 0x01; /* Acknowledge Interrupt */VICVectAddr = 0;}/*----------------------------------------------------------------------------* Task 'process_task'*---------------------------------------------------------------------------*/void process_task (void) __task {num_ints = 0;while (1) {os_evt_wait_or (EVT_KEY, 0xffff);num_ints++;}}/*----------------------------------------------------------------------------* Task 'init_task'*---------------------------------------------------------------------------*/void init_task (void) __task {PINSEL1 &= ~0x00000003; /* Enable EINT0 */PINSEL1 |= 0x00000001;EXTMODE = 0x03; /* Edge triggered lo->hi transition */EXTPOLAR = 0x03;pr_task = os_tsk_create (process_task, 100);VICVectAddr14 = (U32)eint0_int; /* Task started, Enable interrupts */ VICVectCntl14 = 0x20 | 14;os_tsk_delete_self (); /* Terminate this task */}中断函数的写法与没有ARTX 的ARM 系统相同.注意:FIQ 不会被ARTX 禁止FIQ 中禁止调用isr_这已系列的函数.三,小结以上简要介绍了keil 的ARTX,如有疏漏请指出.你也可以参考keil 的官方文档ARARM.chm,位于UV3 安装目录下.。
用Proteus和Keil建立单片机仿真工程的步骤汇总
用Proteus和Keil建立单片机仿真工程的步骤汇总1.新建工程目录,最好是英文名称,如e盘的sy1
2.打开Proteus软件,桌面上的ISIS.EXE)
3.添加元件
单片机 AT89C52
电容 CAP
电解电容 CAP-ELEC
晶振 Crystal
电阻 RES
发光二极管 LED-GREEN/LED-RED/LED-BLUE/LED-YELLOW 4.放置元件,设置参数,连线,绘制原理图
5.保存到工程目录sy1
6.打开keil软件
7.新建工程
右击Target 1
新建源程序文件并保存,注意,后缀要是.c 添加源程序到工程
编写程序并编译生成hex文件目录下生成了hex文件
回到Proteus界面,双击单片机添加hex文件
运行,查看结果
如果达不到满意的效果,只需要在Keil中修改程序,编译,
然后在Proteus中重新运行就可以查看新的运行结果了。
书中横卧着整个过去的灵魂——卡莱尔
人的影响短暂而微弱,书的影响则广泛而深远——普希金
人离开了书,如同离开空气一样不能生活——科洛廖夫
书不仅是生活,而且是现在、过去和未来文化生活的源泉——库法耶夫
书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者———史美尔斯
书籍便是这种改造灵魂的工具。
人类所需要的,是富有启发性的养料。
而阅读,则正是这种养料———雨果。
如何使用KEIL进行软硬件仿真
如有你有帮助,请购买下载,谢谢!1页 如何在KEIL 下使用仿真器1. 在KEIL 下使用仿真器,首先设置软件右击Target1,选择Option for Target ‘Target 1’.如下:2. 在Option for Target ‘Target 1’选项中点选DEBUG ,如下:3. 在DEBUG 下选择USE KEIL Monitor —51 Driver ,其他选择项为默然设置后,点确定。
4. 如果选择USE Simulator 则为KEIL 软件仿真!5. 编译连接如下图:6. 点红色的D (DEBUG )后,左下脚出现一蓝色的进度条,增至100%后出现如下界面: 如果点选1(GO )则是全速执行,2 3 4 为单步调试!2。
为进入某个函数。
3。
为跳出某个函数。
4。
为运行要某个函数。
一般情况下,我们选择1。
---全速执行。
7.如4所述,软件仿真界面同硬件仿真。
8.下面介绍下,在调试过程中比较实用的技巧!比如遇到按键判断的语句,如: If(Key == 0){Delaynms();If(Key == 0){//Add your code here …}}首先在6所述的状态下,用左键选中Key 这个变量,右击选择 Add ‘Key ’to watch Windows #1, 添加到#1后,要调出WA TCH WINDOWS ,先关闭原来的OUTPUT WINDOWS ,如下: 双击1或者按F2键即可修改KEY 的值,如改为0 再配合单步调试的按扭工具就可以判断键被按下,就可以运行Add your code here 的代码了!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INDUCTOR3 可调电感
JFET N N沟道场效应管
JFET P P沟道场效应管
LAMP 灯泡
LAM)
TTL 74 series
TTL 74ALS series
TTL 74AS series
TTL 74F series
TTL 74HC series
TTL 74HCT series
TTL 74LS series
RS,R/W,EN三个控制端口(共14线),工作电压为5V。没背
光,和常用的1602B功能和引脚一样(除了调背光的二个线脚)
LOGIC ANALYSER 逻辑分析器
LOGICPROBE 逻辑探针
LOGICPROBE 逻辑探针
LOGICPROBE[BIG] 逻辑探针(大) 用来显示连接位置的逻辑状态
LOGICSTATE 逻辑状态 用鼠标点击,可改变该方框连接位置的逻辑状态
LOGICTOGGLE 逻辑触发
MASTERSWITCH 按钮 手动闭合,立即自动打开
TRIODE ? 三极真空管
VARISTOR 变阻器
ZENER ? 齐纳二极管
DPY_7-SEG_DP 数码管
7seg 数码管
SW-PB 开关
7407 驱动门
1N914 二极管
LED 发光二极管
METER 仪表
MICROPHONE 麦克风
MOSFET MOS管
MOTOR AC 交流电机
MOTOR SERVO 伺服电机
NAND 与非门
NOR 或非门
Memory Ics
Microprocessor Ics
Miscellaneous 各种器件 AERIAL-天线;ATAHDD;ATMEGA64;BATTERY;CELL;CRYSTAL-晶振;FUSE;METER-仪表;Modelling Primitives 各种仿真器件是典型的基本元器模拟,不表示具体型号,只用于仿真,没有PCBOptoelectronics 各种发光器件 发光二极管,LED,液晶等等
CLOCK 时钟信号源
CRYSTAL 晶振
D-FLIPFLOP D触发器
FUSE 保险丝
GROUND 地
LAMP 灯
LED-RED 红色发光二极管
LM016L 2行16列液晶可显示2行16列英文字符,有8位数据总线D0-D7,
POT 滑线变阻器
SW-SPST ? 单刀单掷开关
AMMETER-MILLI mA 安培计
AND 与门
BATTERY 电池/ 电池组
BUS 总线
NOT 非门
NPN NPN三极管
NPN-PHOTO 感光三极管
OPAMP 运放
OR 或门
PHOTO 感光二极管
PNP 三极管
NPN DAR NPN三极管
PNP DAR PNP三极管
PLDs & FPGAs
Resistors 各种电阻
Simulator Primitives 常用的器件
Speakers & Sounders
Switches & Relays 开关,继电器,键盘
Switching Devices 晶阊管
RES 电阻
CAP 电容
CAPACITOR 电容器
CLOCK 时钟信号源
STAL 晶振
D-FLIPFLOP D 触发器
ECL 10000 Series
rectifier bridge 整流桥
7407 驱动门
1N914 二极管
74Ls00 与非门
74LS04 非门
74LS08 与门
74LS390 TTL 双十进制计数器
VOLTMETER 伏特计
VOLTMETER-MILLI mV 伏特计
VTERM 串行口终端
Electromechanical 电机
AND 与门
voltmeter 电压表
7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码
7SEG 3-8译码器电路BCD-7SEG转换电路
VOLTMETER 伏特计
VOLTMETER-MILLI mV伏特计
VTERM 串行口终端
Electromechanical 电机
Inductors 变压器
Laplace Primitives 拉普拉斯变换
RS,R/W, LM016L 2 行16 列液晶 EN 三个
控制端口(共14 线),工作电压为5V。没背光,和常用的功 能和引脚一样(除了调背光的二个线脚)
LOGIC ANALYSER 逻辑分析器
ALTERNATOR 交流发电机
AMMETER-MILLI mA安培计
AND 与门
BATTERY 电池/电池组
BUS 总线
CAP 电容
CAPACITOR 电容器
RESISTOR BRIDGE ? 桥式电阻
RESPACK 排阻
SCR 晶闸管
PLUG ? 插头
PLUG AC FEMALE 三相交流插头
SOCKET ? 插座
SOURCE CURRENT 电流源
LOGICPROBE[BIG] 逻辑探针 用来显示连接位置的逻辑状态
LOGICSTATE 逻辑状态 用鼠标点击,可改变该方框连接位置的逻辑状态
LOGICTOGGLE 逻辑触发
MASTERSWITCH 按钮 手动闭合,立即自动打开
MOTOR 马达
74Ls00 与非门
74LS04 非门
74LS08 与门
74LS390 TTL 双十进制计数器
7SEG 4针BCD-LED 输出从0-9 对应于4根线的BCD码
7SEG 3-8译码器电路BCD-7SEG转换电路
CON 插口
CRYSTAL 晶体整荡器
DB 并行插口
DIODE 二极管
DIODE SCHOTTKY 稳压二极管
DIODE VARACTOR 变容二极管
OR 或门
POT-LIN 三引线可变电阻器
POWER 电源
RES 电阻
RESISTOR 电阻器
SWITCH 按钮 手动按一下一个状态
SWITCH-SPDT 二选通一按钮
ammeter 电流表
ANTENNA 天线
BATTERY 直流电源
BELL 铃,钟
BVC 同轴电缆接插件
BRIDEG 2 整流桥(二极管)
整流桥(集成块)
BUFFER 缓冲器
MOTOR 马达
OR 或门
POWER 电源
SWITCH 按钮 手动按一下一个状态
SWITCH-SPDT 二选通一按钮
BUZZER 蜂鸣器
CAP 电容
CAPACITOR 电容
CAPACITOR POL 有极性电容
CAPVAR 可调电容
CIRCUIT BREAKER 熔断丝
COAX 同轴电缆
SOURCE VOLTAGE 电压源
SPEAKER 扬声器
SW ? 开关
SW-DPDY ? 双刀双掷开关
SW-PB 按钮
THERMISTOR 电热调节器
TRAN 变压器
TRIAC ? 三端双向可控硅
DPY_3-SEG 3段LED
DPY_7-SEG 7段LED
DPY_7-SEG_DP 7段LED(带小数点)
ELECTRO 电解电容
FUSE 熔断器
INDUCTOR 电感
TTL 74S series
Analog Ics 模拟电路集成芯片
Capacitors 电容集合
CMOS 4000 series
Connectors 排座,排插
Data Converters ADC,DAC
Debugging Tools 调试工具
FUSE 保险丝
GROUND 地
LAMP 灯
POT-HG 三引线可变电阻器
LED-RED 红色发光二极管
1602B 可显示2 行16 列英文字符,有8 位数据总线D0-D7,