- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六步: 第七步: 第八步: 第九步: 第十步: 第十一步: 第十二步: 程序调试: 程序调试 程序调试 多多操作与实践 谢谢! * 关于keil集成开发环境 Keil是单片机开发的集成环境。 什么是单片机开发? C程序代码 汇编程序代码 Keil开发软件 单片机 编译、链接 生成机器码 外围电路 桥梁 工具 单片机C语言与汇编语言 例: 汇编语言:MOV A #0x55; 机器代码:B8 55 例: C语言: if(x0){y=1;} else{y=-1;} 人的思维: 如果x0成立则做y=1, 否则做y=-1。 汇编语言是低级语言 C语言是高级语言 单片机C语言与汇编语言 C语言的优点: 不需要了解处理器的指令集,也不必了解存储器结构 寄存器分配和寻址方式有编译器管理,编程时不需要考虑存储器的寻址和数据处理等细节 提高程序的可读性 可使用与人思维更相近的关键字和操作函数 程序的开发和调试时间大大缩短 模块化编程,移植性好 51系列C语言与标准C语言 51系列C语言以下简称C51。 C51是对标准C语言的扩展。 主要是针对51系列单片机在特定的硬件结构上进行的扩展。主要扩展: 数据类型 存储类型及存储区 存储器模式 特殊功能寄存器 中断函数 C51 数据类型 主要扩展了四种数据类型 bit 位变量值为0或1 sfr 特殊功能寄存器 字节地址为(0~255) sbit 从字节冲声明的位变量0或1 sfr16 特殊功能寄存器 字节地址为(0~65535) 其余数据类型char enum short long float等与标准C语言相同。 C51 数据类型 例1: bit FLAG=0; 定义位变量FLAG,并初始化为0。 例2: sfr P0=0x80; 定义变量P0,并为其分配特殊功能寄存器地址0x80。 例3: sbit P0_0=0x80; 定义位变量P0_0,为P0变量的最低位,并为其分配特殊功能位变量寄存器地址0x80。 例4: sfr16 SFR_CON=0x10FC; 定义变量SFR_CON,分配特殊功能寄存器地址0x10FC。 存储类型及存储区 8051单片机存储区 内部数据存储区RAM 外部数据存储区RAM 程序存储区ROM 工作寄存器区 位寻址区(16B) 通用数据存储区 SFR特殊功能寄存器及数据区 256字节 128字节 1FH 00H 7FH 20H 30H 2FH 内部数据存储区 存储类型及存储区 每个变量可以明确分配到指定的存储空间,变量的声明中包括了对存储器类型的指定,即指定变量存放的位置。 存储区 描述 DATA RAM的低128字节,可在一个周期内直接寻址 BDATA DATA区可字节,位混合寻址的16字节区 IDATA RAM区的高128字节,必须采用间接寻址 XDATA 外部存储区,使用DPTR间接寻址 PDATA 外部存储区的256字节,通过P0口的地址对其寻址 CODE 程序存储区使用DPTR寻址 存储类型及存储区 DATA区 DATA区的寻址是最快的,所以应该把经常使用的变量放在DATA区;但是DATA区的空间是有限的,DATA区除了包含程序变量外,还包含了堆栈和寄存器组。DATA区声明中的存储类型标识符为data,通常指低128字节的内部数据区存储的变量,可直接寻址。 例: unsigned char data system_status=0 ; unsigned int data system_id[2]; char data tab _string[10]; 存储类型及存储区 BDATA区 BDATA区实际就是DATA区中的位寻址区,在这个区声明变量就可进行位寻址。位变量的声明对状态寄存器来说是十分有用的,因为它可能仅仅需要使用某一位,而不是整字节。BDATA区声明中的存储类型标识符为bdata,指内部可位寻址的16字节存储区(20H到2FH)可位寻址变量的数据类型。不允许声明float和double型。 例: unsigned char bdata status_byte; sbit sta_flag=status_byte^4; 存储类型及存储区 IDATA区 IDATA区也可存放使用比较频繁的变量,使用寄存器作为指针进行寻址,即在寄存器中设置8位地址进行间接寻址。与外部存储器寻址相比它的指令执行周期和代码长度比较短,IDATA区声明中的存储类型标识符为idata,指内部的256字节的存储区,但是只能间接寻址,速度比直接寻址慢 例: unsigned char idata sys
文档评论(0)