英飞凌单片机关于keilC166的使用
英飞凌单片机关于keilC166的使用
关于Keil C166的使用单片机开发除了必要的硬件同样也离不开软件,我们写的程序要转化成CPU所能执行的机器码有两种方法:一是手工汇编,二是机器汇编。
机器汇编是通过汇编软件将源程序编程机器码。
Keil软件是目前最流行的开发单片机的软件工具,Keil编译器提供了包括C编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整的开发方案。
通过一个集成开发环境(uVision)将这些部分组合在一起。
KEIL软件有支持8位单片机的Keil C 51系列和支持16位单片机的Keil C 166系列。
在项目开发过程中并不是仅有一个源程序就足够了,还要为项目选择CPU确定编译,汇编,连接的参数,指定调试的方式,有一些项目还会由多个文件组成。
为管理和使用方便,Keil 引入了工程(Project)概念。
将这些参数和所需要的文件都加在一个工程中,只能对工程进行编译和连接等操作。
工程的详细设置:以下针对在使用XC164CS评估板过程中在Keil C166环境下的一些设置谈一下。
首先点击Project窗口中的Target1 Project->Option for Target1 “target 1”即出现对工程设置的对话框。
菜单如下图1:图1以下针对各个标签详细说明:Device选择所使用的CPU(即所选用的芯片)。
KEIL支持很多种CPU,当选中一款芯片以后右侧窗口还会有相应的芯片介绍。
此处选择Infineon XC164CS.系列芯片作为CPU。
Target窗口设置如下:图2这里可以设置时钟频率,片内和片外资源的选择及地址的设置。
其中Memory Model用于设置RAM使用情况,KEIL C 166编译器可支持7种存储类型。
TINY CPU处于非分段工作方式下,可产生高效的16位线性地址,并把代码和数据限制在64KB种。
不能使用far, huge, xhuge存储类型。
SAMLL 使用分段CPU方式,同样产生高效的代码,但代码和数据不再限制再64KB中,用户可通过far, huge, xhuge引用变量和函数COMPACT 一般用于代码少而数据多的场合HCOMPACT 一般用于代码多而数据少的场合MEDIUM 所有的函数调用默认为far调用,一般用于代码多而数据少的场合 LARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合HLARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合,不适合于C166系列CPU在仿真过程中如果使用片内FLASH,则选中Use On-chip ROM在仿真过程中如果使用片外RAM,则取消Use On-chip ROM复选框并设置ROM和RAM 空间起始地址及大小。
keil使用教程
关于keil的使用教程
Keil软件是一款辅助单片机编写程序,编译及运行程序,并产生单片机下载所必须的(.hex)文件,用于写入单片机内部的程序。
一.关于keil安装注册
1. 安装Keil C51 V8.16版本,即uV3
2. 打开uVision3,点击Management...,打开License Management窗口,复制右上角的CID
3. 打开注册机,在CID窗口里填上刚刚复制的CID,其它设置不变
4. 点击Generate生成许可号,复制许可号
5. 将许可号复制到License Management窗口下部的New License ID Code,点击右侧的Add LIC
6. 若上方的Product显示的是PK51 Prof. Developers Kit即注册成功,Support Period为有效期,一般可以到30年左右,若有效期较短,可多次生成许可号重新注册。
二.Keil使用及调试
1.新建工程,步骤如下
2.选择使用的单片机型号,如下图(本次教程是使用atmel公司的at89c51单片机)
3.经过上述步骤,工程新建完成,可以得到如下图:
4.然后新建文本,写入代码,另存为响应的(.c文件)和(.asm文件),如果是用c语言编写的则为.c,如果为汇编语言写的则为.asm
5.添加.c或.asm文件到工程:
6.选择生成.hex文件
7.编译调试
到此步,keil的基本操作已经完成,可以将生成的.hex文件烧进仿真软件(protues)的单片机中(双击单片机从那个文件夹样式的图标选择.hex文件所在的文件),此时单片机如果硬件无差错就可以模拟运行。
Keil编译环境下经常出现的错误
Keil编译环境下经常出现的错误问题使用XC164单片机在Keil环境下编译程序时经常出现一些问题,希望得到帮助.回答以下有一些Keil C166 编译器使用过程中常见问题,请参考.1. 在C环境下能访问到16M范围吗?可以的.通过huge 和xhuge 类型就可以访问到16M地址空间. Huge存储类型使用16位地址计算,所以最大范围为64K,但这是最优的一种存储方式.xhuge存储类型没有大小的限制.2. 如何修改系统堆栈的大小和位置?需要编辑START166.A66文件.修改STK_SIZE=7,然后设置SSTSZ为自己设定的值.例如SSTSZ EQU 200H 则设置了系统堆栈大小为200H BYTES 但要注意系统堆栈要放到IDATA存储区内.3. 能不能在运行或编译时确定程序的大小?不可以.但可以在程序的结尾放一个变量,这一变量并非自动生成并需要在程序中放置所有变量,然后把”E OF”变量放到最后.4. 如何在函数中禁止中断?可以用#pragma disable来禁止中断,例如:#pragma disablevoid function(void){ if (flag==0){ flag=1;flag2=1;}}在进入函数时禁止中断,在退出函数时恢复中断.5. Keil C166编译器是否支持C164?是的, Keil C166编译器可以支持80C166,C167,C165,C164,C163,C161,XC164和ST10系列.6. 如何使能XBUS外围设备?通过修改\C166\LIB中的START166.A66来实现的.设置INIT_XPERCON为1并将XRAM设置为需要的值.7. 当声明一位作为外部变量时得到如下错误信息提示: *** ERROR C102 IN LINE 4 OF .\MAIN.C: 'mybit0': different const/volatile qualifiers在MIAN.H头文件中定义 extern bit mybit0; /* bit 0 of ibase */MAIN.C如下 #include "main.h"int bdata ibase; /* Bit-addressable int */sbit mybit0 = ibase ^ 0; /* bit 0 of ibase */void main (void){}错误出现的原因是sbit实际上并非一个位变量.解决的方法必须声明一个外部的位变量,与sfr不同时定义,最简单的方法是用#define,例如:在MAIN.H#ifndef SBITSextern bit mybit0; /* Bit 0 of ibase */#endif在MAIN.C#define SBITS#include "main.h"int bdata ibase; /* Bit-addressable int */sbit mybit0 = ibase^0;void main (void){mybit0 = 0;}在JUNK.C#include "main.h"void junk (void){mybit0 = 1;}8. Keil C166编译器时候支持浮点数运算?时候有库文件来声明浮点变量?C166编译器支持单精度和双精度浮点数,所有的操作与ANSI C中的浮点数运算相同.默认情况下C166编译器以IEEE形式存储32位浮点数,给出7位小数点精度.当需要高于7位精度时可以用C166的FLOAT64指令使能64位双精度.也可以通过Project>-Optioin for Target>-Double-precision floating-point来设置.。
Keil中使用C166
Keil中使用C166
1.用Dave工具生成一个C166的工程(IDE注意选择Keil而不能使TASKING,默认是
TASKING).
2.通过Keil打开Dave生成的工程.
3.编译Dave工程,会提示出现***Device is not supported by Toolchain!***
4.破解C166
根据不同的CID在破解工具Keil Generic Keygen-EDGE生成不同的license.
CID: C75JA-CP3VC
LIC: HN4Y8-3UAX8-ZSBY0-BIW3E-S74G0-VMRNW
LIC: 21IVE-5FKSB-CIP5T-R1FJY-D0AQW-RAN2S
CID: CWDX3-R2VBK
LIC: 03GNN-YE0JX-0KTBG-VAQ2C-6DJA6-GDKQF
5.再次编译工程.直到不会出现***Device is not supported by Toolchain!***提示并
能否正常编译.
6.使用miniWigger调试工具调试,
7.点击Keil设置工具设置编译器调试工具相关参数..
8.选择Debug页面.
选择对应的Debug工具;
9.点击Settings
选择完成后在DAS Interface中会显示连接的调试工具名称.
10.点击Flash Download Options,再Add编程算法.
11.根据不同的芯片选择不同的烧录算法.
我们采用的Infineon XC2234L-20F芯片,所以选择XC2xxxL/D/X-20F On-chip Flash.
12.选择Utilities.
可以正常的在Keil中使用C166编译16位单片机程序.。
Keil C软件使用(黄修改)
一、Keil 安装1、运行D:\单片机实验-tyao\keil700\setup目录中setup.exe2、选择full Version完全版3、安装路径D:keil4、SN:K1RIP-M2192-KO14E5、First Name:随意Last Name:随意Company Name:随意(名字必须填写,E-mial可以不填)6、出现“A:”时,点“浏览”选D:单片机实验—tyao\keil700\c51addon\文件夹即可。
7.Next,Next,去掉发送注册信息前面的勾,Next8,安装完成Keil C软件使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PL M 语言和 C 语言的程序设计,界面友好,易学易用。
下面介绍Keil C51软件的使用方法进入 Keil C51 后,屏幕如下图所示。
几秒钟后出现编辑界进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。
下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。
1)建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Project选项2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51 如下图所示,然后点击保存.3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C 51之后,右边栏是对这个单片机的基本的说明,然后点击确定.4)完成上一步骤后,屏幕如下图所示到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。
5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项新建文件后屏幕如下图所示此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
英飞凌单片机仿真器使用说明
在Tasking下使用MiniWiggler-II下载代码注:基于TASKING VX-toolset for C166 v2.2r2版本,其它版本类同Step1、安装wiggler驱动程序:DAS安装文件在英飞凌官方网站上有提供,可以免费下载Step2、打开DAS第一次使用wiggler时,需要按以下顺序打开DAS窗口:打开第二个窗口 Device Scanner -> 点Start DAS Server弹出第二个窗口 DAS Server Control Panel -> 点 Installed Servers弹出第三个窗口 Installed DAS Servers -> 点 JTAG over USB Chip 后面的Start 这时,如果您的仿真器,开发板已连接正常,开发板已经上电,会在第一个窗口看到开发板上芯片的型号。
贴心小提示:1、如果您用的Tasking里,在下载时如果提示UDAS连接不上,这时您需要在第三个窗口选择UDAS后面的Start2、如果这时第二个窗口中既有JTAG over USB Chip,还有UDAS,您需要在第二个窗口点JTAG over USB Chip后面的Quit,把这种仿真方式退出Step3、在Tasking下选择对应的仿真器下载方式菜单Project -> Target Board Configuration for Project blink->在打开的弹出窗口里,指定您手上的仿真器型号:我们一般用MiniWigglerIIStep4、点Debug下载代码,同时可以进行在线仿真调试在Keil下使用wiggler下载代码Step1、安装wiggler驱动程序:DAS安装文件在英飞凌官方网站上有提供,可以免费下载Step2、打开DAS第一次使用wiggler时,需要按以下顺序打开DAS窗口:打开第二个窗口 Device Scanner -> 点Start DAS Server弹出第二个窗口 DAS Server Control Panel -> 点 Installed Servers弹出第三个窗口 Installed DAS Servers -> 点 JTAG over USB Chip 后面的Start 这时,如果您的仿真器,开发板已连接正常,开发板已经上电,会在第一个窗口看到开发板上芯片的型号。
英飞凌M0在KEIL中的应用
KEIL:一、安装MDK插件(目前版本为4.72),默认安装,不需要改动。
安装完之后重新启动KEIL 软件。
二、MO在keil中工程的新建1).在条目栏选择Project->New uvision Project...。
如下图:2).打开后,为工程命名,然后保存3).保存后出现,如下图:4).选择infineon及demo板上相对应的单片机型号。
5).单击OK,完成工程新建。
三、M0在Keil中项目的新建1).在条目中选择File->New...或者直接点图标,保存文件。
3).文件命名后保存。
4).右键选中Source Goroup1在下拉中单击Add Existing Files to Group``5).选择要添加建立的文件,单击Add,然后点击Close。
6).在Source Group1的下拉可以看到所添加的文件,右边为代码编写区。
四、M0在keil编译器中烧录下载的设置1).在条目栏中选Project->options for target``...或选择4).点击Settings5).出现如下界面,点击Add.6).添加demo板上所用英飞凌产品的型号,最后点Add。
7).添加好后弹回原理界面,如下图表示已经添加好。
8).添加好后,在条目栏中,选择Debug,如下图。
9).在ort的下拉中选择SW,点确定设置完成。
10).点Flash->Download或五、XMC1300开发工具(红色的板是英飞凌原厂所设计,绿色板是新华龙设计的)。
1).英飞凌原厂开发板:2).新华开发板3).XMC1300开发板可以配合mini-wiggler和J-LINK在线调试仿真。
Keil C51 基本使用方法
附录:一、Keil C51工程建立与仿真1、建立一个工程项目,选择芯片并确定选项双击Keil uVision2快捷图标后进入Keil C51开发环境,单击“工程”菜单,在弹出的下拉菜单选中“新工程”选项,屏幕显示为图1。
图1 建立一个工程项目在文件名中输入一个项目名“my-test”,选择保存路径(可在“我的文档”中先建立一个同名的文件夹),单击保存。
在随后弹出的“为目标target选择设备”(Select Device for Target “Target1”)对话框中用鼠标单击Atmel前的“+”号,选择“89C51”单片机后按确定,如图2所示。
图2 选择单片机后按确定选择主菜单栏中的“工程”,选中下拉菜单中“Options for Target ‘Target1’”,出现图3所示的界面。
单击“target”页面,在晶体Xtal(MHz)栏中选择试验板的晶振频率,默认为24MHz,我们讲座试验板的晶振频率为11.0592MHz,因此要将24.0改为11.0592。
然后单击输出“Output”页面,在“建立hex格式文件”前打勾选中,如图3-4。
其它采用默认设置,然后点确定。
图3 选择Target页面图4 选择Output页面2、建立源程序文件单击“文件”菜单,在下拉菜单中选择“新建”,随后在编辑窗口中输入以下的源程序(如图5)。
ORG 0000HLJMP MAINORG 030HMAIN: MOV P0,#00HMOV P1 ,#00HMOV P2 ,#00HMOV P3 ,#00HACALL DELMOV P0 ,#0FFHMOV P1 ,#0FFHMOV P2 ,#0FFHMOV P3 ,#0FFHACALL DELAJMP MAINORG 0200HDEL: MOV R5,#04HF3: MOV R6,#0FFHF2: MOV R7,#0FFHF1: DJNZ R7,F1DJNZ R6,F2DJNZ R5,F3RETEND图5 建立源程序文件程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm格式(如my-test.asm)保存在刚才所建立的一个文件夹中(my-test)。
英飞凌 开发工具的使用(DAvE Keil FLOAD MEMTOOL)[1]
开发工具的使用英飞凌XC800系列单片机写在前面本篇内容为英飞凌科技有限公司(Infineon Technologies CO., LTD.)的XC800系列单片机的基础篇之一。
如无特别说明,所指的产品为XC800系列单片机中的首款型号:XC866。
由于后续芯片会有更多的改进/增加措施,如需要关注其它产品,需要再结合相应的产品数据手册(Data Sheet)和用户手册(User Manual)! 由于版本更新等原因,可能会出现各版本间的资料说法有略微差异,请以英飞凌网站公布的最新英文版本的产品数据手册(Data Sheet)和用户手册(User Manual)为准!内容英飞凌8位单片机硬件的连接基本的硬件连接方式DAvE的安装与使用DAvE软件用于配制项目文件,设置端口,定时器工作方式等 Keil软件的安装与使用Keil软件编辑(插入)用户代码实现用户目标功能编译源文件,生成目标代码软件仿真下载工具的安装与使用FLOAD软件下载程序到目标芯片MEMTOOL软件下载程序到目标芯片硬件的连接XC866评估板(Starter Kit)结构图:直流:8~18V/300mA硬件连接连接步骤将串口和电脑串口连接连接电源。
当连接好电源时,电源指示灯点亮OCDS接口的连接XC866使用16针的标准JTAG接口。
信号排列如下:JTAG 接信号线定义:接地信号线GNDOCDS 配置(XC800中不使用)OCDSE保留(留作特殊应用时使用)RCAP1/2电源VCC测试系统复位信号TRST目标系统复位信号RESET测试时钟TCK测试机时钟CPU_CLOCK测试数据串行输入TDI测试数据串行输出TDO测试模式选择TMS在连接OCDS调试接口时,需要注意,应该将箭头端连接到开发板上针脚1处。
使用OCDS调试接口,同样能够下载程序到单片机,不一定需要通过串口下载程序到目标机,再进行调试。
为了方便学习,下面介绍一个程序的基本流程。
第5章 Keil C51集成环境的使用
第5章 Keil C51集成环境的使用
(2) 用Debug菜单下的Go连续运行。 (3) 用Debug菜单下的Step单步运行。子函数中也要一 步一步地运行。 (4) 用Debug菜单下的Step Over单步运行。子函数体 一步直接完成。 (5) 用Debug菜单下的Stop running命令停止运行。 (6) 用View菜单调出各种输出窗口观察结果,用 Peripherals菜单观察51单片机内部资源。图5.10为调出 Peripherals菜单下的P2口观察的结果。 (7) 运行调试完毕,先用Stop running命令停止运行, 再用Debug菜单下的Start/Stop Debug Session命令退出 调试模式,结束仿真运行过程,回到编辑模式。
8
第5章 Keil C51集成环境的使用
5.2.2 给项目添加程序文件 程序文件已经建立好了可直接添加,程序文件如果没有, 须先建立的程序文件再添加,过程如下。 (1) 如果没有程序文件,则应先用File菜单下的New
命令建立程序文件,输入文件内容,存盘(注意汇编程 序扩展名为.ASM,C语言程序扩展名为.C)。 这里新建一个控制并行口P2滚动输出高电平的汇编 语言程序,存盘为IO.ASM文件,文件内容如下:
第5章 Keil C51集成环境的使用
一、 Keil µVision IDE界面
窗口标题栏 菜单栏 工具栏 项目管理器窗口
编辑窗口
命令窗口和 输出信息窗口
第5章 Keil C51集成环境的使用
菜单条提供各种操作菜单。
1.文件菜单的命令(File) 2.编辑菜单的命令(Edit) 3.视图菜单命令(View) 4.项目菜单的命令(Project) 5. Flash菜单 (Flash ) 6.调试菜单的命令(Debug) 7.外围设备菜单命令(Peripherals) 8.工具菜单命令(Tool) 9.软件版本控制系统菜单(SVCS)
单片机仿真软件KeilC51软件的使用教程
单片机仿真软件KeilC51软件的使用教程单片机仿真实验步骤第一步:双击Keil uVision2的桌面快捷方式,启动Keil集成开发开发软件。
第二步:新建文本编辑窗。
点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。
第三步:输入源程序。
在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序。
第四步:保存源程序。
保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。
注:第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。
第五步:新建立Keil工程。
点击"工程" →"新建工程" 命令,将出现保存对话框。
在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为".uv2",工程名称不用输入扩展名,一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现"选择设备"对话框,在对话框中选择CPU的型号。
第六步:选择CPU型号。
为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机.第七步:加入源程序到工程中。
在选择好CPU 型号后,点击"确定"按钮返回主界面,此时可见到工程管理窗中出现“Target 1”,点击“Target 1”前面的“+”号展开下一层的“Source Group 1”文件夹,此时的新工程是空的,“Source Group 1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。
如图9所示,右击工程管理窗中的“Source Group 1”,出现下拉菜单,点击“增加文件到组'Source Group 1'”命令,将出现添加文件对话框。
在添加文件对话框中,找到要添加到工程中的源程序文件。
keil使用教程
ke显il使用示教程或隐藏反汇编窗口
2 Keil C操作界面
9)Watch & Call Stack Windows: 显示或隐藏观察和堆栈窗
口 10)Memory Windows:
显示或隐藏存储器窗口 11)Code Coverage Windows:
µVision2:是一个for Windows 的、集 成化的C51开发环境。集成了文件编辑处理、 项目管理、编译链接、软件仿真调试等多种 功能,是强大的C51开发工具。
在后面的讨论中,对Keil C和µVision2 两个术语不做严格的区分,一般多称呼为 Keil C,包含有µVision2集成开发环境之意。
8)Toggle Bookmark:在当前行置书签
9)Goto Next Bookmark移光标到下一书签
10)Goto Previous Bookmark:
kei移l使用光教程 标到上一个书签
2 Keil C操作界面
11)Clear All Bookmark: 清除当前文件中所有的书签
12)Find… 13)Replace…:查找与替换 14)Find in Files…:
菜单项主要有:文件、编辑、视图(View)、 工程、调试、片内外设(Peripherals)、工具、 软件版本控制系统(SVCS)、窗口、帮助。
工具都是相应菜单项的快捷操作按钮, 所以,下面以介绍菜单项为主线,并指明对 应的工具按钮。
keil使用教程
2 Keil C操作界面
菜单栏 工具栏
工程管理器窗口
编辑窗口 输出信息窗口
图4-6 Keil C51在k编eil使辑用教状程 态下的操作界面
关于PIC16F616单片机的一些经验
关于PIC16F616单片机的一些经验关于PIC单片机的一些经验为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见.2.PIC单片机的概述PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率.PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部晶振提供时钟.内部集成有AD转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能.三个定时器、PWM 发生器等可以由用户编程.下面我来一一介绍关于PIC单片机的这些模块和功能.3.存储器PIC16F616分为程序存储其和数据存储器,程序存储器的大小是2048words,数据存储器的大小是128bytes.程序存储器中0000H的地址为复位地址,当上电或者看门狗计时器等复位的时候,均会导致PC指针指向复位地址.地址0004H为中断地址,当无论发生什么中断的时候,PC 指针就会指向此地址.在地址0005H~07FFH可以移植程序.数据存储器分为两个部分,分别叫做bank0和bank1,其中bank0的地址范围为:00H-7FH,Bank1的地址范围为80H-FFH.一般的寄存器都放在里面.可以通过寄存器STATUSL里面的RP0位来选择bank0和bank1.在编程序的时候要注意的是,当你要操作的寄存器在bank0的时候,先要选择bank0(将寄存器STATUS的RP0位置0),然后再对你所要操作的寄存器进行操作,当你要操作的寄存器在bank1的时候,同理先要选择bank1.如果想要定义一些变量,可以在数据存储器20H开始的地址定义,定义的地址范围为20H-7FH.一般这么多就够用了.4.PIC的输入输出端口在学习这个部分的时候,曾经遇到过一些问题.PIC单片机的引脚不多,大多都是复用引脚,例如AD、IO、比较器、外接晶振等等,所以在配置端口的时候,一定要知道每个功能怎样设置才能实现的,在这一小节中,我要讲的是通用IO口的设置问题.PIC16F616有12个IO口,但是有一个引脚(RA3)只能作为输入引脚用,不能用作输出,另外,A口具有电平变化中断的功能,而C口没有,在设计的时候要注意.在设置的时候,一般要进行以下几项设置:(1)设置端口是模拟端口还是数字端口,可以通过寄存器ANSEL 来设置.例如你想用AD,就要将相应的引脚设置为模拟输入端口.(2)如果你选择的是数字端口,接下来就要设置端口的方向,是输入还是输出(RA3除外),可通过寄存器TRISA(A口)或TRISC(C 口)来设置.(3)设置端口的输出电平,可以通过寄存器PORTA(A口)或PORTC(C口)来设置.这是对IO口的通用设置,但是这不是全部的设置,接下来的设置要看时A口还是C 口了.对于A口,它有几个特殊的功能:内部弱上拉、电平变化中断、RA2/INT引脚的沿中断.如果想要这些功能,就要对相应的寄存器进行设置.弱上拉的设置:只有当引脚为输出的时候弱上拉才有效,可以通过寄存器WPUA来设置相应引脚的弱上拉,值得一提的如果开启了弱上拉,会有多余的电流浪费,这样对于低功耗的设计是不可取的,但是如果在进行一些例如键盘电路设计的候,可以开启弱上拉功能,这样就不需要在键盘电路中加上拉电阻了.电平变化中断的设置:可以通过寄存器IOCA来设置,但是首先要将相应引脚设置为数字端口且为输入状态.同时要将寄存器INTCON的REIE位设置为1,总中断要允许(置寄存器INTCON的GIE位),如果设置相应引脚有这个功能,当此引脚电平发生的时候,就会产生一个中断,同时一些中断标志位被置上(INTCON的RAIF位被置1),且总中断GIE 被置为0.在中断服务程序中,要软件清除RAIF位和重新置GIE位才能继续开启此中断.RA2/INT脚的沿中断设置:同样首先要将相应引脚设置为数字端口且为输入状态,设置INTCON的INTF位为1,表示允许int引脚外部中断,寄存器OPTION_REG的INTEGD位可以设置是上升沿中断还是下降沿中断.当发生中断时,INTCON 的INTF位被置为1,GIE 被清零,在中断服务程序中,要软件清除INTF位和重新置GIE位才能继续开启此中断.对于C口,不能产生电平变化中断和沿中断.5.定时器定时器是单片机的一个很重要的部分,用它可以产生很多不同的定时时间,来满足程序设计的不同需求.PIC16F616有三个定时器,分别是Timer0、Timer1、Timer2.它们的用法不是很相同,下面来分别谈谈这三个定时器的用法和设置问题.(1)Timer0Timer0是一个八位的计数器,它有一个八位的计数寄存器TMR0,八位的预分频器(与看门狗共用),可以选择内部或者是外部时钟源,有计数器溢出中断的功能.Timer0可以作为一个定时器或者计数器来使用,与Timer0有关的寄存器有:TMR0,INTCON,OPTION_REG,TRISA.当Timer0作为定时器来使用的时候,要设置OPTION_REG的T0CS位为0,表示用的是内部时钟,每一个指令周期TMR0的值会增加(当没有预分频的时候),当TMR0被赋值的时候,会有两个指令周期的延时.预分频器可以和看门狗共用,可以由OPTION_REG的PSA位来设置,当PSA 为0的时候分频器选择Timer0,当PSA为1的时候分频器选择看门狗.同时,与分频器的分频值可以通过寄存器OPTION_REG来设置,设置的值可以由1:2到1:256.当Timer0的计数器TMR0计数从FFH到00H的时候会产生溢出,同时溢出标志位(INTCON寄存器的T0IF位)会置位(无论Timer0的中断是否开启),如果中断已经开启了(INTCON寄存器的T0IE被置位),那么就会产生溢出中断.T0IF 位需要软件对其进行清零.当Timer0作为计数器来使用的时候,就要用外部时钟源(OPTION_REG的T0CS 置1),每次当引脚T0CK1的沿到来时Timer0的TMR0会增加1,上升沿和下降沿可以由OPTION_REG的T0SE来设置.中断和Timer0作为定时器使用时一样.在我们编程序的时候,可以用Timer0进行定时或产生定时信息,下面我来解释定时器的定时时间的计算.假设Timer0用的时钟源是内部的4MHZ,那么每条指令的执行时间就是1us,设Timer0的预分频系数是1:256,TMR0的初值是6,那么定时时间为:256×(256-6)×1us=64ms在编程的时候需要注意的是Timer0的中断是不能把单片机从SLEEP的状态唤醒的.(2)Timer1Timer1是一个十六位的计数器.它有一个计数寄存器对(TMR1H:TMR1L),时钟源也是内外可选的,具有一个2bit的预分频器,可以同步或者异步操作,具有中断功能,但是溢出中断只能在外部时钟、异步的模式才能将单片机从SLEEP中唤醒,Timer1具有捕获/比较功能,还有被一些特殊事件触发功能(ECCP),比较器的输出可以与Timer1的时钟同步.下面来一一介绍这些功能.在编程的时候也可以按照这样的步骤来进行.设置寄存器T1CON,时钟源可以选择外部或者内部的时钟源,外部时钟源可以选择LP晶体.Timer1在选择内部时钟时,可以运行在定时器的状态,选择外部时钟的时候,可以运行在定时器或者是计数器状态,工作于计数器状态时可以选择门限是高电平还是低电平计数.这些都可以通过寄存器T1CON来设置.以下是T1CON每个位的具体功能:bit1:Timer1是否开启位,当此位设为1时,Timer1开启,设为0时,Timer1关闭;bit2:时钟源选择位,置1时,选择外部时钟(T1CK1引脚的上升沿),此位置0时,选择的是内部时钟,并且和T1ACS(寄存器CM2CON1中)配合,当T1ACS位为0时,时钟为FOSC/4,当T1ACS位为1时,时钟为FOSC.bit2:T1SYNC:定时器1的外部时钟输入同步位,当TMR1CS 位为1、T1SYNC位为1,定时器1被设置成与外部时钟不同步,T1SYNC 位为0时,定时器1被设置成与外部时钟同步模式.Bit3: T1OSCEN:此位为1时Timer1的时钟选择LP,为0时LP晶体被关闭.Bit5-4:T1CKPS:Timer1时钟的预分频系数设置,通过这两位的是指,可以讲Timer1设置成1:1、1:2、1:4、1:8几种分频值.Bit6:TMR1GE:只有当TMR1ON位为1时才有效,当此位为1时,Timer1计数被Timer1的门限控制,此位为0时,Timer1正常计数.Bit7:T1GINV:此位为1时,Timer1在门限为高时计数,此位为0时,Timer1在门限为低时计数.Timer1的中断编程:当Timer1的计数产生溢出的时候,如果Timer1中断允许的话,就会产生中断.中断可以这样设置,Timer1的中断允许位TMR1IE(在PIE1寄存器中)置1,寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)要置为1.当定时器产生中断的时候,会把中断标志T1IF置为1(位于寄存器PIR1中),然后PC 指针指向0004H地址.T1IF位必须软件清除.(3)Timer2Timer2的功能于Timer1有些不同,Timer2时一个八位的计数器,有一个八位的计数寄存器TMR2,Timer2具有以下功能:有两个分频器,一个是前分频器,一个是后分频器.分频可以软件进行设置,另外,Timer2的时钟源是指令时间(FOSC/4),Timer2有一个寄存器PR2,此寄存器的功能是当TMR2增加到PR2的值时,将产生中断,当然,中断必须允许,然后PR2的值会重新变为00H.下面来介绍Timer2的编程:Timer2的控制寄存器T2CON作用是设置Timer2的开启关闭和前后分频的分频系数,寄存器T2CON的TOUTPS<3:0> 位设置后分频系数,可以被设置成1:1~1:16;位TMR2ON为1时,Timer2开启,为0时,Timer2关闭;位T2CKPS<1: 0>可以设置前分频系数,可以被设置成1、4、16.Timer2的中断可以这样控制,允许Timer2中断位TMR2IE(位于PIE1寄存器内)被置1时,Timer2中断被允许,被置0时, Timer2中断禁止.寄存器INTCON的PEIE 位置1,同时总中断位GIE(位于寄存器INTCON中)置为1.通过上面的设置,Timer2就可以产生中断了.当定时器产生中断的时候,会把中断标志T2IF置为1(位于寄存器PIR1中),然后PC指针指向0004H地址.中断标志位T2IF必须软件清除.下面是三个定时器的比较:唤醒功能其他功能定时器Timer0内部或外部时钟源,有一个预分频器.定时器、醒功能.计数器值溢出时发生中断预分频器与看门狗共用.定时器Timer1内部或外部时钟源,有一个预分频器定时器、计数器外部时钟、异步模式时可唤醒CPU计数器值溢出时发生中断与比较器模块、捕获/比较模块共用定时器Timer2有前分频器和后分频器醒功能.计数器值与预置值相等时发生中断PWM的产生需要此定时器6.AD模块PIC16F616有一个十位、八路的AD转换器.其参考电压可以为电源电压VDD,也可以是外部参考电压(VREF引脚),当AD转换完成后可以产生一个中断,此中断可以把单片机从睡眠状态中唤醒.下面来介绍一下关于AD转换的编程方法.要使用一个ADC,要做的有一下几件事情:(1)设置端口,需要采样模拟信号的端口必须设置为模拟输入状态,如果设置为数字端口,将使转换结果不正确,端口的模拟输入可以由寄存器ANSEL来配置,在讲RA口的时候已经说到了如何配置了.(2)通道的选择,有八路外部通道和三路内部通道,可以通过ADCON0寄存器的CHS<3:0>位来设置通道的选择.(3)参考电压的选择,参考电压可以是VDD,也可以是外部参考电压,可以通过ADCON0寄存器的VCFG位来设置,当VCFG=0时,参考电压为VDD,当VCFG=1时,参考电压为外部参考电压(来自VREF引脚)(4)ADC的转换格式,AD转换后的结果保存在一个寄存器对里面:ADRESH和ADRESL,但是AD转换结果只有十位,设置AD转换格式可以通过设置ADCON0的ADFM 位来选择,当ADFM=1时10位的AD结果的低八位保存在ADRESL内,高两位保存在ADRESH内;当ADFM=0时10位的AD结果的高八位保存在ADRESH内,低两位保存在ADRESL内.(5)AD时钟源的选择,寄存器ADCON1专门来设置AD的时钟源,ADCS<2:0>不同组合,可以将AD的时钟源设置为不同的频率,可以为FOSC/2、FOSC/4、FOSC/8、FOSC/16、FOSC/32、FOSC/64和FRC(内部RC).(6)AD中断的配置,要使用AD的中断功能,可以先把AD中断使能,ADIE位设置为1(在寄存器PIE1中),PEIE位置1(在INTCON寄存器中),总中断GIE位置1(INTCON寄存器中).要开始一个AD转换,首先要使能ADC模块,即把寄存器ADCON0的ADON位置1即可,然后将GO/DONE位(ADCON0中)置1就可以启动AD转换了.AD转换需要时间,转换1bit需要Tad的时间,Tad与AD转换的时钟源和VDD 有关,转换十位就需要11个Tad时间,如果第一个AD转换完成了,要进行第二个AD转换,必须还要等待2*Tad的时间才能开始.一个AD完成了,GO/DONE位会被置为0,如果中断允许的话,就会产生中断,且中断标志位ADIF(寄存器PIR1内)会被置1,在AD中断程序中就可以把AD转换结果读取出来(读ADRESH和ADRESL),需要时把AD中断标志位清零.AD中断可以把单片机从睡眠中唤醒,但是要注意,使用这个功能的时候,时钟源必须设置为FRC,否则的话在睡眠的时候就不会产生AD中断了.7.看门狗PIC16F616的看门狗WDT其定时计数的脉冲序列由片内独立的RC振荡器产生,所以它不需要外接任何器件就可以工作.而且这个片内RC振荡器与引脚OSC1/CLKIN上的振荡电路无关,即使OSC1和OSC2上的时钟不工作,WDT照样可以监视定时.例如:当PIC16F616在执行SLEEP指令后,芯片进入休眠状态,CPU不工作,主振荡器也停止工作,但是,WDT照样可监视定时.当WDT超时溢出后,可唤醒芯片继续正常的操作.而在正常操作期间,WDT超时溢出将产生一个复位信号.如果不需要这种监视定时功能,在编程时,可关闭这个功能.WDT的定时周期在不加分频器的情况下,其基本定时时间是18ms,这个定时时间还受温度、VDD和不同元器件的工艺参数等的影响.如果需要更长的定时周期,还可以通过软件控制OPTION寄存器(PSA位置1)把预分频器配置给WDT,这个预分频器的最大分频比可达到1∶128.这样就可把定时周期扩大128倍,即达到2.3秒.WDT的预分频器是和Timer0所共用的,如果把预分频器配置给WDT,用CLRWDT和SLEEP指令可以同时对WDT和预分频器清零,从而防止计时溢出引起芯片复位.所以在正常情况下,必须在每次计时溢出之前执行一条CLRWDT指令喂一次狗,以避免引起芯片复位.当系统受到严重干扰处于失控状态时,就不可能在每次计时溢出之前执行一条CLRWDT指令,WDT就产生计时溢出,从而引起芯片复位,从失控状态又重新进入正常运行状态.当WDT计时溢出时,还会同时清除状态寄存器中的D4位T0,检测T0位即可知道复位是否由于WDT计时溢出引起的.8.比较器PIC16F616有两个比较器:C1和C2,C1的结构比C2的结构要简单,下面我分别对这两个比较器的用法和特性作简要说明.(4)比较器C1:它有一个独立的控制寄存器CM1CON0,通过这个寄存器可以对比较器C1进行一些设置.位C1ON可以控制C1的开启关闭,位C1OE 可以决定比较器的输出是从引脚输出还是内部输出,位C1POL可以选择比较器输出的极性,位C1R选择参考电压是链接到引脚C1IN+还是连接到C1VREF,C1CH可以选择比较器负端从哪一个引脚输入的,位C1OUT存放了比较器的输出结果.(5)比较器C2:它的控制寄存器CM2CON0的操作跟C1一样,但是比较器C2比比较其C1功能要强,因为它与Timer1挂上钩了,C2可以连接到Timer1,而C1不能.当C2与Timer1相连接的时候,C2的输出可以设置成与Timer1的下降沿锁定,如果Timer1有分频,则比较器的输出与分频后的Timer1下降沿锁定,可以通过相关寄存器来进行设置.(6)两个比较还有其它的功能,都能组成滞回比较器,这样就可以对输入电压有一定的滤波功能.两个比较器还可以形成一个SR锁存器.由于在本项目中没有选择用比较器这个功能,所以在这里就不详细叙述其细节设置,但要注意的是在不用此模块的时候,要能够保证此模块不能影响其他模块的正常工作,可以把比较器功能关闭(通过寄存器CM1CON0、CM2CON0的CxON位置0来关闭).9.捕获/比较/PWM功能PIC16F616具有捕获/比较/PWM的模块,下面来简单的介绍一下它们的功能.这三个功能需要定时器的支持,捕获和比较功能需要定时器Timer1的支持,PWM功能需要定时器Timer2的支持.都有中断的功能,选择这三种功能的某一种功能可以通过寄存器CCP1CON来设置.CCP1CON 的低四位CCP1M<3:0>可以通过不同的组合来开启某项功能和关闭所有功能,当CCP1M<3:0>=0000的时候,捕获/比较/PWM模块的所有功能被禁止.具体其他的不同组合实现的功能,请参考PIC16F616的用户手册.当选择捕获功能时,它可以捕获引脚CCP1发生的事件,同时把16位Timer1的计数值拷贝到CCPR1H:CCPR1L中来,引脚CCP1的发生事件可以指的是下列事件:CCP1引脚的每个上升沿或者下降沿、第四个上升沿、第十六个上升沿.可以通过寄存器CCP1CON 的低四位CCP1M< 3:0>来设置是哪一种事件.当事件发生的时候,单片机会置中断标志位CCP1IF(寄存器PIR1上),如果中断被允许(寄存器PEIE的位CCP1IE=1)的话,就会产生中断,中断标志位CCP1IF需要软件清零.选择比较功能时,如果定时器Timer1的计数器值与寄存器CCPR1H:CCPR1L相等的话,将产生下面的事件:把引脚CCP1置1/0、产生一个中断、触发一个事件(把定时器Timer1的技术器TMR1清零,并且如果此时AD是允许的话,它将触发一次AD转换),这些事件可以通过寄存器CCP1CON的低四位CCP1M<3:0>来设置是哪一种事件.当选择PWM功能时,通过设置PR2、T2CON、CCPR1L、CCP1CON这四个寄存器,模块可以产生不同占空比的PWM波形.具体的设置和占空比的计算请参考手册.如果我们不需要这些功能,可以把这个模块关闭掉(设置CCP1M<3:0>=0000即可).10. 复位、中断和睡眠(1)复位PIC16F616包括这样的几个复位功能,上电复位(Power-on)、硬件复位、欠压复位(Brown-out)、看门狗复位.关于上电复位POR,大家都不陌生,单片机在上电的时候保持复位直到电压能够满足其正常的工作电压,同时你可以通过对CONNFIG(编译器上即可设置)的设置,来开启Power-up Time,这个时间一般为64ms.硬件复位可以通过MCLR引脚外界复位电路,即可实现硬件复位(将此引脚接低电平).欠压复位这个功能是可选的,也可以直接在编译环境中配置CONFIG寄存器来开启此功能.当此功能开启时,如果单片机在运行的时候,供电电压不足就会引起欠压复位,复位后单片机如果发现供电电压已经达到正常值的时候,会有一个64ms的延时,然后再运行程序.关于看门狗的复位在看门狗部分已经说了.这里的一些复位还涉及到一些标志位.这些标志位分布在STATUS和PCON上面.STATUS上有两个位TO、PD,当标志位TO=1时,表示表示已经操作了上电复位或者是执行了CLRWDT或者SLEEP指令,当TO=0时,表示发生了看门狗复位.当标志位PD=1时表示操作了上电复位或者是执行了CLRWDT指令,当PD=0时,表示执行了SLEEP指令.PCON上有两个标志位是POR 和BOR,分别表示的是上电复位和欠压复位标志.具体的可以参看手册.(2)中断PIC16F616包括这样的几个中断源:RA2/INT引脚外部中断、RA 端口电平变化中断、定时器Timer0、Timer1、Timer2溢出中断、比较器中断、AD转换中断、捕获/比较/PWM 中断.这些中断的允许位和中断标志位分别位于INTCON、PIE1、PIR1、IOCA这些寄存器里面,如果要开启相应的中断,就要置相应的中断允许位,开启总中断位(INTCON寄存器的GIE位),还要开启INTCON上的PEIE位(定时器0溢出中断、INT引脚沿中断和RA端口的电平变化中断除外).当中断发生的时候,相应的中断标志位就会置起来,同时总中断标志位GIE会被清零,保证在此时间内不会相应其他的中断,然后将当前的PC 指针值压栈保存,以用来保证中断能正确的返回到原来执行的地方.然后PC指针指向中断向量地址0004H的地方,所以在编程序的时候,你可以在0004H的地址存一条跳转指令跳到你定义的中断服务程序里面去就可以了.如果在中断的时候想保存一些重要的寄存器的话,可以在中断程序的起始将其保存,然后在中断服务程序的末尾将其恢复即可.要注意的是中断标志位不会自己清零,这就需要在编程的时候在软件上对其清零,否则的话,单片机不停的执行中断服务程序.如果你想要在以后的程序中还能产生中断的话,就要把总中断允许位GIE重新置位.(3)睡眠要想让单片机睡眠的方法很简单,执行一条SLEEP指令就可以了,如果看门狗允许的话,WDT就会被清零,但是还保持运行,寄存器STATUS的PD位将会置0,TO位将会置1,IO 口还保持原来的状态,在睡眠状态下,不能驱动振荡器了.有些事件可以将单片机从睡眠状态中唤醒:看门狗、RA口电平变化中断、外部复位引脚MCLK被拉低、RA2/int引脚沿中断、Timer1中断(必须工作在异步计数模式)、ECCP捕获模式中断、AD转换中断(时钟源必须为内部RC的时候)、比较器输出有变化,这些事件能够将单片机唤醒,其他的事件不能.如果某项能唤醒单片机的中断已经开了,当总中断允许位GIE为1的时候,单片机被唤醒后可以进入中断程序中去,而当GIE位为0的时候,单片机也可以被唤醒,但是是执行下面的语句,而不能进入中断程序中去.为了保证在执行SLEEP语句后看门狗能够清零,最好在SLEEP语句之前加一句清看门狗的语句CLRWDT.相关型号资料:AT25020N-10SC2.7 MUX08FP IRFI9520G TS83C51RB2-MC11. PIC单片机的一些电特性VSS引脚的最大输出电流和VDD最大的输入电流为:90mA;每个IO口的输出电流可达25mA,IO口总共输出电流可达90mA;每个IO口是由两个保护二极管上下钳位的.当电压超过VDD和VSS的时候,二极管最大能承受20mA的电流;IO口输入漏电流最大为±1uA,引脚MCLR和OSC漏电流最大为±5uA;PORTA内部弱上拉(若设置了此功能)电流最大为400uA;IO口输出低电平为0.6V,输出高电压为VDD-0.7V;12. 编程注意事项及技巧在编程调试后和根据网上的一些资料和经验,我注意到了一些在编程的事项和技巧,通过这些设置,可以使系统更加稳定的工作,现在总结如下:(1)在设置端口的时候,先将端口输出你想要预置的值,以免发生出示状态的不稳定,影响系统正常工作.虽然在当前还没有定义端口是输出还是输入状态,这样做总是好的.(2)在开启某个中断功能的时候,最好将其中断标志位清一次零.(3)在设计低功耗的时候,其中有些功能是比较耗电的,如果不用的话,一定要将其关掉.例如将IO口设置成输入并将其悬空,就会很耗电流;RA口设置弱上拉的时候如果引脚接地,电流会很大;欠压复位也是一个耗电大户.而看门狗开启时用的时钟源为内部的RC,不怎么耗电;AD转换耗电也不多.(4)单片机里面的功能很多,在有些功能不需要的时候,一定要将其关闭(可以放在初始化程序之中),这样一来有利于程序的稳定性;二来可以省电,因为开启某个功能总是要电来驱动的.(5)如果一个寄存器被多种功能所共用,建议只对相应位进行操作,例如用BCF、BSF、或、异或、与、非等指令,而不要整个的将其赋值,以免弄错了使其他模块受到干扰。
英飞凌单片机DAP Miniwiggler仿真器及相关编程软件使用说明
DAP Miniwiggler仿真器一、概述1、DAP Miniwiggler仿真器是一款高性能,低成本高效率的调试工具。
DAP Miniwiggler支持德国英飞凌科技8位/16位/32位全系列单片机的下载和调试。
DAP Miniwiggler是USB接口型仿真器,主机端,它通过USB接口与计算机连接;设备端则通过JTAG或者DAP 接口连接到目标系统仿真或下载程序。
DAP Miniwiggler是目前英飞凌单片机主流的开发工具。
2、主要特性DAP Miniwiggler仿真器支持Tasking Compiler、Keil uVision和HiTOP HITEX等多种主流软件开发环境。
◊USB2.0(Full Speed)高速通讯接口◊兼容JTAG/IEEE1149.1◊JTAG接口波特率高达6MBit/s(可编程)◊支持Windows2000、XP、Windows VISTA、Windows7、Windows10、(32、64)位系统◊支持USB热插拔◊支持JTAG热插拔◊支持DAP热插拔◊3个状态指示灯◊支持英飞凌科技XC800/XC166/XC2000/XE166/XMC1000/XMC4000/TriCore/AURIX系列芯片下图为DAP Miniwiggler仿真器的资源和接口说明示意图3接口定义DAP Miniwiggler仿真器提供2种接口形式:JTAG和DAP接口。
◊16Pin—JTAG接口:◊10Pin—DAP接口:引脚定义引脚定义4技术支持QQ965006782,还可以发邮件到hgyuanli@淘宝连接:https:///item.htm?spm=a230r.1.14.47.bQMOTz&id=551435954360&ns=1&abbu cket=11#detail二、使用说明1.安装驱动DAS◊准备软件DAP Miniwiggler驱动程序——DAS由英飞凌免费提供。
KEIL_C166使用指南
KEIL_C166使用指南Keil C166 使用指南1 Keil C166 编译器简介单片机开发除了必要的硬件同样也离不开软件,我们写的程序要转化成CPU所能执行的机器码有两种方法:一是手工汇编,二是机器汇编。
机器汇编是通过汇编软件将源程序编写成机器码。
Keil软件是目前最流行的开发单片机的软件工具,Keil编译器提供了包括C编译器、宏编译、连接器、库管理和一个功能强大的仿真调试器等在内的完整的开发方案。
通过一个集成开发环境(μVision)将这些部分组合在一起。
Keil软件有支持8位单片机的Keil C51系列和支持16位单片机的Keil C166系列。
Keil C166符合ANSI 中C语言的标准,还专门针对英飞凌16位单片机进行了扩展,从而能够生成针对166系列单片机的最快、最紧凑的代码。
2 Keil C166软件快速入门2.1 Keil C166软件的工作环境安装完成后,用户可以点击运行图标进入IDE环境。
μVis ion2集成开发环境IDE是一个基于Windows 的软件开发平台,有一个功能强大的编译器、项目管理器和制作工具。
μVision2支持XC164CS的所有Keil工具,包括C编译器、宏汇编器、链接器/定位器和目标文件至HEX格式的转换器。
μVision2软件有菜单栏、可以快速选择命令按钮的工具栏、源代码文件窗口、对话框窗口和信息显示窗口。
μVision2允许同时打开多个源代码文件。
μVision2操作界面如图1所示(具体的菜单栏命令、工具栏和快捷方式介绍详见相关资料)。
2.2 Keil C166软件的开发流程对于刚刚使用Keil的用户而言,一般是按照下面的流程来完成开发任务的:(1)建立工程。
(2)为工程选择目标器件(例如选择Infineon的XC164CS)。
(3)设置工程的配置参数。
(4)打开/建立程序文件。
(5)编译和连接工程。
(6)纠正程序中的书写和语法错误,并重新编译连接。
keil基本用法
keil基本用法
Keil是由德国的Keil Software公司推出的一个集成化的软件开
发环境,它使得程序员能够统一地开发出有效的代码,加快开发实现
更高质量的产品。
下面是keil基本用法:
1、建立新工程:首先打开Keil软件,选择File→New Project,然后选择新建的分类型,可以是 C51、C166、C251、ARM等。
2、添加源文件:点击Project→Add File to Group,弹出框中选
择新建的源文件的位置,添加源文件到Group中,添加完成后,可以
看到源文件已经添加到工程中了。
3、配置工程:点击Project→Options for Target,弹出配置界面,可以设置包括内存大小,可执行文件的格式,芯片类型,外设驱
动配置等。
4、编译源文件:点击Project→Build Target,编译源文件,编
译完成之后,会出现编译报告,并且保存生成的可执行文件。
5、仿真:点击Debug→Start/Stop Debug Session,进入仿真模式,这时候就可以在仿真界面上查看程序的运行状态,包括外设的状
态等。
6、烧录:点击Debug→ Download,将可执行文件烧录到相应的芯
片中,就可以在芯片上运行程序了。
通过以上方法,便可以完成对Keil软件的基本用法了。
Keil软件
具有简单易用,易于学习的特点,广泛应用于嵌入式系统的开发。
Keil+C51+V6.xx教程
Keil C51 V6.xx教程(2)建立一个新的工程Project日期2001-10-10作者老古内容我们以下的所有文章都是以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上,经常发现一些网友一点脑筋都不动,一点点小问题,也经常提出来,这种问题看得多了,开始回答一下,以后也就没有功夫去理了.特别是到了企业,企业虽然允许员工可以交流,但是一个老板看到一个员工,什么问题都要去问别人的话,我相信老板对这个员工的看法不可能是赞扬的,而是他认为这个员工根本就不行.更为严重的是,老板认为你这个员工自己不行还不要紧,还影响了别人也干不了活(他要为你解答问题呀).培养独立解决问题的能力,实在没有办法了,才通过别的手段(比如在bbs上,同事之间等)去解决问题.keil的技术支持已经做的比较好,很多问题,还可以在keil的网站的faq或论坛找到答案.有时候也有感于中国教育的落后,想当年我读大学的时候,单片机的软件是80年代的,连edit界面都没有,仿真机要敲机器码,落后之至.而我到公司,却用上了先进的c 编译系统,仿真机也不需要敲机器码,windows版的c51设计软件.学校确实比企业落后不知道多少年.教授不思进取,(反正过几年就退休了,搞什么搞).当然也有一些教授能够紧跟时代,学习新的知识,也有不少的网友反映他们的导师也经常光顾我的网站下载新的资料,这是好事,但只是能够这样做的教授,只是9牛之1毛.想想外国,很多先进的东西往往是从学校里出来的,学校是最先用到的,然后才到公司,企业,政府.为什么中国人很少拿诺贝尔奖,跟中国的教育不无关系.闲话少说,还是说说如何建立一个新的工程吧.在低版本的c编译系统,一般没有工程的概念,工程就是某个c或汇编文件.但是高版本的c编译系统,keil c51 v5.xx以后的版本,都需要一个文件来存储工程的相关信息.有些网友装了软件,然后打开某个c文件或汇编文件,就进行编译,然后说"哎呀,怎么无法编译呀""我装的keil有问题呀""keil的一个bug!""我用dos版的都可以,怎么windows版的就不行了呢?"等等诸如此类的话题.也不知道回答过多少个网友,而现在看到网友再问这样的问题的时候,一般我是不会再做回答.我的时间也有限,我也有我自己开发的项目,不可能在这里浪费时间.每天网友发给我的email很多,但我希望网友尽量将问题发表在bbs(论坛)上,这样可以有更多的人来为你回答问题,象c51bbs,21icbbs都是人气比较旺的地方,发表在这些地方,可以得到更多的回答.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,如果是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文件,如图:来老古开发网源。
Keil C软件与AVR下载器使用
第一部分 Keil C软件使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。
本文以KEIL uVISION3为例介绍Keil C51软件的使用方法。
进入 Keil C51 后,屏幕如下图所示。
几秒钟后出现编辑界面。
启动Keil C51时的屏幕进入Keil C51后的编辑界面下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。
1、新建项目单击Project菜单,在弹出的下拉菜单中选中New Project选项然后选择你要保存的路径,输入工程文件的名字,例如保存到my document文件夹中,工程文件的名字为test.uv2,如下图所示,然后点击保存。
这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89S51来说明,如下图所示,选择Atmel公司的89S51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
紧接着会探出一个对话框,询问是否添加KEIL自带的一个库文件Startup.a51,定义需上电初始化的内存空间,其主要工作是把包含idata、xdata、pdata 在内的内存区块清除为0,并且初始化递归指针。
如果没有用到这些内存空间,可以点击“否”取消加入。
完成上一步骤后,屏幕如下图所示。
2、新建文件单击“File”菜单,再在下拉菜单中单击“New”选项新建文件,并最大化文件编辑窗口,屏幕如下图所示此时光标在编辑窗口里闪烁,这时可以输入用户的应用程序了。
首先应当保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
MICROCHIP PIC16F676单片机 调试烧录指引
一、烧录工具1.编程器: ALL-11(A)2.适配器: OTS-16-033.PC电脑一台二、烧录软件版本信息ALL-11 Universal Programmer V3.10三、调试方法:1.确认防静电手环接地良好后,戴上防静电手环。
2.连接编程器,启动PC电脑3.将适配器装于锁紧内,并将锁紧担杆拉下,芯片脚靠下侧放置,极性点朝上;4.双击电脑桌面上快捷方式“WACCESS”,(方便起见,可先在桌面上建一快捷方式)如下图所示:5.选择菜单项“Device”进入“Manufacture list”选择“MICROCHIP”,点击“OK”按钮。
6.出现Type list窗口,选左侧的MPU/MCU,右边选择“PIC16F676”型号,点击“RUN”按钮。
7.此时可调文件,选菜单FILE下拉至“Load file to programmer buffer”确定,调用所需文件(*.hex),选定后点击“打开”钮。
(注:调用的文件必须与《芯片拷贝申请记录表》上的程序名称一致)8.选择File format为“Intel hex”,Unused bytes选择“FF”。
File status栏中各项不用改写(变),点击OK钮。
致即可进入下一步骤。
10.点击“Auto”按钮;打开下图所示窗口;将图中圈选项打勾;11.点击“RUN”按钮,即可开始烧录;12.如烧录OK,右面板上方会显示OK字样,如烧录错误,则用红色字体显示“Error”字样。
13.批量烧录时,按ALL-11(A)上的“YES”钮即可,等待片刻后,若“GOOD”灯亮,则烧录成功,否则烧录失败。
14.烧录OK的单片机要求在其上方打点做标识;四、相关文件及表单1.《芯片拷贝申请记录表》。
英飞凌 开发工具的使用(DAvE Keil FLOAD MEMTOOL)
开发工具的使用英飞凌XC800系列单片机写在前面本篇内容为英飞凌科技有限公司(Infineon Technologies CO., LTD.)的XC800系列单片机的基础篇之一。
如无特别说明,所指的产品为XC800系列单片机中的首款型号:XC866。
由于后续芯片会有更多的改进/增加措施,如需要关注其它产品,需要再结合相应的产品数据手册(Data Sheet)和用户手册(User Manual)! 由于版本更新等原因,可能会出现各版本间的资料说法有略微差异,请以英飞凌网站公布的最新英文版本的产品数据手册(Data Sheet)和用户手册(User Manual)为准!内容英飞凌8位单片机硬件的连接基本的硬件连接方式DAvE的安装与使用DAvE软件用于配制项目文件,设置端口,定时器工作方式等 Keil软件的安装与使用Keil软件编辑(插入)用户代码实现用户目标功能编译源文件,生成目标代码软件仿真下载工具的安装与使用FLOAD软件下载程序到目标芯片MEMTOOL软件下载程序到目标芯片硬件的连接XC866评估板(Starter Kit)结构图:直流:8~18V/300mA硬件连接连接步骤将串口和电脑串口连接连接电源。
当连接好电源时,电源指示灯点亮OCDS接口的连接XC866使用16针的标准JTAG接口。
信号排列如下:JTAG 接信号线定义:接地信号线GNDOCDS 配置(XC800中不使用)OCDSE保留(留作特殊应用时使用)RCAP1/2电源VCC测试系统复位信号TRST目标系统复位信号RESET测试时钟TCK测试机时钟CPU_CLOCK测试数据串行输入TDI测试数据串行输出TDO测试模式选择TMS在连接OCDS调试接口时,需要注意,应该将箭头端连接到开发板上针脚1处。
使用OCDS调试接口,同样能够下载程序到单片机,不一定需要通过串口下载程序到目标机,再进行调试。
为了方便学习,下面介绍一个程序的基本流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于Keil C166的使用单片机开发除了必要的硬件同样也离不开软件,我们写的程序要转化成CPU所能执行的机器码有两种方法:一是手工汇编,二是机器汇编。
机器汇编是通过汇编软件将源程序编程机器码。
Keil软件是目前最流行的开发单片机的软件工具,Keil编译器提供了包括C编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整的开发方案。
通过一个集成开发环境(uVision)将这些部分组合在一起。
KEIL软件有支持8位单片机的Keil C 51系列和支持16位单片机的Keil C 166系列。
在项目开发过程中并不是仅有一个源程序就足够了,还要为项目选择CPU确定编译,汇编,连接的参数,指定调试的方式,有一些项目还会由多个文件组成。
为管理和使用方便,Keil 引入了工程(Project)概念。
将这些参数和所需要的文件都加在一个工程中,只能对工程进行编译和连接等操作。
工程的详细设置:以下针对在使用XC164CS评估板过程中在Keil C166环境下的一些设置谈一下。
首先点击Project窗口中的Target1 Project->Option for Target1 “target 1”即出现对工程设置的对话框。
菜单如下图1:图1以下针对各个标签详细说明:Device选择所使用的CPU(即所选用的芯片)。
KEIL支持很多种CPU,当选中一款芯片以后右侧窗口还会有相应的芯片介绍。
此处选择Infineon XC164CS.系列芯片作为CPU。
Target窗口设置如下:图2这里可以设置时钟频率,片内和片外资源的选择及地址的设置。
其中Memory Model用于设置RAM使用情况,KEIL C 166编译器可支持7种存储类型。
TINY CPU处于非分段工作方式下,可产生高效的16位线性地址,并把代码和数据限制在64KB种。
不能使用far, huge, xhuge存储类型。
SAMLL 使用分段CPU方式,同样产生高效的代码,但代码和数据不再限制再64KB中,用户可通过far, huge, xhuge引用变量和函数COMPACT 一般用于代码少而数据多的场合HCOMPACT 一般用于代码多而数据少的场合MEDIUM 所有的函数调用默认为far调用,一般用于代码多而数据少的场合 LARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合HLARGE 所有的函数调用默认为far调用,一般用于代码和数据多的场合,不适合于C166系列CPU在仿真过程中如果使用片内FLASH,则选中Use On-chip ROM在仿真过程中如果使用片外RAM,则取消Use On-chip ROM复选框并设置ROM和RAM 空间起始地址及大小。
注意片外RAM起始地址为0x0000。
此例中设置ROM起始地址为0x0000大小为2K,设置RAM起始地址为0x4000大小为2K。
Output此页面有多个选择项,其中Create Hex file用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为HEX),默认情况下该项未被选中,如果要写片做硬件试验,就必须选中该项。
其他的取默认设置即可以。
Listing该标签页用于调整生成的列表文件选项。
该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“C Compile Listing” “Assamble Code”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。
C166该标签用于对KEIL C 166编译器的编译过程进行控制,其中比较常用的是”Code Optimization”组,level设置优先等级,在对源程序进行编译时可以对代码进行优化,系统默认为第六级,一般不用修改,如果编译程序时出错可以尝试降低优化等级。
Emphasis选择编译优化方式,第一项为代码项优化(生成代码量小),第二项为速度优化(最终生成代码速度快),第三项为缺省,默认为速度优化,可根据需要更改。
EC++ A166 L166 Locate L166 Misc是对编译环境的一些设置,可按默认选项Debug该标签是对仿真的一些设置。
选择Use Simulator则应用软件进行仿真,这里可对启动类型,总线形式,时钟信号及片选信号等进行设置。
图3如果想实现硬件仿真则选择Use OCDS Driver for XC16x,点击Settings按钮弹出相应设置窗口。
Port默认为LPT(0x378),配置均可按默认设置。
图4Utilities当使用片内FLASH进行仿真时,需要选择Use Target Driver for Flash Programming 下拉菜单中的OCDS Driver for XC16x,在进行Configure Flash Download时可设置FLASH下载功能设置。
下图为在使用XC164CS评估板进行片内FLASH仿真时的FLASH 设置。
图5仿真以上即完成了工程的相关设置,接下来可以进行编译,连接。
选择菜单ProjectÆBuild target或单击图标对当前工程进行连接。
编译过程中的信息将出现在输出窗口中的Build页,如果源程序中有语法错误,会有错误报告出现,单击该行会有相应的错误报告出现。
编译成功后提示获得*.hex文件,该文件可被编译器读入并写入芯片中,同时还产生了一些其他相关文件可用于Keil的仿真与调试。
在对工程成功编译,连接后,按F5或点击菜单Debug Start/Stop Debug Session或单击图标即可进入调试状态。
¾软件仿真即则按图3所示对工程进行设置¾硬件仿真1.片内FALSH仿真(编译通过后要先DOWNLOAD到FLASH然后在仿真)¾如图2选中Use On-chip ROM;¾如图4选择Use OCDS Driver for XC16x;¾如图5所以设置FLASH(注意起始地址);2.片外RAM仿真¾如图2取消选中Use On-chip ROM,设置片外ROM,RAM起始地址和大小;¾如图4选择Use OCDS Driver for XC16x;编译1.单步运行与全速执行下图6为编译窗口。
在程序调试过程中可根据需要选择全速运行和单步运行。
这里需要明确两个概念,单步执行与全速执行。
全速执行指一行程序执行完后紧接着执行下一行程序,中间不间断,这样执行速度很快,可以看到整段程序执行的效果,即最终结果正确与否;如果程序有错则很难确定错误出在哪一行。
单步执行指每次执行一行程序,执行完后即停止,等待命令执行下一行程序,这样可以看到程序执行的结果即是否与所要得到的结果相同,方便发现错误。
在整个程序调试过程中这两种方法都要用到。
如果只靠单步运行来查错有时是困难的,比如遇到循环语句或延迟程序时不可能靠重复执行单步运行来跳过循环段,这时可以采取以下几种方法:1)用鼠标在子程序的最后一行点一下,使光标定位在该行,然后用菜单Degug->Run to Cursor line 即可全速执行完黄色箭头与光标之间的程序段。
2)在进入子程序后,点击Debug->Step Out of Current Function 则全速执行完调试光标处的子程序或子函数后指向主程序中的下一行。
2 设置断点程序调试时,一些程序行需要满足一定的条件才执行(如某变量达到一定值,按键被按下,中断产生等),这些条件往往是异步发生和难以预测的。
这时就要使用到程序调试中一个非常重要的方法―――断点设置。
设置断点的方法很多,可以通过在某程序行首双击即可设置断点或通过菜单Debug->Insert/Remove Breakpoint来设置。
KEIL还提供了多种设置断点的方法,单击菜单Debug->Breakpoints将弹出对话框来对断点进行设置。
图6在Expression中添加条件语句,这里可以使用==,<=,>=,!=,&(两值按位与),&&(两值与)等运算符号。
也可键入如“Delay”的字样来设置断点。
3.程序调试时常用窗口1)存储器窗口存储器窗口可以显示任何地址的值,在Address栏中添加地址即可查看相应的值。
2)工程窗口寄存器页该寄存器页包括了当前的工作寄存器组和系统寄存器,当程序执行到对该寄存器操作时,该寄存器会以反色(蓝底白字)显示图73)观察窗口如果需要观察其他寄存器的值或在高级语言编程时查看变量则要借助于观察窗口了,按F2或双击鼠标左键,将需要查看的寄存器或变量输入,即可在程序运行过程中看到其变化过程。
图8辅助工具KEIL 提供了一些辅助工具,如外围接口,性能分析,变量来源分析,代码作用分析等。
这部分工具并不是用于程序调试的,而是可以帮助我们完成程序的调试和程序性能的分析。
为了能够比较直观的了解单片机的定时器,串行口,并行口,中断等外设,KEIL提供了一些外围接口的对话框,通过Peripherals 菜单的下拉菜单选择所要查看的外设资源。
在编译,连接进入调试后,在全速运行时可以看到相应外设的变化情况。
如图9为外围接口资源。
图9以上只是我在学习XC164CS单片机及使用Keil C166的一些体会,希望与大家在论坛上多多交流,共同进步!作者: 尹颖版权所有:北京乾勤科技发展有限公司。