ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:294.43KB ,
资源ID:6502071      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6502071.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c51学习Word文件下载.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c51学习Word文件下载.docx

1、sbitP1_0=P10;voidmain()P1_1=0;这个程序的作用是让接在P1.0引脚上的LED点亮。下面来分析一下这个C语言程序包含了哪些信息。1)“文件包含”处理。程序的第一行是一个“文件包含”处理。所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。这里程序中包含REG51.h文件的目的是为了要使用P1这个符号,即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。这是如何做到的呢?打开reg51.h可以看到这样的一些内容:/*-REG51.HHeaderfileforgen

2、eric80C51and80C31microcontroller.(c)1988-2001KeilElektronikGmbHSoftware,Inc.reserved.-*/*BYTERegister*/sfrP0=0x80;P10x90;P20xA0;P30xB0;PSW0xD0;ACC0xE0;B0xF0;SP0x81;DPL0x82;DPH0x83;PCON0x87;TCON0x88;TMOD0x89;TL00x8A;TL10x8B;TH00x8C;TH10x8D;IE0xA8;IP0xB8;SCON0x98;SBUF0x99;BITCY0xD7;AC0xD6;F00xD5;RS10x

3、D4;RS00xD3;OV0xD2;PTF10x8F;TR10x8E;TF0TR0IE1IT1IE0IT0EA0xAF;ES0xAC;ET10xAB;EX10xAA;ET00xA9;EX0*/PS0xBC;PT10xBB;PX10xBA;PT00xB9;PX0RD0xB7;WR0xB6;T10xB5;T00xB4;INT10xB3;INT00xB2;TXD0xB1;RXDSM00x9F;SM10x9E;SM20x9D;REN0x9C;TB80x9B;RB80x9A;TIRI熟悉80C51内部结构的读者不难看出,这里都是一些符号的定义,即规定符号名与地址的对应关系。注意其中有这样的一行(上文中用

4、黑体表示),即定义P1与地址0x90对应,P1口的地址就是0x90(0x90是C语言中十六进制数的写法,相当于汇编语言中写90H)。从这里还可以看到一个频繁出现的词:sfrsfr并标准C语言的关键字,而是Keil为能直接访问80C51中的SFR而提供了一个新的关键词,其用法是:sfrt变量名=地址值。2)符号P1_0来表示P1.0引脚。在C语言里,如果直接写P1.0,C编译器并不能识别,而且P1.0也不是一个合法的C语言变量名,所以得给它另起一个名字,这里起的名为P1_0,可是P1_0是不是就是P1.0呢?你这么认为,C编译器可不这么认为,所以必须给它们建立联系,这里使用了KeilC的关键字s

5、bit来定义,sbit的用法有三种:第一种方法:位变量名地址值第二种方法:位变量名SFR名称变量位地址值第三种方法:位变量名SFR地址值变量位地址值如定义PSW中的OV可以用以下三种方法:OV=0xd2(1)说明:0xd2是OV的位地址值OV=PSW2(2)说明:其中PSW必须先用sfr定义好OV=0xD02(3)说明:0xD0就是PSW的地址值因此这里用sfr就是定义用符号P1_0来表示P1.0引脚,如果你愿意也可以起P10一类的名字,只要下面程序中也随之更改就行了。3)main称为“主函数”。每一个C语言程序有且只有一个主函数,函数后面一定有一对大括号“”,在大括号里面书写其它程序。从上面

6、的分析我们了解了部分C语言的特性,下面再看一个稍复杂一点的例子。例1-2让接在P1.0引脚上的LED闪烁发光ddss.c单灯闪烁程序reg51.h#defineucharunsignedcharuintintP10=P10;/*延时程序由Delay参数确定延迟时间mDelay(unsignedintDelay)i;for(;Delay0;Delay-)for(i=0;iNewProject”菜单,出现对话框,要求给将要建立的工程起一个名字,这里起名为exam2,不需要输入扩展名。点击“保存”按钮,出现第二个对话框,如图2所示,这个对话框要求选择目标CPU(即你所用芯片的型号),Keil支持的C

7、PU很多,这里选择Atmel公司的89S52芯片。点击ATMEL前面的“+”号,展开该层,点击其中的89S52,然后再点击“确定”按钮,回到主窗口,此时,在工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图3所示,选中其中的“AddtoGroup”SourceGroup1”,出现一个对话框,要求寻找源文件。图2图3双击exam2.c文件,将文件加入项目

8、,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图4所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主接口,返回后,点击“SourceGroup1”前的加号,exam3.c文件已在其中。双击文件名,即打开该源程序。图4工程的详细设置工程建立好以后,还要对工程进行进一步的设置,以满足要求。首先点击左边Project窗口的Target1,然后使用菜单“Project-Optiontargettarget1”即出现对工程设置的对话框,这个对话框共有8个页面,大部份

