- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 C语言程序设计 第9章 C语言程序设计 9.1 C51程序的结构特点 9.2 C51的数据类型及存储类型 9.3 C51的基本运算 9.4 C51的构造数据类型 9.5 C51的流程控制语句 9.6 C51的函数 9.7 C51的中断服务函数与寄存器组选择 9.8 C51程序设计举例 9.9 基本技能训练——计数器的C51程序设计与制作 9.1 C51程序的结构特点 1. C语言与汇编语言的比较 单片机的C51编程与汇编语言编程相比,具有以下优点: 1)对单片机的指令系统不要求有任何的了解,就可以用C语言直接编程操作单片机。 2)寄存器分配、不同存储器的寻址及数据类型等细节完全由编译器自动管理。 3)程序有规范的结构,可分成不同的函数,可使程序结构化。 4)库中包含许多标准子程序,具有较强的数据处理能力,使用方便。 5)具有方便的模块化编程技术,使已编好的程序很容易移植。 2. C51程序的结构 先看一个简单的例子。设单片机AT89C51的P1.0口接有一个发光二极管,如图9-1所示。试用C51编程使该发光二极管发光。 #includereg51.h //51系列单片机头文件 sbit led1=P1^0; //声明单片机P1口的第一位 void main() //主函数 { led1=0; /*点亮接在P1.0引脚上的发光二极管LED*/ while(1); /*动态停机,相当于汇编语言中的指令SJMP $ */ } 通过这个例子,可看出C51程序结构具有以下特点。 1)C语言程序是由函数构成的。 2)一个函数由两部份组成。 ①函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型等。一个函数名后面必须跟一对圆括号,即便没有任何参数也是如此。 ②函数体,即函数首部下面的大括号“{}”内的部分。如果一个函数内有多个大括号,则最外层的一对大括号“{}”为函数体的范围。函数体一般包括: a. 声明部分:在这部分中定义所用到的变量,如“sbit led1=P1^0;”。 b. 执行部分:由若干个语句组成。 9.2.3 C51对单片机主要资源的定义 下面举个头文件引用实例。 #includereg51.h //使用的单片机为AT89C51 main() { TL0=0xb0; //访问定时器0,设置时间常数 TH0=0x3c; TR0=1; //启动定时器0 ┅ } 3.扩展I/O端口或片外RAM的直接访问 扩展的片外RAM或I/O端口需要用户自己先定义后才能在语句或函数中使用。现举例如下。 #includeabsacc.h //包含头文件absacc.h,其内部将XBYTE定义为一个指针,指向外部数据存储//器RAM的零地址单元 #define PA XBYTE[0xffec] //将PA定义为外部I/O口,地址为0xffec main() { PA=0x3a; //将数据3AH写入地址为0xffec的存储单元或I/O端口 } 4.定义和使用位变量 C51使用关键字“bit”来定义位变量。这类变量的值是一个二进制位,其定义和使用方法如下。 格式:bit 变量名称; 功能:将变量名称定义为位型变量。 例:bit lock; //将lock定义为位变量 bit dirention; //将dirention定义为位变量 函数既可以有bit类型的参数,也可以有bit类型的返回值。例如: bit func(bit b0,bit b1) { bit a; ┅ return(a); } 在使用位变量时要注意以下几点。 1)使用禁止中断宏命令#progma disable或指定明确的寄存器切换(using n)的函数不能返回位变量值。 2)定义和使用位变量有以下限制: ①不能定义位变量的指针,如:bit *bitno; ②不能定义位数组,如:bit bitarray[10]; ③位变量的存储类型只能是bdata。 3)在程序设计时,对于可位寻址的对象,即既可以字节寻址又可以位寻址的变量,其存储类型只能是bdata。 使用时,要先说明字节变量的数据类型和存储类型。例如: int bdata a; //整型变量a定位在片内数据存储区中的可位寻址区 char bdata b[4]; //字符型数组b定位在片内数据存储区中的可位寻址区 然后,再使用sbit关键字定义其中可独立寻址的位变量。例如: sbit a0=a^0; //定义a0为a的第0位 sbit a12=a^1; //定义a12为a的第1位 sbit
您可能关注的文档
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第1章 单片机基本知识.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第2章 80C51单片机基本结构.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第4章 80C51单片机指.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第5章 程序设计.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第6章 中断系统.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第7章 定时计数器.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第8章 应用系统配置及接口技术.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第9章 单片机的综合应用.ppt
- 单片机应用及控制技术 教学课件 作者 何永艳 主编 吴勤勤 主审 第10章 KeilC51编译器及其应用.ppt
- 单片机应用技术 C语言版 工业和信息化高职高专“十二五”规划教材立项项目 教学课件 作者 李文华 25124 目7并行与串行扩展实践.ppt
- 单片机应用技术 教学课件 作者 廖世海 吴政江 第10章 单片机应用系统设计.ppt
- 单片机应用技术 教学课件 作者 廖世海 吴政江 第11章单片机实验.ppt
- 单片机应用技术 教学课件 作者 陆中宏 等 项目二 定时器控制.ppt
- 单片机应用技术 教学课件 作者 陆中宏 等 项目三点阵显示器.ppt
- 单片机应用技术 教学课件 作者 陆中宏 等 项目四水位水温控制.ppt
- 单片机应用技术 教学课件 作者 陆中宏 等 项目五C语言应用实例.ppt
- 单片机应用技术 教学课件 作者 陆中宏 等 项目一LED流水灯控制.ppt
- 单片机应用技术 教学课件 作者 邱文棣 主编 课件 单片机应用技术 附录篇.ppt
- 单片机应用技术 教学课件 作者 邱文棣 主编 任务1 单片机应用技术 项目1.ppt
- 单片机应用技术 教学课件 作者 邱文棣 主编 任务1 单片机应用技术 项目2.ppt
最近下载
- 2025年安徽皖江高速公路有限公司高速公路收费人员招聘笔试模拟试题及答案解析.docx VIP
- T GXTC 0014—2024 新式(现制)茶饮 茉莉花茶基底茶.pdf VIP
- 急性视网膜坏死综合征.pptx VIP
- 正常人体解剖学资料.pdf
- 《相遇问题》(说课稿)-2024-2025学年四年级上册数学青岛版[001].docx VIP
- 外伤性感染性眼内炎防治专家共识(2023年版)PPT.pptx VIP
- 第1节 功(教学课件)物理沪粤版2024九年级上册.pptx VIP
- 违规接受吃请检讨书(推荐).docx VIP
- 2024新人教版一年级数学上册认识立体图形第三单元教材整体分析.pdf VIP
- 密码技术应用员理论知识题及答案.doc VIP
文档评论(0)