单片机实验指导书文档格式.docx

上传人:b****6 文档编号:16526881 上传时间:2022-11-24 格式:DOCX 页数:36 大小:2.40MB
下载 相关 举报
单片机实验指导书文档格式.docx_第1页
第1页 / 共36页
单片机实验指导书文档格式.docx_第2页
第2页 / 共36页
单片机实验指导书文档格式.docx_第3页
第3页 / 共36页
单片机实验指导书文档格式.docx_第4页
第4页 / 共36页
单片机实验指导书文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

单片机实验指导书文档格式.docx

《单片机实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

单片机实验指导书文档格式.docx

大约1KHZ

如用于4KHZ以上的超低频时钟系统,如32.768KHZ加CKDIV8编程

注意:

1、当您选择AT89S51/52时,你的系统可能不支持TURBO模式,建议选择FAST以下的模式进行编程。

2、选择TURBO模式可以获得最快的编程速度,但对系统的要求会高,如果出现进入不了编程模式或校验出错,请降低编程速度。

在器件选择框中可以选择合适的编程器件,SLISP已经支持的器件有:

系列

型号

AT89S

AT89S51、AT89S52、AT89S53、AT89S8252

ATTINY

ATTINY12、ATTINY13、ATTINY15、ATTINY26、ATTINY2313

AT90S

AT90S2324、AT90S2343、AT90S1200、AT90S2313、AT90S8515、AT90S8535

ATMEGA

ATMEGA8、ATMEGA48、ATMEGA88、ATMEGA168、ATMEGA8515、ATMEGA8535、ATMEGA16、ATMEGA162、ATMEGA163、ATMEGA169、ATMEGA32、ATMEGA64、ATMEGA128

SLISP编程软件会不断加入ATMEL新推出的所有可串行编程的FLASH存贮器的MCU,但对已经停产的MCU不再进行支持。

二、文件管理操作

文件管理区分成FLASH存贮器和EEPROM存贮器两个部分,FLASH存贮器的文件按键可以选择并打开程序数据文件,SLISP支持INTELHEX格式的数据文件和二进制数据文件。

注意IAREWAVR系统编译后生成的HEX文件有时是以A90为扩展名的,但其仍属于INTELHEX格式文件。

EEPROM存贮器的文件是用于选择并打开写入到EEPROM存贮器的数据文件的,同样支持INTELHEX格式的数据文件和二进制数据文件,注意AVRSTUDIO、ICCAVR产生的EEPROM数据文件都是以EEP为扩展名的。

两个文件按键左边的文本框中显示成功打开文件的路径信息。

三、重载和编辑

重载按键可以实现数据文件的自动重载和刷新,在您进行了新的一次编译后,没有必要每次都重新打开文件。

单击编辑按键可以打开数据缓冲区窗口,如图5。

图5数据缓冲区窗口

在这个窗口,可以对数据缓冲区中的数据进行修改、填充或清零,在窗口右侧还有一个窗口还有一个校验和显示窗口,可以显示缓冲区中数据的校验和,以检查数据有没有改变。

使用保存按键,可以将缓冲区中的数据保存成二进文件或INTELHEX格式数据文件,也可以生成char类型的数组,以方便用户的使用。

四、编程选项

在编程选项中,有重载文件、序列号、擦除、校验芯片ID码、FLASH、EEPROM、内部RC校准、配置熔丝、加密、轮询方式等单选钮,在单击编程按键时,SLISP会对选中的编程选项进行操作,没有选中的选项是不会被执行的。

编程选项中的所有项目,打钩表示选中,不打钩表示没有选中。

AT90S系列芯片,加密后的芯片ID码是无法读出的(总读为000102),因此用户在编程时可以取消ID码校验或先擦除一下,以使编程操作能顺利进行。

如果你选择了需要进一步设置的编程选项,会自动弹出相应的设置窗口,如RC校准窗口(图6),在这个窗口你可设置需要校准的频率和保存的位置及地址。

图6RC校准窗口

图7为配置熔丝窗口:

图7为配置熔丝窗口

在熔丝编程窗口中,检查框打钩表示编程,不打钩表示不编程。

注意对于AVR系列MCU由于0表示编程,所以打钩表示0,在窗口上方也有熔丝设置对应的十六进制数显示。

由于串行编程受SPIEN、RSTDISBL、DWEN等熔丝影响,所以在配置熔丝窗口中这些熔丝是禁止操作的。

五、加密

加密下拉列表框可以选择对芯片的不同加密方式:

AT89S系列:

LockMode1

不加密

