实验一 常用8051单片机仿真编译软件使用方法.doc_第1页
实验一 常用8051单片机仿真编译软件使用方法.doc_第2页
实验一 常用8051单片机仿真编译软件使用方法.doc_第3页
实验一 常用8051单片机仿真编译软件使用方法.doc_第4页
实验一 常用8051单片机仿真编译软件使用方法.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 常用8051单片机仿真编译软件使用方法一实验目的:熟悉和掌握8051单片机常用的仿真编译软件uVision2的使用方法。uVision2也称Keil C51,此软件功能强大,不但能编译8051的C语言和汇编语言源程序,而且能够进行软件仿真,对于一般的工程项目可以完全不用硬件仿真器。本实验要求编写一个简单的程序并进行软件仿真和在线下载。二实验原理: Keil C51的操作界面如实验图1-1所示,下面我们用一个简单的例子来了解Keil的使用,以课本图7-2为例图1-11. 首先是新建一个 LED1.C文件(File| New意义是在File主菜单中选择 New,下同。)然后写入你的程序,保存。2. 由(Project | New Project)建立新工程,按程序要求输入工程名,如 LED1(默认后缀是.uv2,Target1 的文确定后弹出对话框提示你选单片机,比如可以选Atmel的89C52,然后确定;如实验图1-2所示。图1-23. 由(View |Project Window)打开Project Window,在工程管理区显示有一个Target1 的文件夹,单击其前面的号打开该文夹,可看到有一个名为Source Group1的子文件夹,右击它,在弹出菜单里选择Add Files to Group Source Group1, 在弹出打开对话框里选中刚才建立的LED1.C文件,确定后,再用Close关闭对话框,你可以看到Source Group1的子文件夹里有文件了(就是刚才那个加进去的LED1.C文件)。双击将它打开,这时如果程序的保留字没有加亮,可以用(View Option)打开对话框,选default,确定就行了,当然你可以按你的习惯选其他的;4 开(Project | Options for Target Target 1),在 Xtal (MHz)后面的文字框中填入你的系统所用晶体振荡器频率,如11.0592,(如图1-3所示)。然后切换到Output页,在Creat HEX File复选框上打勾,然后确定(如图1-4所示)。这样Keil C51编译器就可以输出单片机的可执行文件LED1.HEX了。图1-3图1-45此你可以看到(Project Build)菜单或按钮栏可用了。选择它(或按F7)编译。相应的错误和提示将在最下一栏框里显示出来,你可以根据提示进行修改程序错误,你在改正程序中的所有错误后编译通过(如图1-5所示)后;然后按下Debug Start/Stop Debug Session菜单和相应的按钮就可用了,选择它就可以开始进行软件调试了。图1-56 软件调试LED1.c。所谓软件调试,就是用PC机的资源模拟出单片机的工作环境,在屏幕上直观地看到单片机的运行状态,这样可以找到大部分软件错误。按下Debug 按钮后,屏幕左边的 Project 窗口会变化,会显示出 CPU内部寄存器状态和系统参数,源程序旁边会出现一个黄色的箭头,指向CPU复位操作后将要执行的第一条C语言指令,左边椭圆圈内是系统复位后运行的时间,读者可以试试单步运行程序(Debug Step Over)或F10,黄色箭头会向下移动,同时左边椭圆圈内系统运行时间也会相应变化,(如实验图1-6所示),这个时间相当准确,读者可以据此调节软件延时的时间。图1-6 7、用Debug观察I/O口状态。在(Peripherals I/O Ports)选择Port 1,屏幕上会出现P1 口的示意图,然后在 (View Periodic Window Update )选项前打勾,全速运行( Debug | Go)程序LED1,或按F5,读者可以自己看运行结果,屏幕上P1口的变化速度和软件延时长度、电脑的运行速度有关。8、将 Keil C51 产生的 LED1.hex 通过商用编程器烧入你所用的芯片如 89C52 中;将芯片插回电路板,通电,发光二极管将按照我们的意愿闪烁。也可以选用带有在线下载ISP功能的51芯片,如Atmel的89F52,SST的89C58和Philips的P89C51RD2进行在线下载。 注意,这个实验如果用限制版的Keil C51 编译,就必须使用内部程序存储器空间大于4K的8051衍生品种,如ATMEL的89C52,SST的89C58和飞利浦P89C51RD2等三实验内容: 将一个简单的程序通过8051单片机仿真器Keil C51写入实验板中。四 实验电路图:图1-7五 实验方法:1. 按照上面的步骤将课本上图7-2的程序用Keil C51编写,编译、调试通过后下载到Atmel 89C52芯片中去,看看得出的结果和编写程序的目的一致。2 如图所示是 MCS51最小系统 电路图描述如下:在8051的P1.3脚上接一个发光二极管和限流电阻,这也是MCS51单片机最小系统:C2,C3,X1是CPU时钟;C1,R1是复位电路,31脚EA接5V表示CPU芯片内部的程序将被执行,C4是电源滤波电容。以上相关器件接线是维持89C52CPU正常工作的必要条件。写一段软件使这个发光二极管每隔约0.3秒闪烁一次。下面将直接给出源程序,请读者仔细阅读它的注释。标准 C 语言中是没有比特变量的,8051 单片机中丰富的位处理功能如果不用那么将对编程效率是个很大的损失。Keil C51扩展了标准C语言,很好的支持了8051特有的位处理功能。如上程序中提到的sbit关键字,除了定义引脚以外还可以定义所有的特殊功能寄存器中可以位寻址的变量。如定义这是一个完整的8051的C 源程序,请注意主函数中的闭合循环(死循环),因为单片机中没有其他软件,也就没有PC机C语言中所谓退到DOS或WINDOWS的概念,如果程序中没有闭合循环,程序执行的结果将不可预计。如果是用汇编语言编写,源程序如下。六 参考程序:1 汇编源程序ORG 0000HJMP STARTSTART:MOVR1,#75HMOV P1,#08H;输出低电平使LED熄灭DARK:MOVR0,#0FFHDARK1:DJNZR0,DARK1 DJNZR1,DARKMOVP1,#00H;P1.3输出电平点亮LEDMOVR1,#75HLIGHT:MOVR0,#0FFHLIGHT1:DJNZR0,LIGHT1DJNZR1,LIGHT;延时JMPSTARTEND2 C语言源程序/* 文件名: outp.c* 描 述: P1口输出,点亮发光二极管*/#include /标准8051头文件,定义了所有的特殊寄存器SFR sbit LED = P13; /定义引脚的方法,如果要定义其他引脚,如P3.2看下一行 sbit button = P32; void main(void)/主函数无返回值 int j; /定义了一个整型变量 while(1) /一个完整的单片机程序必须是死循环 LED=0; /将引脚清零因此点亮发光二极管 for(j=0;j30000;j+);/空循环延时 LED=1; for(j=0;j30000;j+); 七 程序下载方法一:程序在KEIL编译通过后生成HEX文档代码,可以利用专用的程序烧入装置,完成芯片的烧入。当然也可以选用具有ISP功能的PHILIPS的P89C51RA2(8K)、P89C51RB2(16K)、 P89C51RC2(32K)或P89C51RD2(64K)芯片,通过计算机的串行口将程序下载到芯片中去,实现芯片的程序的在线下载。下文对上述4种芯片统称P89C51RX2。常用的下载软件如WINISP和中文版本的ZLGISP在线下载是调试实验程序,验证程序结果经常使用的方法。那么下面就简单介绍一下WINISP的使用方法。启动WINISP,WINISP的启动后的画面如图1-8所示:图1-8可以看到左边一列按钮是灰的。在Chip 下拉组合框中选中实验板所使用的芯片如:P89C51RD2,这个时候左边的一列按钮已经有效了,但是还要在Port 下拉组合框中选择你的串口电缆连接的计算机的串口号COM1(或COM2),在Osc(MHz)中输入11.0592MHz,先短接实验板上的PSEN 跳线,然后需要按下RESET按钮,串行口电缆已连接计算机和实验板,并且实验板已经与电源接通,并打开。在Misc 组框中有Vector 和Status 两个文本框,默认分别是FC 和FF,这两个值是为了P89C51RX2 实现ISP 功能而设置的。实际上为了实验板交给用户的时候Status 已经预先改写为了00。用户可以单击Read 按钮读出这两个值,但是切记不要单击Write 按钮,如果读者拿到新的P89C51RX2芯片,正常读出的值是FC和FF,说明芯片已经进入ISP状态,这时可以把STATUS值从FF改成00,然后按WRITE写回芯片中激活ISP 功能。如果把其他值写入STATUS和VECTOR,将就会导致芯片ISP 功能失效。那么我们就来看看如何将程序代码写入P89C51RX2。1 单击Erase Blocks 按钮用来擦除闪存内容,出现如下所示对话框。左边一列蓝色的方块表示P89C51RX2 内部64K 闪存的分块结构。单击某一块会在该块上面出现黑色的网格。从上到下的块地址分别是0X00000X1FFF,0X20000X3FFF,0X40000X7FFF,0X80000XFFFF。Select All 按钮用来选中全部块,Deselect All 则相反。选中您想要擦除的块,单击右边的ERASE!按钮,如果通讯正常,被选中的块将会红色蓝色变换闪烁,表示正在擦除中。切记不要单击Full Chip ERASE!按钮,否则P89C51RD2 的ISP 功能将会失效。擦除完之后对话框会自动关闭。图1-92 点击主界面的Load File 按钮(建议先点击Fill Buffer 按钮,将主界面右侧的数据缓冲区首先填满0xFF),向Win ISP 的缓冲区装入欲下载的程序文件(*.hex文件)。假定加入文件名LED.hex,单击打开按钮,主界面右侧的数据缓冲区会显示当前选定的hex 文件的内容。该缓冲区不能被编辑。3 单击左边的Program Part 按钮,则进入ISP 编程过程,此时主界面左边的一列按钮将会变灰色,在Status Display 一栏显示中着当前的编程进度.当编程完成后,PC 的蜂鸣器会嘀地一声响,同时Status Display 栏显示编程成功的信息,提醒用户编程完成.4 程成功完成后,可单击Verify Part 校验编程结果是否和当前的数据缓冲区内容相同,也可以点击Read Part 按钮,将会读回当前P89C51RD2 的闪存内容到数据缓冲区。如果不需要,可以跳过这一步,直接到下一步。5 把试验板断电,拔下跳线,重新上电,此时就会运行刚才下载的程序代码。下载成功!注意事项:一旦P89C51RX2 的Boot Vector 或Status Vector被改写为其他的值,ISP 功能将很可能失效,此时只能用商用的编程器将其分别重新改写回0xFC 和0x00 才能恢复ISP 功能。方法二:在KEIL C51生成HEX代码之后除了使用WINISP下载之外还可以使用ZLGISP在线下载。ZLGISP 下载编程器为用户应用 Philips MCU 器件提供一种价廉实用的编程工具,该设备用于对 Philips Flash 型 MCU 进行程序下载,也可作为学习 Philips MCU 的简单工具。首先我们来看看ZLGISP的下操作界面。1 2 3 4图1-101. 单片机芯片选择,本下载工具只支持PHILIPS的CPU。2. PHILIPS具体芯片选择,支持的芯片达18种之多。3. 下载串行口的选择,COM1- COM2。4. 串行下载波特率选择,范围从2400-145200。在操作界面的最左边有6个功能设置按键,各个按键的具体功能是如下介绍:1. 设置:在设置配置参数组框中有Vector 和Status 两个文本框,默认分别是FC 和FF,这两个值是为了P89C51RX2 实现ISP 功能而设置的,用户可以单击Read 按钮读出这两个值,如果读者拿到新的P89C51RX2芯片,正常读出的值是FC和FF,说明芯片已经进入ISP状态,这时必须把STATUS值从FF改成00,然后按WRITE写回芯片中激活芯片的ISP功能。如果把其他值写入Vector和 Status,将导致其ISP 功能失效。图1-11而bit1、bit2、bit3、则是是写入单片机的加密控制字节。2.查空:在单片机设置好通讯口以后,就可以通过查空菜单来查询程序在单片机是否是空白芯片,具体的操作界面如下图1-12所示:图1-12左边的对话框可以通过选择具体地址进行查询,当然也可以全部选择芯片的空间。在右边的按页选择则是将单片机内部的空间ROM分为若干个区域,以方便用户查询,当然也可以进行多项的选择,只要在前面的空白处打勾即可。如果通信口设置有错或是连接不上单片机,将会出现通信出错。2. 擦除:用来擦除闪存内容,出现如下所示对话框。右边一列文本框方块表示P89C51RD2 内部64K 闪存的分块结构。单击某一块会在该块前面的空白处打勾,可以多项选择,也可以选择左边的全部芯片空间的选项。从上到下的块地址分别是0X00000X1FFF,0X20000X3FFF,0X40000X7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论