9、设置项取默认值就行了。Target页如图5所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,该值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设。图5MemoryModel用于设置RAM使用情况,有三个选择项:Small:所有变量都在单片机的内部RAM中;Compact:可以使用一页(256字节)外部扩展RAM;Larget:可以使用全部外部的扩展RAM。CodeModel用于设置ROM空间的使用,同样也有三个选择项:只用低

10、于2K的程序空间;单个函数的代码量不能超过2K,整个程序可以使用64K程序空间;可用全部64K空间;这些选择项必须根据所用硬件来决定,由于本例是单片应用,所以均不重新选择,按默认值设置。Operating:选择是否使用操作系统,可以选择Keil提供了两种操作系统:Rtxtiny和Rtxfull,也可以不用操作系统(None),这里使用默认项None,即不用操作系统。OutPut页如图6所示,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件,该文件可以用编程器写入单片机芯片,其格式为intelHEX格式,文件的扩展名为.HEX,默认情况下该项未被选中,如果要写片做硬件实验

11、,就必须选中该项。图6工程设置对话框中的其它各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值,不作任何修改。以下仅对一些有关页面中常用的选项作一个简单介绍。Listing页该页用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“CCompileListing”下的“AssambleCode”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码,建议会使用汇编语言的C初学者选中该项,在编译完成后多观察相应的

12、List文件,查看C源代码与对应汇编代码,对于提高C语言编程能力大有好处。C51页该页用于对Keil的C51编译器的编译过程进行控制,其中比较常用的是“CodeOptimization”组,如图1.7所示,该组中Level是优化等级,C51在对源程序进行编译时,可以对代码多至9级优化,默认使用第8级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别试一试。Emphasis是选择编译优先方式,第一项是代码量优化(最终生成的代码量小);第二项是速度优先(最终生成的代码速度快);第三项是缺省。默认采用速度优先,可根据需要更改。图7Debug页该页用于设置调试器,Keil提供了仿真器和一些硬件

13、调试方法,如果没有相应的硬件调试器,应选择UseSimulator,其余设置一般不必更改,有关该页的详细情况将在程序调试部分再详细介绍。至此,设置完成,下面介绍如何编译、连接程序以获得目标代码,以及如何进行程序的调试工作。编译、连接下面我们通过一个例子来介绍C程序编译、连接的过程。这个例子使P1口所接LED以流水灯状态显示。将下面的源程序输入,命名为exam3.c,并建立名为exam3的工程文件,将exam3.c文件加入该工程中,设置工程,在Target页将Xtal后的值由24.0改为12.0,以便后面调试时观察延时时间是否正确,本项目中还要用到我们所提供的实验仿真板,为此需在Debug页对D

14、ialogDLL对话框作一个设置,在进行项目设置时点击Debug,打开Debug页,可以看到DialogDLL对话框后的Parmeter:输入框中已有默认值-pAT52,在其后键入空格后再输入-dledkey,如图1-8所示。例1-3使P1口所接LED以流水灯状态显示/*McuStudiolsd.c流水灯程序*/intrins.hcharOutData=0xfe;P1=OutData;OutData=_crol_(OutData,1);/循环左移/*延时1000毫秒*/设置好工程后,即可进行编译、连接。选择菜单Project-Buildtarget,对当前工程进行连接,如果当前文件已修改,将先

15、对该文件进行编译,然后再连接以产生目标代码;如果选择Rebuildfiles将会对当前工程中的所有文件重新进行编译然后再连接,确保最终生产的目标代码是最新的,而Translate.项则仅对当前文件进行编译,不进行连接。以上操作也可以通过工具栏按钮直接进行。图9是有关编译、设置的工具栏按钮,从左到右分别是:编译、编译连接、全部重建、停止编译和对工程进行设置。图9编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会有错误报告出现,双击该行,可以定位到出错的位置,对源程序修改之后再次编译,最终要得到如图10所示的结果,提示获得了名为exam3.hex的文件,该文件即可被编程

16、器读入并写到芯片中,同时还可看到,该程序的代码量(code=63),内部RAM的使用量(data=9),外部RAM的使用量(xdata=0)等一些信息。除此之外,编译、连接还产生了一些其它相关的文件,可被用于Keil的仿真与调试,到了这一步后即进行调试。图10程序的调试在对工程成功地进行汇编、连接以后,按Ctrl+F5或者使用菜单Debug-Start/StopDebugSession即可进入调试状态,Keil内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真机的情况下进行程序的调试。进入调试状态后,Debug菜单项中原来不能用的命令现在已可以使用了,多出一个用于运行和调试的工具条,如图11所示,Debug菜单上的大部份命令可以在此找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1串行窗口、内存窗口、性能分析、工具

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2