- 1、本文档共99页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9KC51应用
9.0 C51语言简介 与汇编语言相比,用C51语言编写程序具有如下优点: 无需深入了解系统硬件及单片机指令系统; C51编译器自动完成内部寄存器分配、存储空间分配和数据类型处理等细节问题; 语言简洁、表达能力强、表达方式灵活; 程序由若干函数组成,具有完全的模块化结构; 有丰富的库子程序,可减少用户的编程工作量; 可显著缩短编程和调试时间,提高软件开发效率; 程序具有良好的可读性和可维护性; 具有良好的可移植性,应用程序稍加修改就可以移植到其它系统中。 9.0.1 C51程序结构 9.0.1 C51程序结构 9.0.2 C51程序的编辑和编译 第9章 Cx51的数据类型及基本运算 用汇编语言对单片机进行编程其优点是目标程序长度短、速度快,可直接对硬件进行操作,因而在不太复杂的工业控制中得到广泛应用。但使用汇编的麻烦在于它的可读性和可维护性,特别是当程序没有很好注释的时候;汇编程序的移植性也较差;并且,对复杂的控制,汇编语言难以胜任。使用C语言可以很好的解决这些问题。 本章主要介绍国内比较流行的 Keil 公司的编译器 Cx51 所支持的数据类型、运算规则。 9.1.1 C语言程序的基本结构 下面用实例说明C语言程序的基本结构。 /* *filename: simple.c *date: 04-Aug.-2006 */ #includestdio.h #includereg51.h main() { unsigned char a,b,c,sum; a = 5; b = 3; SCON = 0x52; TMOD = 0x20; TCON = 0x69; TH1 = 0x0F3; scanf(%d,c); /* input a decimal interger */ sum = a + b + c; printf(sum=%d\n,sum); /* output sum */ } 这个程序的功能是已知两个数a和b,输入第三个数,然后求和并输出结果。 在C语言中,通过 /* …… */ 作为程序的注释部分,当不能满足注解要求时要另起一行,一般要求以*开头。注释可出现在程序的任何部分。为了编写程序和阅读程序方便,本书中的C语言程序都有注释部分,一般在程序前后各有一部分,程序前面的注释一般表示程序的文件名、以及建立的日期,这样便于从外存储器中找到文件;程序后面的注解一般表示程序的运行情况,输入情况,输出情况,标准的 Cx51 编译器的输入输出为单片机串行通信口。 在本例程序的开始处使用了预处理命令#include,它告诉编译器在编译时将头文件stdio.h和reg51.h读入后一起编译。在头文件stdio. h中包括了对标准输入输出函数的说明,在头文件reg51. h中包括了对8051单片机特殊功能寄存器的说明。所有的头文件说明均位于\keil\C51\INC\。 本程序的主体部分为 main() { … } 其中main是一个函数,而且是一个特殊的函数,所有C语言程序都包含main函数。它实质上是C语言程序的首部。一般函数名后面为参数表,参数表在一对圆括号()之中。main函数可以有参数。本程序中的main函数没有参数,即参数表为空,但一对圆括号()必须有,不能省去。 { }是一对花括号,将构成函数的语句包括起来。C语言中的语句大致分为两类;一类为说明语句,用来描述数据,决定内存的分配;另一类为执行语句,用来描述对数据进行的动作,决定内存的内容。 本程序共有10个语句: unsigned char a, b, c, sum;是说明语句。它说明a、b、c、sum 四个变量都是unsigned char(长度为8位) 类型的变量; a=5;b=3;是两个赋值语句。等号 = 作为赋值运算符,它们分别将5和3 赋给变量 a 和b; SCON=0x52;TMOD=0x20;TCON = 0x69;TH1 = 0x0F3;四句是对8051的串行口进行初始化,因为Keil Cx51 提供的标准的输入输出函数都是通过8051的串口来进行的,因此必须首先对串口进行初始化。 scanf(%d,&c),是一个输入语句。它按十进制(由d指明)给变量 c 输入一个长度为8位的整
您可能关注的文档
- 0102单片机原理与应用技术第1节 指令格式及其符号说明.ppt
- 03-Matlab字符数组.ppt
- 03 程序设计.ppt
- 03-布尔表达式和选择结构.ppt
- 02数据描述与基本操作.ppt
- 04 选择结构程序设计.ppt
- 09第9章 语义分析和代码生成.ppt
- 1-瑞萨启动代码简介.doc
- 08-09-1学期C程序设计(第三版)教材PPT-第5章-讲稿.ppt
- 06过程步使用实例.ppt
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
文档评论(0)