LockMode2

禁止外部MOVC指令

LockMode3

禁止外部MOVC指令、校验

LockMode4

禁止外部MOVC指令、校验、EA引脚

对AVR系列:

禁止再编程

禁止再编程、校验

对ATMEGA系列,还有BLB0和BLB1可以选择,用于设置BOOT区和用户区的保密等级:

BLB0Mode1

用户区允许读写

BLB1Mode1

BOOT区允许读写

BLB0Mode2

用户区只读

BLB1Mode2

BOOT区只读

BLB0Mode3

用户区禁止读写

BLB1Mode3

BOOT区禁止读写

BLB0Mode4

用户区只写

BLB1Mode4

BOOT区只写

六、信息及进度条

信息栏中可以显示编程是产生的各种信息,进度条反映当前操作的进度状况。

七、操作按键

擦除:

擦除当前芯片中的程序。

编程:

按照编程选项中的操作,对芯片进行批处理操作。

校验:

用数据缓冲区中的数据对芯片中的内容进行校验。

读取:

读取芯片内容到数据缓冲区。

中止/退出:

在编程时显示为中止,此时单击此键可中止编程的进行;

当编程结束后显示为退出,此时单击此键可以退出SLISP程序。

第二部分Keil软件使用说明

利用KeilSoftware可以开发所有8051系列单片机的嵌入式应用。

KeilSoftware

的8051开发工具提供以下程序,可以用它们来编译C源码,汇编源程序,连接和

重定位目标文件和库文件,创建HEX文件,调试目标程序。

一、uVision2集成开发环境

uVision2IDE是一个基于Window的开发平台,包含一个高效的编辑器,一个项目管理器和一个MAKE工具。

uVision2支持所有的KEIL8051工具,包括C编译器,6过程:

◆全功能的源代码编辑器。

◆器件库用来配置开发工具设置。

◆项目管理器用来创建和维护项目o

◆集成的MAKE工具可以汇编,编译和连接嵌入式应用。

◆所有开发工具的设置都是对话框形式的。

◆真正的源代码级的对CPU和外围器件的调试器。

◆高级GDI(AGDl)接口用来在目标硬件上进行软件调试,以及和Monitor-51

进行通信。

◆与开发工具手册和器件数据手册和用户指南有直接的链接。

二、关于开发环境

uVision2界面提供一个菜单,一个工具条以便快速选择命令按钮,另外还有源

代码的显示窗口,对话框和信息显示。

uVision2允许同时打开浏览多个源文件。

1、项目管理

 

工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。

一个单一的uVision2工程能够产生一个或多个目标程序。

产生目标程序的源文件构成“组”。

开发工具选项可以对应目标,组或单个文件。

  uVision2包含一个器件数据库(devicedatabase),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。

此数据库包含:

片上存储器和外围设备的信息,扩展数据指针(extradatapointer)或者加速器(mathaccelerator)的特性。

  uVision2可以为片外存储器产生必要的连接选项:

确定起始地址和规模。

 2、集成功能

  uVision2的强大功能有助于用户按期完工。

✧集成源极浏览器利用符号数据库使用户可以快速浏览源文件。

用详细的符号信息来优化用户变数存储器。

✧文件寻找功能:

在特定文件中执行全局文件搜索。

✧工具菜单:

允许在V2集成开发环境下启动用户功能。

✧可配置SVCS接口:

提供对版本控制系统的入口。

✧PC-LINT接口:

对应用程序代码进行深层语法分析。

✧Infineon的EasyCase接口:

集成块集代码产生。

✧Infineon的DAVE功能:

协助用户的CPU和外部程序。

DAVE工程可被直接输入uVision2。

三、编辑器和调试器

1、源代码编辑器

  uVision2编辑器包含了所有用户熟悉的特性。

彩色语法显像和文件辩识都对C源代码进行和优化。

可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。

2、断点

  uVision2允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。

用户启动V2调试器之后,断点即被激活。

断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。

在属性框(attributescolumn)中可以快速浏览断点设置情况和源程序行的位置。

代码覆盖率信息可以让你区分程序中已执行和未执行的部分。

3、调试函数语言

  uVision2中,你可以编写或使用类似C的数语言进行调试。

1).内部函数:

如printf,memset,rand及其它功能的函数。

2).信号函数:

模拟产生CPU的模拟信号和脉冲信号。

3).用户函数:

扩展指令范围,合并重复动作。

4、变量和存储器

用户可以在编辑器中选中变呈来观察其取值。

双层窗口显示,可进行以下调整:

