- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机的C51语言基础 ;51汇编语言能直接操作单片机的系统硬件,指令执行速度快。但其程序可读性差,且编写、移植困难。 ;C51是为51系列单片机设计的一种C语言,其优点:;相同之处:
语法规则、程序结构、编程方法
不同之处:;C51的程序结构
C51的数据结构
C51与汇编语言的混合编程
C51仿真开发环境
C51初步应用编程 ;① 程序由函数组成(一个主函数,或一个主函数和若干自定义函数);
② 利用预处理命令对变量或函数进行集中定义或说明;
③ 函数和变量都需遵循先定义后使用的基本原则;
④ 主函数中的所有语句执行完毕,则程序结束。 ;举例:LED闪烁控制功能;预处理命令---------;C51的程序结构
C51的数据结构
C51与汇编语言的混合编程
C51仿真开发环境
C51初步应用编程 ;1. C51的变量 ;【存储种类】 数据类型 【存储类型】 变量名;【存储种类】 数据类型 【存储类型】 变量名;数据的不同格式叫做数据类型 ;C51扩充数据类型:bit、sfr或sfr16、sbit ;sfr或sfr16型;例如,sfr P0 = 0x80; //定义P0口地址80H
sfr PCON = 0x87; //定义PCON地址87H
sfr16 DPTR=0x82; //定义DPTR的低端地址82H;sbit型; 1)将SFR的绝对位地址定义为位变量名
sbit bit_name = 位地址常数;
例如, sbit CY = 0xD7; ;C51编译器在头文件“REG51.H”中定义了全部sfr/sfr16和sbit变量。;应用举例:;【存储种类】 数据类型 【存储类型】 变量名;建立C51存储类型与存储空间的对应关系;C51的存储类型与存储空间对应关系表 ;三种编译模式分别对应于三种缺省存储类型:;;变量名可以由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,变量名长度随编译系统而定。 ;C51扩展的若干关键字一览表 ;unsigned char data system_status = 0; ;unsigned char bdata status_byte; ;; C51 中的头文件与C语言类似,区别在于包含文件中多了一组与MCS-51系列硬件相关的头文件,对MCS—51系列单片机的内部资源说明。 C51 中的头文件通常有:
reg51.h或reg52.h: 定义特殊功能寄存器和位寄存器;
math.h: 定义(声明)常用数学运算函数;
ctype.h:定义字符判断转换库函数
stdio.h:定义输入输出流函数
stdlib.h:定义存储器分配函数
absacc.h:定义了8个宏,确定各存储空间的绝对地址
string.h:定义缓冲区处理函数
assert.h---定义宏,可以用来建立程序的测试条件函数
intins.h---包含指示编译器产生嵌入式固有代码的程序的原型函数
setjmp.h---定义jmp_buf类型和setjmp和longjmp程序的原型函数
stdarg.h---可变长度参数列表函数;Keil C51的库函数
C-51软件包的库包含标准的应用程序——可直接调用的库函数,调用这些库函数可以使程序代码简单、结构清晰、易于调试和维护。
每个函数都在相应的头文件(.h)中有原型声明。如果使用库函数,必须在源程序中用预编译指令定义与该函数相关的头文件(包含了该函数的原型声明)。例如: #include intrins.h ;定义本征库函数;Keil C51的库函数
C-51库函数可分为本征库函数和非本征函数。
本征库函数:是指在编译时直接将固定的代码插入当前行,而不是用ACALL或LCALL进行函数调用(类似于宏的处理),从而大大提高了访问效率。Keil C51的本征库函数只有9个,数量虽少,但非常有用。本征库函数在头文件intrins.h中定义。
非本征函数:并不是把固定代码插入当前行,而是通过ACALL或LCALL进行函数调用。;1. 本征库函数:9个
(1)_crol_和_cror_:将char型变量循环左/右移动指定位数后返回。
(2)_irol_和_iror_:将int型变量循环左/右/移动指定位数后返回。
(3)_lrol_和_lror_:将long型变量循环左/右/移动指定位数后返回。
(4)_nop_:相当于插入汇编指令NOP。
(5)_testbit_:相当于JBC指令。
(6)_chkfloat_:测试并
您可能关注的文档
最近下载
- 临床输血操作技术规范、输血制度(2025版).pptx VIP
- 部编版四年级上学期语文期末整理分类复习强化练习题〔有答案〕.doc VIP
- 公路养护及占道施工作业安全检查表、人员、车辆、机具设备管理用表、进、出场登记表、安全设施图表.pdf VIP
- 医院设备故障应急处理流程.docx VIP
- 植物学课程课件:植物系统学与分子进化.ppt VIP
- 部编版语文四年级上册第16课《麻雀》 配套练习(含解析).pdf VIP
- 82页精益制造数字化转型智能工厂三年规划建设方案PPT.pptx VIP
- 成人癫痫持续状态护理专家共识解读PPT课件.pptx VIP
- JSCC B系列变频器产品手册.pdf VIP
- 认识医生和护士幼儿园助教幼儿园医学科普.pptx VIP
原创力文档


文档评论(0)