电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

[高等教育]10112第4章

  • 资源ID:70748077       资源大小:795.81KB        全文页数:32页
  • 资源格式: PPT        下载积分:28金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要28金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

[高等教育]10112第4章

第3章 单片机的C程序设计,本章重点 C51单片机的程序结构; 各种数据类型及变量的定义、存储及运算; C51单片机程序的流程控制; C51单片机函数的定义及调用。 本章难点 构造数据类型的存储结构及具体的灵活应用。,3.1 单片机程序设计概论,C51系列单片机支持三种高级语言,即PL/M、C和BASIC。(各自特点) 单片机的C语言编程特点 C51管理内部寄存器和存储器的分配,编程时,无需考虑不同存储器的寻址和数据类型等细节问题; 程序由若干函数组成,具有良好的模块化结构; 有丰富的子程序库可直接引用,从而大大减少用户编程的工作量; C语言和汇编语言可以交叉使用。 (各自特点) 单片机的C语言编译器 C语言编译器将C语言源代码翻译成可执行代码的软件。 支持C51系列单片机的C语言编译器有很多种,如American Automation、BSO/TASKING、IAR、Keil/Franklin等。 Keil/Franklin以它的代码紧凑和使用方便等特点优于其他编译器,本章针对这种编译器来介绍C51单片机的C语言程序设计。,3.1.3 C51单片机的程序结构,#include /头文件定义 #define PI 3.1415 /常量定义 unsigned char i,j; /全局变量定义 sfr P0 = 0x80; /特殊功能寄存器定义, /一般头文件中已包含 sbit CY = 0xD7; /可位寻址位或引脚定义, /一般头文件中已包含 void Delay(int TimeMs); /函数声明 main() int m,n; /局部变量定义 /初始化程序 while(1) /主循环 void Delay(int TimeMs) /函数实现 /函数实现代码 ,注意事项 C语言是大小写敏感语言; 标识符应该先说明再引用; 任何语句必须以“;”结束; “”必须成对,理论上位置可以随意,为增加可读性应层次分明。,3.2 C51的数据与运算,数据与数据类型 数据:具有一定格式的数字或数值。 数据是计算机操作的对象。 不管使用任何语言、何种算法进行程序设计,最终在计算机中运行的只有数据流。 数据类型:数据的不同格式叫作数据类型。 数据结构:数据按一定的数据类型进行的排列、组合、架构称为数据结构。,C51的数据类型,Franklin C51的数据类型,3.2.2 常量与变量,常量是指在程序运行中其值不变的量。 常量分为数值型常量和符号型常量 数值型常量:i=0x16; 符号型常量:#define PI 3.1415 变量是指在程序运行中其值可以改变的量。 变量由变量名和变量值构成. 变量名即是存储单元地址的符号表示; 变量的值就是该单元存放的内容. C语言定义一个变量,编译系统自动为它分配一个存储单元,具体地址程序员不必关心。 常见变量类型: bit char int float,3.2.3 C51数据的存储类型与存储器结构,存储类型是指数据存放位置,即数据存放在哪个存储器中。 C51共有6种存储类型 变量存储类型定义 data char x char data x,存储器模式是指决定了变量的默认存储器类型、参数传递区和无明确存储区类型的说明。 C51的存储器模式有SMALL、LARGE和COMPACT,3.2.4 特殊功能寄存器(SFR)及其定义,51单片机中,除了程序计数器(PC)和4组工作寄存器组外,其他所有的寄存器均为特殊功能寄存器(SFR),分散在片内RAM区的高128字节中,地址范围为80H0FFH。 SFR中地址能被8整除,即地址以8或0结尾的可以位寻址。 SFR定义(与标准C语言不兼容) sfr sfr-name = int constant; sfr PSW= 0XD0; 位寻址的SFR中的位定义(与标准C不兼容) 第1种格式:sbit bit-name = sfr-nameint constant; sbit CY=PSW7; 第2种格式:sbit bit-name = int constantint constant; sbit CY=0XD07; 第3种格式:sbit bit-name = int constant; sbit CY=0XD7 在reg51.h头文件中,已经对标准51单片机的SFR及可寻址位作了定义。,3.2.5 并行接口及其定义,51系列单片机片内集成4个I/O口,可以在片外扩展I/O口。51单片机片外扩展I/O口与片外数据存储器统一编址,即把一个I/O口当作数据存储器中的一个单元来看待。 片内IO口定义 sfr P0= 0X80; 注:在reg51.h头文件中已定义 片外IO口(相当于1个单元外部数据存储器)定义 #include #define PORTA XBYTE0XFFC0 absacc.h是C51中绝对地址访问函数的头文件。PORTA地址FFC0H,长度8位。,3.2.6 位变量(BIT)及其定义,sbit定义位变量 sbit CY=PSW7; sbit CY=0XD07; sbit CY=0XD7 bit定义位变量 bit tt; bit和sbit差别 Sbit明确地址 bit地址不明确 注: 位变量不能定义成指针; 位变量不能定义成数组。,3.2.7 C51运算符、表达式及其规则,3.3 C51流程控制语句,C语言是一种结构化编程语言,组成程序有三种基本结构: (1)顺序结构; (2)选择结构; (3)循环结构。 顺序结构及其流程图,2选择结构及其流程图 二分支选择 用if-else语句实现 串行多分支 用else if嵌套实现,并行多分支 用swith语句实现,循环结构 当循环 用while语句实现 直到循环 用do-while语句实现 从-到循环 用for语句实现,3.4 C51构造数据类型,数据类型分基本数据类型和构造数据类型 基本数据类型 字符型(char)、整型(int)和浮点型(float)等。 构造数据类型 将基本数据类型按某种规则组织起来称构造数据类型。 数组、结构、指针、共用体、枚举等。,3.4.1 数组,数组:由同种基本数据类型构成,数目固定的有序数据集合。 数组特点 数组中元素是基本数据类型; 数组各元素数据类型相同; 数组中元素个数固定。 数组数据用同一名字的不同下标访问。 数组使用 定义格式 数据类型 数组名常数表达式1常数表达式n; 中括号内必须是常数表达式,不能有变量,即数组大小程序运行中不能改变。 初始化 int a10=1,3,5,7; int a34= 1,3,5,7,2,4,6,8,1,2,3,4,5,6,7,8;,数组引用 数组必须先定义后引用; 数组元素只能逐个引用,不能整体引用。 a0=a3+a1+2; 字符数组 定义与普通数组类似 char a10; 初始化 char a10=B,E,I,J,I,N,G,/0; char a10=“BEI JING”; char a10=“BEI JING”;,查表 数组主要用途之一是查表; 在很多非线性转换场合,采用查表比数学公式更加方便。 uchar code tempt=32,34,36,37,39,41; uchar ftoc(uchar degc) return temptdegc; main() x=ftoc(5); 数组与存储空间 在程序中定义一个数组,编译系统开辟一个连续空间存放数据; 多维数组占用存储器空间较大,在单片机开发中不宜定义过多。,3.4.2 指针,指针的概念 变量与指针 变量的指针是变量的地址; 指针变量:存放另一个变量地址的变量 指针变量的值是另一个变量的地址,指针变量的定义 定义格式 数据类型 *指针变量名; int *ap “*”是定义指针变量的关键符,ap是指针变量名。 指针变量的引用 引用前先定义 int *ap;int a; 指针变量定义后系统分配存储单元给它,但单元内空白,即没有装入指针(地址)。 指针变量的引用是通过取地址符,数组指针和指向数组的指针变量 基本概念 数组指针:数组的起始地址。 指向数组的指针变量:用来存放数组起始地址(指针)的变量。 指向数组的指针变量的定义和赋值 定义 int a10; int *app; 赋值 方法1:app= appi=*(app+i),指向数组的指针变量可以带下标。,指针变量的运算 p=a; p+; x=*p; x=a1; *p+ = *(p+),先取值*p,再自加p+。 *p+*+p。 (*p)+ *(p+)。 *(p-)=ai- *(+p)=a+i *(-p)=a-i Franklin c51的指针类型:基于存储器指针和一般指针 基于存储器指针:以存储器类型为参数 访问效率高,占用1-2B char xdata *px; char xdata * data px; 一般指针:1B存储器类型+2B偏移地址,3.5 函数,一般概念 C语言程序是由一个个函数构成的。在构成C语言程序的若干个函数中,必有且只有一个是主函数main()。 函数之间不可以嵌套,但可以调用,主函数不能被调用。 C语言程序从主函数开始执行,调用子函数后返回主函数,最后在主函数中结束。 3.5.1 函数分类 按结构分类:主函数和子函数;,全程变量说明; main()/*主函数*/ 局部变量说明; 执行语句; ,function_1(形式参数表)/*函数1*/ 形式参数说明; 局部变量说明; 执行语句; ,3.5.1 函数分类,按使用分类:标准库函数和用户自定义函数 标准库函数:由编译系统提供,独立功能的公用函数。 C语言标准库函数功能强大、资源丰富充分利用可以提高效率,节省时间。 用户自定义函数:由用户自己编写的函数。 按函数参数分类:无参数函数和有参数函数 无参数函数:无输入参数,不返回结果,主要完成某种操作。 有参数函数:有输入参数,函数结束时返回结果。 空函数 函数体内没有语句,不做任何操作。 为后续功能扩充准备。,3.5.2 函数的定义,函数定义是指编写函数功能的程序块。 定义格式 返回值类型 函数名 (类型符1 形参1,类型符n 形参n) 说明语句; 执行语句; 函数头 函数类型:返回值类型,可以基本数据类型或复杂数据类型,默认为int,无返回值函数,其返回类型用void说明。 函数名与变量名一样是一种标识符,定义规则也与变量名一样。 形参表定义各个形参名及其数据类型,用于函数被调用时接收主调函数实参输入的数据。无参数函数,其形式参数表用void说明。 函数体 函数体用花括号括起来,类似于复合语句。函数体由说明语句和执行语句组成,说明语句可定义函数所使用的变量;执行语句描述函数的具体操作。 函数体无语句为空函数,不执行任何操作,但是花括号不能省略。 有返回值函数,函数体的执行语句中应用return语句返回结果,且保证返回结果的数据类型与函数头定义的返回值数据类型一致。,3.5.4 函数的调用,函数的调用是指主调函数使用被调函数的过程。 调用方式 函数调用语句 函数名(实参表); 函数表达式 y = 3 + sum(x1,x2); 函数参数 printf(“%d”,sum(x1,x2); 调用原则:主调函数只能调用已存在的被调函数。 库函数:用#include命令包含含有被调函数原型的头文件。 自定义函数: 被调函数应在主调函数前定义; 在调用被调函数前先声明被调函数。 声明被调函数其实就是声明被调函数的原型,类似于函数定义时的函数头。 int sum(int x1,int x2); 若被调函数声明在源程序的定义部分,该被调函数可以被任何函数调用。,

注意事项

本文([高等教育]10112第4章)为本站会员(tia****nde)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.