1).当前函数的局部变量

2).用户在两个不同watch窗口页面上的自定义变量

3).堆栈调用(callstack)页面上的调用记录(树)(calltree)

4).不同格式的四个存储区

四、创建应用

如何创建一个新的工程?

按如下步骤可建立一个新的工程

1、首先打开Keil软件的开发环境,如下图所示。

2、点击菜单project,选择newproject:

3、输入工程文件的名字,选择你要保存的路径,比如保存到Keil目录里,工程文件的名字为test,如下图所示,然后点击保存。

4、这时弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keilc51几乎支持所有的51内核的单片机,例如,选择Atmel公司的AT89C51,可以选择ATMELAT89C51,然后点击确定。

5、点击确定后,弹出一个对话框,如下:

询问是否复制标准8051启动代码并将其加入已建工程中。

按“是“,进入下一步。

6、接下来要创建一个源程序文件,建立一个汇编或.C文件,如果你已经有源程序文件,可以忽略这一步,点击菜单FileNew:

7、输入一个简单的程序,如下:

8、选择菜单FileSave

9、选择你要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是C程序文件,扩展名为.C,如果是汇编文件,扩展名为.asm(或.a51),如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.txt的扩展名。

这里将文件保存为asm结尾的源程序文件,所以扩展名为.asm,保存为test.asm的名字,点击保存。

10、点击Target1前面的+号,展开里面的内容sourceGroup1:

11、用鼠标右键点击SourceGroup1(注意用鼠标右键),弹出一个菜单,选择AddFilestoGroup

‘SourceGroup1’。

选择刚才编写的文件test.asm

如果在上述目录下看不到该文件,文件类型选Allfiles(*.*),将显示该目录下的所有文件。

12、点击Add按钮,将文件加入工程。

在类型Type一栏,选Assemblylanguagefile。

然后,点击OK按钮,把文件加入工程。

点击CLOSE按钮,关闭该对话框。

出现如下画面。

13、双击test.asm文件,可以打开文件,程序出现变色显示,说明程序已被系统辨识。

五、参数设置

1、接着上图,用鼠标右键点击Target1,选择OptionsforTarget‘Target1’,出现下图:

Xtal(Mhz):

是设置单片机的工作的频率,默认是24.OMHZ,如果单片机的晶振用的是1l.0592Mhz,那么在框里输入ll.0592(单位是Mhz,所以带小数点)。

UseOn-chipROM(0x0—0xfff):

这个选项是使用片上的FlashRom,我们知道At89C51有4k的flashRom,取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果单片机的EA接低电平,表示使用外部Rom,不要选中该项。

我们在这里选中它。

Off-chipCodememory:

