任务二把程序写入单片机不同的单片机有不同的输入程序方法。一般的单片机需要把程序通过编译器(如keilC51、WAVE6000等)编译为*.HEX文件或*.BIN文件,然后把这个后缀为HEX的文件或*.BIN文件烧录到单片机。【硬件知识】1.Easy51pro编程器原理图2.Easy51pro编程器的特点(1)使用串口通讯,芯片自动判别,编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片89C51控制,不受PC配置及其主频的影响。(2)采用高速波特率进行数据传送,经测试,烧写一片4KROM的AT89C51仅需要9.5S,而读取和校验仅需要3.5S。(3)体积小巧,省去笨重的外接电源适配器,直接使用PC的USB端口提供5V电源。(4)配套软件功能完善,具有编程、读取、校验、空检查、擦除、加密等系列功能。(5)40pin和20pin锁紧插座,所有器件全部以第一脚对齐,无附加跳线,对于DIP封装芯片无需任何适配器。可烧写40脚单片机芯片和20脚单片机芯片。3.Easy51pro编程器与PC的硬件连接(1)通讯电缆与编程器连接好。(2)将9针串口插头插入电脑串口。(3)USB插头插入电脑任一个USB口,此时编程器上LED点亮,表明电源接通。(4)把单片机芯片正确地放到编程器的相应插座上,注意,芯片的缺口要朝向插座的把手方向。4.单片机的程序存储器80C51的程序存储器用于存放程序及表格常数。(1)程序存储器由内、外两部分组成80C51片内有4K字节的程序存储器,其编址为0000H~0FFFH,外部扩展最大支持64K字节。外部EPROM也从0000H开始编址,其编址为0000H~0FFFH,如图2-3所示。因此,80C51单片机内外程序存储器在地址上有重叠。由EA信号来控制内、外程序存储器的选择。1)EA=1时,当PC值在0000H~0FFFH范围内,CPU访问内部存储器;当PC值大于0FFFH范围时,CPU访问外部存储器。2)EA=0时,不管PC值的大小,CPU总是访问外部程序存储器。对于我们做实验,80C51可以满足相关实验对存储空间的要求,不需要再扩展片外的程序存储器。(2)程序存储器以计数器PC作为地址指针程序计数器PC为16位的寄存器,它决定了MCS-51单片机可寻址的最大范围为64K字节,即0000H~0FFFH。PC不属于特殊功能寄存器,没有专门的地址,不能直接访问。(3)程序存储器的入口地址在程序存储器中,0000H~002AH共43个单元用作存储特定程序的入口地址。0000H~0002H这3个单元是系统的启动单元;0003H~000AH外部中断0中断服务程序地址区;000BH~0012H定时/计数器0中断服务程序地址区;0013H~001AH外部中断1中断服务程序地址区;001BH~0022H定时/计数器1中断服务程序地址区;0023H~002AH串行口中断服务程序地址区。(4)指令执行的基本过程1)单片机在工作前,首先必须在存储器中装入程序。所谓程序,就是为了完成某项工作,将一系列指令有序地组合,而指令则是要求单片机执行某种操作的命令。2)指令分为操作码和地址码两个部分,操作码部分规定了单片机操作类型,而地址码部分一般是直接或间接地给出了参与操作的数据的存放地址,所以地址码也可以直接称为操作数。3)单片机完成每项工作,必须有序地执行一系列指令。单片机执行一条指令一般分为取指令、分析指令和执行指令。从存储器中取出指令,并且对指令进行译码,以明确该指令执行何种操作,以及操作数的存放地址(即操作数存放在哪一个单元中),再根据这个地址获取操作数,这是取指令和分析指令阶段。按操作码指明的操作类型对获取的操作数进行操作(也可称为运算),这是执行指令阶段。由于单片机的程序是事先固化在程序存储器中,因此一开机即可执行指令。【软件知识】1.使用WAVE6000汇编软件编译程序使用WAVE6000汇编软件编译程序的步骤如下:(1)打开WAVE编译软件,屏幕显示编译环境如图所示。打开“文件”菜单,选择“新建文件”,在出现的文本编辑区,编写相应的实验程序。编写时输入法必须切换成英文模式。编写完成选择“保存文件”。注意保存文件名为*.asm格式。(2)打开“仿真器”菜单,选择“仿真器设置”。在弹出菜单中“仿真器”左边一列“选择仿真器”选择“S51”,选择“cpu”为8031,8751,8752等均可。点击选择左下角选框“使用伟福仿真软件模拟器”。右下角晶体频率12MHZ(默认)也可手动更改为6MHZ。点击“好”确认上述操作。语言和目标文件选项默认即可。(3)点击“项目”菜单选择“编译”或点击快捷键“F9”。打开“窗口”菜单选择“信息窗口”观察程序编译是否出错。“X”表示错误,“!”表示警告,“√”表示通过。如有出错“X”号提示,鼠标双击信息窗口中“X”号行找到对应指令,进行修改,直至编译正确为止。(4)打开程序所存放的文件夹,即可找到该程序经WAVE6000软件编译后生成的BIN文件和HEX文件。2.使用Easy51pro烧写软件烧写程序首先将Easy51pro编程器与PC进行硬件连接,然后找到Easy51pro烧写软件文件夹,双击运行Easy51Pro.exe。程序启动后,会自动检测硬件及连接,状态框中显示“就绪”字样,表示编程器连接和设置均正常。否则请检查硬件连接和COM端口设置。Easy51pro烧写软件的操作步骤1、程序运行,请先选择器件(点下选框),选择烧写的芯片类型。注意:选择烧写的芯片类型必须和正确插入芯片类型一致。2、单击检测芯片,此时屏幕提示应当有正确的芯片识别代码,否则请检查芯片。(包括芯片的方向和接触的良好)用“打开文件”选择打开要烧写的*.HEX或者*.BIN文件。(一般情况下HEX文件类型居多)选择“(自动)擦除器件”擦除芯片(注意第二次烧写芯片时必须先擦除芯片,否则会烧写出错)选择“(自动)写器件”烧写软件会将读入的*.HEX或者*.BIN文件烧写至芯片的程序存储器。选择“读器件”可以读取芯片中的程序,加密的读不出来。(通过软件显示的程序内容也可判断是否成功烧写)选择“(自动)校验数据”检查编程的正确与否。选择“自动完成”自动执行以上各步骤。程序烧写完成单击“加密”下拉菜单可以选择加密的级数。另外,需要注意的是,编程器通电后,绿色的LED应常亮。在进行通讯的时候,红色的LED应闪亮。如果未出现“编程器就绪”的提示,除检查编程器连接之外,还应该检查软件的设置。单击下方“设置”编程器类型选择“使用EasyISP下载线。串口根据实际进行设置,如COM1。波特率必须设置为28800。其它设置软件默认即可。【实训内容与步骤】点亮任务一实验板中所有LED参考程序:ORG0000HMOVP0,#00H;向P0口送值,使P0.0~P0.7为低电平,点亮所有LED。SJMP$;无任何操作,程序等待。END将此程序通过WAVE6000软件编写,检查无误后编译生成对应的bin和hex文件。硬件连接Easy51Pro编程器。打开Easy51Pro烧写软件找到对应的bin或hex文件进行烧写。将烧写好的芯片安装在实验板上,通电运行测试。【拓展训练】只点亮1个LED,试编写程序并烧写测试。