




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
KeilKeil提供各种窗口如一、程序调试时的常用Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(OutputWindows、观察indowsindow图1调试窗口(命令窗口、器窗口、观察窗口1、器窗器窗口中可以显示系统中各种内存中的值,通过在Address后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码空间、直接寻址的片内空间、间接寻址的片内空间、扩展的外部RAM空间,数字代表想D:00RAMC:0即可显示从0ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式Double8字节组
图2器数值各种方式显示选图 Unsigned和Signed则分别代表无符号形式和入的I:0,那么00H01H单元的内容将会组成一个整型而如果你输入的是I:1,01H02H图 ModifyMemoryatX:xx用于2、工程窗口寄A、B、DPTR、SP、PSW等,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。每当程序中执行到对某寄存器的3、观察窗A、B、DPTR等,如果需要观,,二、各种窗口在程序调试中
4#include unsignedintsbit voidmDelay(unsignedchar unsignedint
延时for(;DelayTime>0;DelayTime-- void P1.00.1S编译、连接后按Ctrl+F5进入调试,按F10单步执行。注意观察窗口,其中有一个页为内部,该窗口的变量自动变为DelayTime和j。另外两个页Watch#1和Watch#2可以加入自定义的观察变量,点击“typeF2toeditF2Watch#1I,观察它的变化。在程序较复杂,变量很多的场合,这两个自定义观察窗口可以筛选出我们自己感的变量加以观察。观察窗口中变量的值不仅可以观察,还可以修改,以IF2I9F10单步执行,即可以很快执行到P1_0=!P1_0程序行。该窗口显示的变量值可以以十进制或十六进制形式显示,方法是在显示窗口点右键,在快捷菜单中选择如图5所示。点击View->DissamblyWindow可鼠标右键现快捷菜单6MixedMode是以混合方式显示,AssemblyMode是以反程序调试中常使用设置断点然后全速运行的方式,在断点处可以获得各变量值,但却无法知道程序到达断点以前究竟执行了哪些代码,而这要为Keil了在运行程序之前打开调试工具条上的允许代看,
566所示,其中前面标有“-”号的行就是中断以前执行的代码,可以按窗口边的上卷按是否满足我们的要求,即是否确实延时10毫秒,展开工程窗口Regs页中Sys树,其Sec项记录了从程序开始执行到当前程序流逝的秒数。点击RST按钮以复位程序,Sec的值回零,按下F10键,程序窗口中的黄色箭头指向mDelay(10)行,此时,记录下Sec值 ,然后再按F10执行完该段程序,再次查看Sec的值为0. 是0.01秒,所以延时时间大致是正确的。读者可以试着将延时程序中的unsignedint改为unsignedchar试试看时间是否仍正确。注意,使用这能的前提是在项目设置中正确设置Keil串行窗口的应用。该程序实现一个行编缉功能,每键入一个字母,会立即回显到窗SBUFser_init是串行口初始化程序,要使用串行口,必须首先对串行口进行初始化。例3: RI,NEXT如果串口接收到字 ;SBUF中取字 SBUF,A;回送到发送SBUF ;发送完成,转
;中断初始化 在窗口中击鼠标右键,出现一个弹出式菜单,选择“AsciiModeAscii码的方式显示一个串行口,所以Serial2串行窗口不起作用。一介绍,另外还将介绍Keil的部份高级调试技巧。1、接并行端口、串行端口等常用外设的使用情况,Keil提该菜单的下拉菜单内容与你建立项目时所选的CPUSerial(串行口、Timer(定时/计数器)这四个设
图1设备之并行端些框中直观地观察和更改各设备的运行情况。ADELAY100编译、连接进入调试后,点击Peripherals->I/O-Ports->Port1打开,如1所示,全速运View->PeriodicWindowUpdata,这样可以形象地Peripherals->I/O-Ports->Timer0即出现2所示定时/计数器0的接口界面,可以直接选择Mode组图2设备之定时TR0,statusstoprun,如果全速运行程序,此时2、性能分看这个工具如何使用,例5:#includesbit voidmDelay(unsignedchar unsignedintj=0; }voidmDelay1(unsignedchar unsignedintj=0;
void unsignedint 延时 }编译连接。进入调试状态后使用菜单View->PerformanceyzerWindow,打开性能分析框进入该框后只有一项unspecified,点鼠标右键在快捷菜单中选择SetupPA即打开性能分析设置框,对于C语言程序,该框右侧的“FunctionSymbol”下的列表框给出函数符号,双击某一符号,该符号即出现在DefinePerformanceyzer下的编缉框Define按钮,即将该函数加入其上的分析列表框。对于汇编语言源程序,FunctionSymbol下的列表框中不会出现子程序名,可以直接在编缉框中输入子程序名,点击Close关闭窗口,回到性能分析窗口,此时窗口共有4个选项。全速执行程序,可以看到mDelaymDelay1后出现一个蓝色指示条,配合上面的标尺可以直观地看出每Avg的意义,实际上,由于条件的变化,某些函数执行的时间不一定是一个固定的值,借助于这些信息,可以对程序有更详细的了解。下面将mDelay1函数略作修改作一演示。voidmDelay1(unsignedchar staticunsignedchark;unsignedintj=0; k++;看出Min、Max、Avg的意义。3、变量SourceBrowse窗口中提供了完善的管理方法,如过滤器可以分门别类地列出各种类别的变量名,可以对这些变量按Class(组、Type(类型、Space4、代码作用范在你写的程序中,有些代码可能不会被执行到(这是无效的代码,也有一些代码条上的CodeCoverageWindow可打开代码作用范围分析的框,里面有各个模块代码执信息,请参考Keil自带的帮助文件GS51.PDF。1、串行窗口与实际硬件Keil中进行设置。方法是首先在CommandMODEASSIGN命令将串行窗口与实际的串口相关联,下面我们通过一个实例来说明如何操作。例6: JMPSER_INT EA;
ESJMP$ RI,NEXT如果串口接收到字 ;SBUF中取字 SBUF,A;回送到发送SBUF
Keil自带的串行为简单实我们不借助于其它的硬而是PC机上的两个串口互换数COM1发送COM2接收,而COM2发送则由COM1接收,为此,需要做一根连接线将这两个串口连起来,做法很简单,找两个可以插入PC机串口的DIN9插座(母然后用一根3芯线将它2——3——5——接好线把两个插头分别插入PC12PC机上的串口终端调19200,n,8,119200,无奇偶校验,8位数据,1位停止位。在Keil调试窗口的command页中输入:>modecom1>assigncom1行是将串口1(com1)分配给串行窗口。中,说明已接收到了发送过来的数据。切换到uVison,查看串行窗口1,会看到这里的确接收2、从端口送入程序调试中如果需要有信号输入,比如类程序,需要从外界获得数据,由于必须采用一些替代的方法,例如,某电路用P1口作为口,那么可以使用的法是利用接口,打开PORT1,用鼠标在点击相应端口位,使其变为高电平或低电平,法是直接在command页输入port1=数值,以下是一个小小的验证程序。例7: 该程序从P1口获得数据,如果P1口的值是0,那么就让R0的值为0AAH,否则让R0序,注意确保View->PeriodicWindowUpdata处于选中状态,然后在Command后输入PORT1=0回车后可以发现观察窗口中的R0的值变成了0AAH,然后再输入PORT1=1或其它非零值,则R0的值会变为55H。3、直接更改内程序,使用30H和31H作为单元,采入的数据由这两个单元保存,那么我们更了30H和31H单元的值就相当于这个程序到了数据,这可以在内存窗口中直其中地址是指待写入内存单元的地址,而数据则是待写入该地址的数据。例如_WBYTE(0x30,11)会将值11写入内存地址十六进制30H单元KeilKeil的强大功能,不过,对于初学者路的变化,例如数码管点亮、发光管发光等。为了让初学者更好地,笔者利用Keil提供的AGSI这两块仿真板将枯燥无味可以使初学者在没有硬件时就单片机的门槛。图1是键盘、LED显示实验仿真板的图,从图中可以看出,该板比较简P18个发光二P34个按钮,图2码管,16个按键(4*4的成的实验。这两块仿真实验板实际上是两个dll文ledkey.dllsimboard.dll,安装时只要根据需要将这两个或某一个文件拷贝到keil软件的c51\bin设置的方法是点击Project->OptionforTarget‘Target1’打开框,然后选中DebugDialog:Parameter:后的编缉框中输入真板)进行调试,就输入-dledkey,如
2CTRL+F5进入调试,此时,点击菜同样,在设置时如果输入-dsimboard则能够调出如图2的界面。第一块仿真板的硬件电路很简单,电路图已在板上,第二块板实现的功能稍复杂,其键盘和数码显示管部份的电路原理图如图4常用字形码,读者也可以根据图中的接线自行写出其它如、B、C、、E、F等的字形码。除了键18
30123456789
73
驱
hgf dcb以下以一个稍复杂的程序为例,说明键盘、LED显示实验仿真板的使用。该程序实现P3.2的键为开始键,按此键则灯开始流动(由上而下P3.3的键为停止键,按此键则停止流动,所有灯暗,接P3.4的键为向上键,按此键则灯由上向P3.5的键为向下键,按此键则灯由下向上流动。8:UpDownBIT00H;上下行标志StartEndBIT01H起动及停止标LAMPCODEEQU 21H;存放流动的数据代码 CLRStartEnd ACALLKEY JNB ACALLKEYPROC LNEXT:ACALLLAMP DELAY:MOVR7,#100 JBACC.2,KeyStart JBACC.3,KeyOverJBJBACC.5,KeyDown StartEnd;第一个键按下后的处理 CLRStartEnd;第二个键按下后的处理 CLRF0F0, ;将P3口的接有键的四位置1 ;取P3的值 ;将其余4位置1CPLA K_RET;如果为0则一定无键按下 DELAY;否则延时去键抖 CPL B,A确实有键按下,B F0K_RET:; JBStartEnd,LampStartStartEnd=1,JBUpDown,LAMPUP RLA LCALLD500MSLCALLD500MS RR LCALLD500MS下面的一个例子是关于第二块实验仿真板的,演示点亮8位数码管。例9:ORG0000h A DIS DB0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,0FFH RAM58H5FH2-9填充该显示区,然后调用显示程序显示2-9。这里是用了最简单的逐位显示的方式编写的显示程序。能,在需要I/O口长期处于低电平时,你就不必一直用手按着鼠标的左键啦。Keil工程文件的建立、设置与目标文件的获得机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包C过一个集成开发环境(uVision)KeilPentium或以上的CPU,16MB或RAM20M以上空闲的硬盘空间WIN98NTWIN2000WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的者来说是十分必要的,如果CKeil几乎就是你的不二之选(目前在国内你只能买到该软件、而89C51单片机作为主,这种单片机性属于MCS-51系列,其内部有4K的FLASHROM,接4个按钮开关,我们的第一个任务是让接在P1引脚上的发光二极管依次循环点亮。一、Keil工程的建立Keil软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision的图标以启动该软件。UVison启动后程序窗口的左边有一个工程管理窗口该窗口有3个,分别是Files、Regs、和Books,这三个页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)CPUKeil,那么这三个页全是空的。1、源文件的建立AA1
保存该文件,注意必须加上扩展名(asma51为扩展名,这里假定将文件保存为exam1.asm。文本编缉器编写,而且,KeilUltraEdit之类的编缉2、建立工程文件CPUCPU的特性并不完全相同,确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil使用工程(Project)点击“Project->NewProject…”菜单,出现一个框,要求给将要建立的工程起一个存”按钮,出现第二个框,如图2你所用的型号),Keil支持的CPUAtmel89C51芯ATMEL前面的“+”号,展开该层,点击其中的89C51,然后再点击工程窗口的文件页中,出现了“Target可以看到下一SourceGroup1”,源程序加入,点击“SourceGroup13所示。选中其中的“AddfiletoGroup”SourceGroup1”,出现一个框,要求默认Csourcefile(*.c),也就是C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中exam1.asm,要将文件类这样,在列表框中就可以找到exam1.asm文件
23件,这时会出现如图4所示的框,提二、工程的详细设置
4设置框中的Target页面,如5所示,Xtal后面的数值是晶振频可用频率值,对于我们所选的 图5对目标进行设所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。MemoryModelRAM使用情况,有三个选择项,Small是所有变量都在单片RAM中;CompactRAMLarget则是可以使用全部;Operating操作系统)OffChipCodememoryROM的地址范围,OffChipxDatamemoryRAM的地址范围,这些选择项必须根据所用硬件来决定,由用于生成可执行代码文件(可以用编程器写入单片机的HEX格式文件,文件的扩展名初学者易疏忽的,在此特别提醒注意。选中Debuginformation将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。Browseinformation是产生浏览信是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。NameofExecutable用于指定最终生成的目标文件的名字,默认与工程的名字相同,这两工程设置框中的其它各页C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法
6Listing页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列进行细致的调节,其中比较常用的选项是“CCompileListing”下的“AssambleCode”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码。C51页用于对Keil的C51编译器的编译过程进行控制,其中比较常用的是“Code以对代码多至9级优化,默认使用级别试一试。Emphasis是选择编
三、编译、连接如果选择RebuildAlltargetfiles将会代码是的,而Translate….项则仅以上操作也可以通过按钮直8是有关编译、设置的工具Build
89入并写到中,同时还产生了一些其它相关的文件,可被用于Keil的仿真与调试,这时Keil的调试命令、汇编与断点设一、常用调试命令Session调试状态,Keil内建了一个仿真CPU用来模拟执行程序,该仿真CPU功进入调试状态后,界面与编缉状态相比有明显的变化,Debug菜单项中原来不能用令现在已可以使用了,会多出一个用于运行和调试的工具条,如图1所示,Debug菜
1使用菜单STEP或相应令按钮或使用快捷键F11可STEPOVER或功能F10可以中的子程序或高级语言中的函数作为一个语句来全速执行
2行,如图2所示。每按F11,即执行该箭头所指程序行,然后箭头指向下一行,当箭头指LCALLDELAYF11DELAY的第一行。不断按F11键,即可逐步执行延时子程序。D2DJNZR6,D2这一行程序执行六万多次来达到延时的目的,如果用按F11六万多,JMPLOOP行。第三种方法,在开始调试的,按F10而非F11,程序也将单步执行,不同的是,执行到lcall delay行时,按下F10键,调试光标不进入子程序的内部,而是全速执行完该子程序,然后直接指向下一行“JMPLOOP”。灵活应用这几种方法,可以大大提二、汇Keil的调试环境以后,如果发现程序有错,可以直接对源程序进行修改,但是麻烦,为此Keil软件提供了汇编的能力,将光标定位于需要修改的程序行上,用菜单Debug->InlineAssambly…即可出现如图3的框,在EnterNew后面的编缉框内直接输入需更改的程序语三、断点设置
图3汇编窗的功能;Debug->Enable/DisableBreakpoint是开启或暂停光标所在行的断点功能;Debug->DisableAllBreakpoint暂停所有断点;Debug->KillAllBreakPoint清除所有的断点设Experssion后中键入DelayCount当第三次执行到Delay时才停止程序运在ExperssionDelay,在Command后键入printf(“SubRoutine‘Delay’hasbeenCalled\n”)主程序每次Delay程序时并不停止运行,但会在输出窗口Command页输出一行字符,即SubRoutine‘Delay’hasbeen设置断点前先在输出窗口的
图4断点设置4)Commandprintf(“SubRoutineDelay’hasbeenCalled%d用的次数,如SubRoutine‘Delay’hasbeenCalled10times。C源程序语言的调试,表达式中可以直接使用变量名,但必须要注意,设置四、实例调试按0到LY程序不能继续往下执行,同时发现调试工具条上的t按钮变成了红色,说明程序在此不调用的子程序出了差错。为查明出错原因,按t按钮使程停止执行,然后按RST按钮使程序复位,再次按下F10到LY行时,改按1键到下1,可以发现在执行到“DJNZ R6,1”行时,程序不断地从这一行转移到上一行,同时观察左侧的寄存器的值,会发现6的值始终在FFH和FEH之间变化,不会减小,而我们的预期是6的值不断减小,减到0后下执行,因此这个结果与预期不符,通过这样的观察,不难发现问题是因为标号写是否正确,可以先使用汇编功能测试一下。把光标定位于程序行“DJNZ R6,1,打开汇编的框,将程序改为“DJNZR7,0E,即转回本条指令所在行继续执行,其中0EH是本条指令在程序器中的位置,这个值可以通过汇编窗口看到,如图3所示。KeilKeil提供各种窗口如一、程序调试时的常用Windowsindowsindow图1调试窗口(命令窗口、器窗口、观察窗口1、器窗器窗口中可以显示系统中各种内存中的值,通过在Address后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码空间、直接寻址的片内空间、间接寻址的片内空间、扩展的外部RAM空间,数字代表想D:00RAMC:0即可显示从0ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式Double8字节组
图2器数值各种方式显示选图 Unsigned和Signed则分别代表无符号形式和入的I:0,那么00H01H单元的内容将会组成一个整型而如果你输入的是I:1,01H02H图 ModifyMemoryatX:xx用于2、工程窗口寄A、B、DPTR、SP、PSW等,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。每当程序中执行到对某寄存器的3、观察窗A、B、DPTR等,如果需要观,,二、各种窗口在程序调试中
4#include unsignedintsbit voidmDelay(unsignedchar unsignedint
延时for(;DelayTime>0;DelayTime-- void P1.00.1S编译、连接后按Ctrl+F5进入调试,按F10单步执行。注意观察窗口,其中有一个页为内部,该窗口的变量自动变为DelayTime和j。另外两个页Watch#1和Watch#2可以加入自定义的观察变量,点击“typeF2toeditF2Watch#1I,观察它的变化。在程序较复杂,变量很多的场合,这两个自定义观察窗口可以筛选出我们自己感的变量加以观察。观察窗口中变量的值不仅可以观察,还可以修改,以IF2I9F10单步执行,即可以很快执行到P1_0=!P1_0程序行。该窗口显示的变量值可以以十进制或十六进制形式显示,方法是在显示窗口点右键,在快捷菜单中选择如图5所示。点击View->DissamblyWindow可鼠标右键现快捷菜单6MixedMode是以混合方式显示,AssemblyMode是以反程序调试中常使用设置断点然后全速运行的方式,在断点处可以获得各变量值,但却无法知道程序到达断点以前究竟执行了哪些代码,而这要为Keil了在运行程序之前打开调试工具条上的允许代看,
566所示,其中前面标有“-”号的行就是中断以前执行的代码,可以按窗口边的上卷按是否满足我们的要求,即是否确实延时10毫秒,展开工程窗口Regs页中Sys树,其Sec项记录了从程序开始执行到当前程序流逝的秒数。点击RST按钮以复位程序,Sec的值回零,按下F10键,程序窗口中的黄色箭头指向mDelay(10)行,此时,记录下Sec值 ,然后再按F10执行完该段程序,再次查看Sec的值为0. 是0.01秒,所以延时时间大致是正确的。读者可以试着将延时程序中的unsignedint改为unsignedchar试试看时间是否仍正确。注意,使用这能的前提是在项目设置中正确设置Keil串行窗口的应用。该程序实现一个行编缉功能,每键入一个字母,会立即回显到窗SBUFser_init是串行口初始化程序,要使用串行口,必须首先对串行口进行初始化。例3: RI,NEXT如果串口接收到字 ;SBUF中取字 SBUF,A;回送到发送SBUF ;发送完成,转
;中断初始化 在窗口中击鼠标右键,出现一个弹出式菜单,选择“AsciiModeAscii码的方式显示一个串行口,所以Serial2串行窗口不起作用。一介绍,另外还将介绍Keil的部份高级调试技巧。1、接并行端口、串行端口等常用外设的使用情况,Keil提该菜单的下拉菜单内容与你建立项目时所选的CPUSerial(串行口、Timer(定时/计数器)这四个设
图1设备之并行端些框中直观地观察和更改各设备的运行情况。ADELAY100编译、连接进入调试后,点击Peripherals->I/O-Ports->Port1打开,如1所示,全速运View->PeriodicWindowUpdata,这样可以形象地Peripherals->I/O-Ports->Timer0即出现2所示定时/计数器0的接口界面,可以直接选择Mode组图2设备之定时TR0,statusstoprun,如果全速运行程序,此时2、性能分看这个工具如何使用,例5:#includesbit voidmDelay(unsignedchar unsignedintj=0; }voidmDelay1(unsignedchar unsignedintj=0;
void unsignedint 延时 }编译连接。进入调试状态后使用菜单View->PerformanceyzerWindow,打开性能分析框进入该框后只有一项unspecified,点鼠标右键在快捷菜单中选择SetupPA即打开性能分析设置框,对于C语言程序,该框右侧的“FunctionSymbol”下的列表框给出函数符号,双击某一符号,该符号即出现在DefinePerformanceyzer下的编缉框Define按钮,即将该函数加入其上的分析列表框。对于汇编语言源程序,FunctionSymbol下的列表框中不会出现子程序名,可以直接在编缉框中输入子程序名,点击Close关闭窗口,回到性能分析窗口,此时窗口共有4个选项。全速执行程序,可以看到mDelaymDelay1后出现一个蓝色指示条,配合上面的标尺可以直观地看出每Avg的意义,实际上,由于条件的变化,某些函数执行的时间不一定是一个固定的值,借助于这些信息,可以对程序有更详细的了解。下面将mDelay1函数略作修改作一演示。voidmDelay1(unsignedchar staticunsignedchark;unsignedintj=0; k++;看出Min、Max、Avg的意义。3、变量SourceBrowse窗口中提供了完善的管理方法,如过滤器可以分门别类地列出各种类别的变量名,可以对这些变量按Class(组、Type(类型、Space4、代码作用范在你写的程序中,有些代码可能不会被执行到(这是无效的代码,也有一些代码条上的CodeCoverageWindow可打开代码作用范围分析的框,里面有各个模块代码执信息,请参考Keil自带的帮助文件GS51.PDF。1、串行窗口与实际硬件Keil中进行设置。方法是首先在CommandMODEASSIGN命令将串行窗口与实际的串口相关联,下面我们通过一个实例来说明如何操作。例6: JMPSER_INT EA;
ESJMP$ RI,NEXT如果串口接收到字 ;SBUF中取字 SBUF,A;回送到发送SBUF
Keil自带的串行为简单实我们不借助于其它的硬而是PC机上的两个串口互换数COM1发送COM2接收,而COM2发送则由COM1接收,为此,需要做一根连接线将这两个串口连起来,做法很简单,找两个可以插入PC机串口的DIN9插座(母然后用一根3芯线将它2——3——5——接好线把两个插头分别插入PC12PC机上的串口终端调19200,n,8,119200,无奇偶校验,8位数据,1位停止位。在Keil调试窗口的command页中输入:>modecom1>assigncom1行是将串口1(com1)分配给串行窗口。中,说明已接收到了发送过来的数据。切换到uVison,查看串行窗口1,会看到这里的确接收2、从端口送入程序调试中如果需要有信号输入,比如类程序,需要从外界获得数据,由于必须采用一些替代的方法,例如,某电路用P1口作为口,那么可以使用的法是利用接口,打开PORT1,用鼠标在点击相应端口位,使其变为高电平或低电平,法是直接在command页输入port1=数值,以下是一个小小的验证程序。例7: 该程序从P1口获得数据,如果P1口的值是0,那么就让R0的值为0AAH,否则让R0序,注意确保View->PeriodicWindowUpdata处于选中状态,然后在Command后输入PORT1=0回车后可以发现观察窗口中的R0的值变成了0AAH,然后再输入PORT1=1或其它非零值,则R0的值会变为55H。3、直接更改内程序,使用30H和31H作为单元,采入的数据由这两个单元保存,那么我们更了30H和31H单元的值就相当于这个程序到了数据,这可以在内存窗口中直其中地址是指待写入内存单元的地址,而数据则是待写入该地址的数据。例如_WBYTE(0x30,11)会将值11写入内存地址十六进制30H单元Proteus这是我们写作计划的一部分,希望能对PROTEUS初学者有所帮助。同时也望得到的反馈意见,以帮助我们改进(请注明出处)邮箱:co目第一章概 一、进入Proteus 二、工作界 三、基本操 图形编辑窗 预览窗口(TheOverview 对象选择器窗 图形编辑的基本操 参考 参考2作原理图仿真调 四、实例 电路图的绘 五、实例 使用元件工具 使用状态信息 使用 使用仿真信息窗 四、菜单命令简 主窗口菜 方格输出窗口(Grid)菜 Smith圆图输出窗口(Smith)菜 直方图输出窗口(Histogram)菜 第一章概述和SPICE电路仿结合。具有模拟电路仿真、数字电路仿真、单片机及其电路组成的系统SPICE分析于一身的仿真软件,功能极其强大。本章介绍ProteusISIS软件的工作环境和一些基本操作。一、Proteus6ProfessionalISIS6Professional1-1ProteusISIS集成环1-1二、工作界标准、绘图、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、 ProteusISIS的工作界三、基本操坐标系统(CO-ORDINATESYSTEM)ISIS中坐标系统的基本单位是10nm,主要是为了和ProteusARES保持一但坐标系统点状栅格(TheDotGrid)与捕捉到栅格(SnaptoaViewGrid命令在打开和关闭间切换。点与点之ViewX-Cursor命令,选中后将会在捕捉实时捕捉(RealTimeSnap)或者是CTRL+S切换该功能。ViewRedraw命令来刷新显示内容,同时预览窗口中的内容也将被刷新。当SHIFT键,用鼠标“撞击”边框,这会使显示平移。我们把这称为Shift-Pan。预览窗口(TheOverviewPreview特性在下列情况下被激活当为一个可以设定朝向的对象选择类型图标时(例如:Componenticon,DevicePinicon等等当放置对象或者执行其他非以上操作时,cepreview会自动消对象选择器(ObjectSelector)根据由图标决定的当前状态显示不同的内容。显示对象的类型Pick切换按钮,点击该按钮可以弹出库元件选取窗体。通对象放置(Object放置对象的步骤如下(Toceanicon2、根据对象的具体类型选择子模式图标(sub-modeicon。选中对象(TagginganObject)删除对象(DeletinganObject)拖动对象(DragginganObject)象中单独的labels也有效。拖动对象(DragginganObject移动的步骤如下(Tomovealabel)用F4、F3、F2、CTRL+F1键。调整对象大小(Resizingancircuits调整对象的朝向(Reorientingan许多类型的对象可以调整朝向为0,90 ,270 被选中后“RotationandMirror”图标会从兰色变为红色,然后就可以来改变对象的朝向。2、用鼠标左键点击Rotation图标可以使对象逆时针旋转,用鼠标Rotation图标可以象按y轴镜象。RotationandMirror图标是红色时,操作他们将回改变某个对象,即便你当前没有编辑对象(Editinganmouse:连续编辑多个对象的步骤是(Toeditasuccessionofobjectsusingthemouse)1、选择MainMode图标,再选择InstantEdit图标。以特定的编辑模式编辑对象的步骤是(Toeditanobjectandaccessspecialeditmodes:)2、使用键盘通过元件的名称编辑元件的步骤如下(Toeditacomponentbyname:)2、在弹出的框中输入元件的名称(partID确定后将会弹出该项目中任何元件的编辑框,并非只限于当前sheet的元件。编辑完后,画面在OBJECTSPECIFICS这一节中将详细说明对应于每种对象类型的具体编辑操作方式。编辑对象(EditingAnObject编辑单个对象的步骤是(Toeditasingleobjectlabelusingthemouse:)1、选中对象。连续编辑多个对象的步骤是(Toeditasuccessionofobjectlabelsusingthemouse:)1、选择MainMode图标,再选择InstantEdit图标。Styles这一节得到编辑local文本类型的详细内容。拷贝所有选中的对象(CopyingallTagged拷贝一整块电路的方式(Tocopyasectionof移动所有选中的对象(MovingallTaggedObjects)移动一组对象的步骤是(Tomoveasetof你可以使用块移动的方式来移动一组导线,而不移动任何对象。更进一步的讨论可以参照DraggingWires这一节。删除所有选中的对象(DeletingallTaggedObjects)删除一组对象的步骤是(Todeleteagroupofobjects:)画线(WIRINGUP)画线(Wire在两个对象间连线(Toconnectawirebetweentwoobjects)(Sinceitiscommontowishtoconnecttoexistingwires,ISISalsotreatswiresascontinuousconnectionpointsFurthermore,assuchajunctioninvariablymeansthat3wiresaremeetingatapointitalsocesadotforyou.Thiscompleyavoidsambiguitiesthatcouldotherwisearisefrommissingdots.)如果你只是在两个连接点左击,WAR将选择一个合适的线径。但如果你点了接点,然后点路径是是通过左击另接点来完成的。WAR可通过使用工具菜单里WAR命令来关闭。这功能在你想在两个连接点间直接定出对角线重复布线(Wire间布线。双击E、F,以下类同重复布线完全了上一根线的路径。如果上一根线已经是自动重复布线将仍旧自动该路径。offsetandusedforthenewwire。工作,线所连的对象不能有标示,否则ISIS会认为你想拖该对象。移动线段或线段组(Tomoveawiresegmentoragroupof从线中移走节点(Toremoveakinkfromawire)3(如下图Windows窗口,除具有选择执行各种命令的顶部菜单和显示当前状态的底部状Proteus的缩放操作多种多样,极大地方便了我们的设计。常见的几种方式有:完全显示(或者“Origin”命令,也可以点击的按钮或者按快捷键“O”来自己定位新的坐标原点。Devices”框,如图1所示。到单片机PIC16F877,双击“PIC16F8771所示。移到右边的原理图编辑区的适当位置,点击鼠标的左键,就把PIC16F877放到了原理图区。果需要加电源可以点击工具箱的接线端按钮,这时对象选择器将出现一些接线端,如图2所示。号;同理也可以把电源符号POWER放到原理图编辑区。拖动:许多类型的对象有一个或多个属性附着。可以很容易地移动这些使电标左键。一直按着左键就可以拖动到你需要的位置,释放鼠标即可。对象的旋转:许多类型的对象可以调整旋转为或通过xy轴镜的4个按钮。编辑对象的属性:对象一般都具有文本属性,这些属性可以通过一个框进行编辑。Proteus的智能化可以在你想要画线的时候进行自动检测。当鼠标的指针靠近一个对象的连接另接点即可。这就是Proteus的线路自动路径功能(简称WAR),如果你只是在两个连接点用鼠标左击,WAR将选择一个合适的线径。WAR可通过使用里的“WAR”命令按钮来关闭或打开,也可以在菜单栏的“Tools”下找到这个图标。如果你想自己决定走线路径,只需在想要拐ESC或者点击鼠标的右键来放弃画线。具条中图标或者执行ce/NetLabel菜单命令,这时光标变成十字形并且将有一虚线框在工作区内移动,再按一下键盘上的[Tab]键,系统弹出网络标号属性框,在Net项定义网络标号比如放置总线将各总线分支连接起来,方法是单击放置工具条中图标或执行ce/Bus菜单跨接线。多使用于单面板、双面板设计中,特别是单面板设计中使用得。在单面板的设计中,当有些铜膜线无法连接,即使Prote199SE给连通了,进行电气检查也是错的,系统会显示错误标志。通常解决的办法是使用跳线,跳线的长度应该选择如下几种:6mm、8mm和10mm。放置跳ISIS在画导线时能够智能地判断是否要放置节点。但在两条导线交叉时是不放Proteus可以同时编辑多个对象,即整体操作。常见的有整体暑、整体删除暖、整体移动我们还需要一个虚拟仪器——电流表。点击虚拟仪表按钮罾,在对象选择器找到“DC前还需要设置各个对象的属性。选中电源B1,再点击左键,出现了属性框,如图3所示。在“ComponentReference”后面填上电源的名称;在“Voltage”后面填上电源的电动势的值,这里我们设置为12V流超过了丝的额定电流,丝就会熔断。可惜在调试状态下没有修复令。我们可以这样修复:按圃按钮停止调试,然后再进入调试状态,丝就修复好了。首先我们设计一个简单的单片机电路,如图4所示。电路的是单片机AT89C52,C1、C2和晶振B1构成单片机时钟电路。单片机的P1口接8个发光二极管,二极管的正极通过限流电阻接到电源的正极,两个按键SB1SB2一端接到单片机的P3.2、P3.3脚,另一端接地。按下按键SB1时,8个发光二极管从LED1LED8轮流发光。当按下按键SB2时发光二极管出现一个框,如图5所示。点击框的“NEW”按钮,在出现的框找到文件设计好的[]进人调试状态。点击按键SB1,看到发光二极管,是否依次点亮,也试试按键SB2。在这个框里。我们可以设置断点。鼠标点击一下程序语句,此时这个语句变为黑色,点击右SimulationLog8051CPUSFRMemory会出现特殊功能寄存器(SFR)8051CPUInternal(IDATA)Memory出现数据寄存器窗口。比较有用的还是WatchWindow窗口点击一下将出现图9的窗口在这里可以添加常用的寄存器。P1P1P1WatchWindow窗口。我们可发现无论在单步调试状态还是在全速调试状态,WatchWindow的内容都会随着寄存器的变化而变化,这点是很有用的。四、电路图的绘1、将所需元器件加入到对象选择器窗口。PickingComponentsintothe弹出“PickDevices”页面,在“ 将“7SEG-MPX6-CA-BLUE”(6位共阳7段LED显示器)添加至对象选择器窗口最后,在“RES,选中“MatchWholeWords”,如图所示。在“Results”RES完全匹配的搜索结果。双击“RES”,则可将“RES”(电阻)添加至对象选择器窗7SEG-MPX6-CA-BLUE、AT89C51、RES三个元器件对象AT89C51,在预览窗口中,见到AT89C51的实物图,如图所示;若RES或7SEG-MPX6-CA-BLUE,在预览窗口中,见到RES和7SEG-MPX6-CA-BLUE的实物图,如图所示。此时,我们已注意到在绘图中的元器件按钮处于选中状态。 2、放置元器件至图形编辑窗口cingComponentsontothe7SEG-MPX6-CA-BLUE,将鼠标置于图形编辑窗口该对象的欲放位置、单击鼠标左键,该对象被完成放置。同理,将AT89C51RES放置到图形编辑窗口中。如图由于电阻R1~R8的型号和电阻值均相同,因此可利用功能作图。将鼠标移到R1,单击鼠标右键,选中R1,在标准中,单击按钮,拖动鼠标,按下鼠标左键,将对象LEDAR1右端的连接点时,跟着鼠标的指针就会出现一R1的连接点,单击鼠标左键,移动鼠标(不用拖动鼠标),将鼠标的指针同时,线形由直线自动变成了90º的折线,这是因为我们选中了线路自动路径功能。ESC键或者单击鼠标的右键6、给与总线连接的导线贴PART相同的名。 KeilCProteus连接1、假若KeilC与Proteus均已正确安装在C:\ProgramFiles的 里,把C:\ProgramFiles\LabcenterElectronics\Proteus6Professional\MODELS\VDM51.dll到C:\ProgramFiles\keilC\C51\BIN2、用记事本打开C:\ProgramFiles\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:TDRV5=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver")其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重3、进入KeilCμVision2开发集成环境,创建一个新项目(Project),并为该项目选定合适的单片CPU器件(如:Atmel公司的T89C51。并为该项目加入KeilC源程序#defineLEDS6unsignedcharcodeLED_CODES[]= 0x8E,0xFF,0x0C,0x89,0x7F,0xBF//F,空格 void{chari=0;{for(j=3000;j>0;j //LED模型靠脉冲点亮,第i位靠脉冲点亮后,会自动熄来头if(i>5)}}4、单击“Project菜单/OptionsforTarget”选项或者点击 Driver再点击“Setting”按钮,设置通口,在“Host”后面添上“”,如果使用的不是5、Proteus6、KeilC与Proteus连接仿真调五、电路图的绘1、将所需元器件加入到对象选择器窗口。PickingComponentsintothe单击对象选择器按钮如图所示在弹“PickDevices”页面中使用搜索引擎“ 将“74LS37380C51.BUS”和“MEMORY_13_8”,放置到图形编辑窗口,如图所 单击绘图中的导线按钮,在图形编辑窗口,完成导线或总线的标注,如图所示若该总线一旦标注完成,则系统自动在导线编辑页面的“String”栏的下拉菜单中加入以上8组导线名,今后在标注与之相联的导线名时,如AD0,要直接从导线编辑页面的“String”栏的下拉菜单中选取,如图所示;③若标注名为,直接在导线编辑页面的“String”栏中输入单击绘图中的电压探针按钮,在图形编辑窗口,完成电压探针的添加,如图所示结束设置。此番操作意味着,时钟信号发生器给单片机提供频率为12MHz的时钟信号。对象属性编辑页面,如图所示。在“ProgramFile”中,通过打开按钮,添加程序执行文件。 需要多幅图来共同表达一个设计。ProteusISIS能够支持一个设计有多幅图的情况。前面我们所绘图形是装在第一幅图中,这一点我们可通过状态栏中的“Rootsheet1”中得知,下面虚拟逻辑分析仪添加到第二幅图“Rootsheet2”)中。 单击“Design”菜单,选中其下拉菜单“NewSheet”,如图所示。或者单击标准中的新建一幅图按钮,此时,我们注意到状态栏中显示为“Rootsheet2”,表明可以在第二幅图中绘制幅之间的切换,可以使用快捷键“PageDown”或“PageUp”等,可供我们使用。单击绘图中的Inter-sheetTerminal按钮,在对象选择器窗口,选中对象DEFAULT,如图所示,将其放置到图形编辑窗口;在对象选择器窗口,选中对象BUS,如
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年秋季学校德育工作方案
- 羽毛球活动方案创意范本2025年
- 2025年国庆节主题方案参考
- 2025年系统架构师知识产权与标准化备考题库
- 2025年生态棉十孔被项目可行性研究报告
- 2025年玻璃钢复合罐项目可行性研究报告
- 2025年玉米膨化粉项目可行性研究报告
- 天津现代职业技术学院《现代测试技术》2023-2024学年第二学期期末试卷
- 湖南省祁阳县2024-2025学年高三5月学情调查数学试题含解析
- 浙江省宁波市九校2024-2025学年高三调研考试(化学试题)试卷含解析
- 小学语文四年级下册 第四单元 单元作业设计“作家笔下的动物”
- 建筑工地现场安全策划
- 新生儿高胆红素血症诊断和治疗专家共识
- 2024年全国行业职业技能竞赛(电力交易员)备考试题库(浓缩500题)
- 2022年全国森林、草原、湿地调查监测技术规程-附录
- 三级医师查房规范
- 初三物理常识试卷单选题100道及答案
- 儿童主任培训课件
- 护理巡视巡查管理制度
- 给小学生讲医疗知识
- 热力管道吊装专项方案
评论
0/150
提交评论