表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从Ox8000开始(不要填成8000,如果是8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom。

最多可以外接3块Rom,如果还用了别的地址,就添上。

Off-ChipXdataMemory:

那么可以填上你外接的Xdata(外部数据存储器的起始地址和大小,一般的应用是接一个62256,我们在这里特殊的指定Xdata的起始地址为Ox2000,大小为Ox8000;

CodeBanking:

是使用CodeBanking技术.keil可以支持程序代码超过64k的情况,最大可以有2兆的程序代码。

如果代码超过64k,那么就要使用CodeBanking技术,以支持更多的程序空间.CodeBanking是一个高级的技术,支持自动的Bank的切换,是建立一个大型系统的需要,比如要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术.我们在这里不选中它。

MemoryModel:

用鼠标点击MemoryModel的下拉箭头,会有3个选项。

Small:

变量存储在内部ram里.

Compact:

变量存储在外部ram里,使用页8位间接寻址

Large:

变量存储在外部Ram里,使用16位间接寻址.

一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX@Ri,A或MOVXA,@Ri指令。

如果超过256字节,那么要不断地进行切换的话,就比较麻烦。

Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVXA,@DPTR或MOVX@DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:

也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:

unsignedcharxdataa;

那么变量a就存储在外部的ram.

unsignedchara;

变量存储在内部ram.

假如用Large的模式:

unsignedcharxdataa:

变量存储在外部ram.

这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsignedchara.

那么我们最好选择Small.

CodeRomSize:

用鼠标点击下拉箭头,将有3个选项:

program2KOrless:

适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALLAJMP这些短跳转指令,而不会使用LCALL,LJMP指令,如果你的代码跳转超过2k,那么会出错。

Compact:

2kfunctions,64kprogram:

表示每个子函数的程序大小不超过2k,整个工程可以有64k代码.就是说在main()里可以使用LCALL,LJMP指令,但在子程序里只会使用ACALL,AJMP指令.除非你确认你的每个子程序不超过2k,否则不要用Compact方式。

Large:

64Kprogram:

表示程序或子函数都可以大到64k.使用codebank还可以更大.通常我们都选用该方式.CodeRomSize选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.这里选择Large方式.

Operating:

点击下拉箭头有3个选项:

None:

表示不使用操作系统

RTX—51TinyReal—Time0s:

表示使用Tiny操作系统

RTX—51FullReal—Time0s:

表示使用Full操作系统

Keilc51提供了tiny系统(demo版没有tiny系统,正版软件才有),Tiny是一个多任务操作系统,使用定时器0来做任务切换.一般用11.0592Mhz时,切换任务的速度为30毫秒.如果有10个任务同时运行,那么切换时间为300毫秒.同时不支持中断系统的任务切换.也没有优先级.因为切换的时间太长,实时性大打折扣,多任务情况下(比如5个),轮一次就要150毫秒,150毫秒才处理一个任务,连实现键盘扫描这些事情都不行.更不要说串口接收,外部中断等.同时切换需要大概1000个机器周期,对cpu的浪费很大,对内部ram的占用也很厉害.实际上用到多任务操作系统的情况少之又少.关键是不适用.多任务操作系统一般适合于16位,32位的cpu,不适合8位cpu.

Keil的多任务操作系统的思想值得学习,特别是任务切换的算法,如何切换任务和保存堆栈等,有一定的研究价值.如果熟悉了其切换的方法,可以编写更好的切换(比如将一次切换的时间从30毫秒改为3毫秒,实用性会好一些。

2、编译输出设置(产生.HEX文件)

在上图中,点击OUTPUT,弹出如下界面:

SelectFolderforObjects:

为最后生成的可执行文件,选择文件夹。

NameofExecutable:

对生成的可执行文件进行命名。

CreateHexFile:

选中小方框,编译输出将产生用于最后烧录的Hex文件,不选中,则不会产生。

六、程序调试与仿真

[程序调试]

完成以上工作后,就可以对程序进行调试与仿真了。

具体步骤如下:

1、进行编译,ProjectBuildTarget(RebuildAllTargetFiles,工程包含文件不止一个)。

2、有错误出现,在编译窗口,对错误类型和出错原因有详细说明,双击错误标号,就会定位在程序的相应处,修改错误,保存,再进行编译,直到全部通过为止。

编译完全通过后,就可以进行功能仿真了。

[程序仿真]

1、DebugStart/StopDebugSession

图中,从左边方框中可观察程序运行时,R0—R7,A,B,SP,PC,PSW等特殊功能寄存器的值,便于及时了解运行结果的对错。

还可以观察内部RAM的运行值,例如30H,

VIEWmemorywindow,在地址窗口输入要观察地址,内部RAM(I:

0X00—0X7F)30H单元,I:

0X30H.从下图可以看出,运行结果为3。

外部存储器单元(X:

0X000000—0X00FFFFH)。

除此之外,仿真环境还可以观察、仿真实际外设的运行情况,比如,定时/计数器,串口,P0,P1,P2,P3口,中断等。

观察外设窗口:

点击Peripherals按钮,弹出如下菜单,包含5个功能菜单:

Interrupt:

中断设置与激活。

调试技巧:

外部中断INT0对应于P3.2口线,因此,用鼠标单击PORT3窗口从右向左数第三位(P3.2口线对应的位),每单击两次,触发一次中断,原因是外部中断是下降沿或低电平有效的。

外部中断INT1的试验方法与外部中断INT0基本相似。

I/O-ports:

包含四个端口,即P0、P1、P2、P3。

单击PORT0,将弹出具体窗口,可以观察运行的结果。

用鼠标可对其进行设置,更改运行时的数据。

Serial:

可对串口进行设置,具体如下:

Timer:

对定时器/计数器进行设置。

单击Timer0,出现如下画面。

第三部分实验指导书

实验1、熟悉单片机开发环境

目的:

熟悉单片机的开发环境,掌握掌握单片机的编程和调试方法。

内容:

(1)由拨码开关输入开关量到单片机。

单片机根据不同的开关量输出相应的信号,点亮或熄灭LED发光管。

(2)让小灯进行多种方式显示。

向单片机端口发送不同的数据,点亮LED灯。

所需设备:

51单片机主控模块。

实验原理1:

实验步骤:

连接单片机模块P1口与LED灯的连线,以及P2口与拨码开关模块的连线。

将P2定义为输入,接至拨码

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1