教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 实用模板 >

单片机实验指导书 - 图文(2)

来源:网络收集 时间:2026-08-07
导读: 5、 点击确定后,弹出一个对话框,如下:询问是否复制标准8051启动代码并将其加入已 建工程中。按“是“,进入下一步。 6、 接下来要创建一个源程序文件,建立一个汇编或.C文件,如果你已经有源程序文件,可 以忽略

5、 点击确定后,弹出一个对话框,如下:询问是否复制标准8051启动代码并将其加入已

建工程中。按“是“,进入下一步。

6、 接下来要创建一个源程序文件,建立一个汇编或.C文件,如果你已经有源程序文件,可

以忽略这一步,点击菜单File?New:

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

8、 选择菜单 File?Save

9、 选择你要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,如果是C程序

文件,扩展名为.C,如果是汇编文件,扩展名为.asm(或.a51),如果是ini文件,扩展名为.ini,其他文件类型,比如注解说明文件,可以保存为.txt的扩展名。这里将文件保存为asm结尾的源程序文件,所以扩展名为.asm,保存为test.asm的名字,点击保存。

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

11、用鼠标右键点击Source Group1(注意用鼠标右键),弹出一个菜单,选择Add Files to Group ?Source Group1?。 选择刚才编写的文件test.asm

如果在上述目录下看不到该文件,文件类型选All files(*.*),将显示该目录下的所有文件。 12、点击Add按钮,将文件加入工程。

注意:在类型Type一栏,选Assembly language file。

然后,点击OK按钮,把文件加入工程。点击CLOSE按钮,关闭该对话框。出现如下画面。

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

五、参数设置

1、 接着上图,用鼠标右键点击Target 1,选择 Options for Target ?Target1?,出现下图:

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

Use On-chip ROM(0x0—0xfff):这个选项是使用片上的Flash Rom,我们知道At89C51有4k的flash Rom,取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果单片机的EA接低电平,表示使用外部Rom,不要选中该项。我们在这里选中它。

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

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

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

Memory Model:用鼠标点击Memory Model的下拉箭头,会有3个选项。 Small:变量存储在内部ram里.

Compact:变量存储在外部ram里,使用页8位间接寻址 Large:变量存储在外部Ram里,使用16位间接寻址.

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

用MOVX@Ri,A或MOVX A,@Ri指令。

如果超过256字节,那么要不断地进行切换的话,就比较麻烦。Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVX A,@DPTR或MOVX@DPTR,A来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先(或默认)存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如: unsigned char xdata a;那么变量a就存储在外部的ram. unsigned char a;变量存储在内部ram.

假如用Large的模式:

unsigned char xdata a:那么变量a就存储在外部的ram. unsigned char a;变量存储在外部ram.

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

那么我们最好选择Small.

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

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

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

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

Operating:点击下拉箭头有3个选项: None:表示不使用操作系统

RTX—51 Tiny Real—Time 0s:表示使用Tiny操作系统 RTX—51 Full Real—Time 0s:表示使用Full操作系统

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

单片机实验指导书 - 图文(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/519947.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)