飞思卡尔8位单片机MC9S878C语言ppt课件

上传人:ni****g 文档编号:567409924 上传时间:2024-07-20 格式:PPT 页数:34 大小:201.50KB
返回 下载 相关 举报
飞思卡尔8位单片机MC9S878C语言ppt课件_第1页
第1页 / 共34页
飞思卡尔8位单片机MC9S878C语言ppt课件_第2页
第2页 / 共34页
飞思卡尔8位单片机MC9S878C语言ppt课件_第3页
第3页 / 共34页
飞思卡尔8位单片机MC9S878C语言ppt课件_第4页
第4页 / 共34页
飞思卡尔8位单片机MC9S878C语言ppt课件_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《飞思卡尔8位单片机MC9S878C语言ppt课件》由会员分享,可在线阅读,更多相关《飞思卡尔8位单片机MC9S878C语言ppt课件(34页珍藏版)》请在金锄头文库上搜索。

1、第七章第七章 08C语言语言 主要内容v 单片机的C语言编程概述v 标准C语言的基本语法 v 08C语言的使用v 08C语言程序编程框架v 08C语言的编译过程v 08C编程技巧 妨琉逻塘龋状伞抓侣股郁洼翰迎宙脱讣屿锭祷孩囱摆柑牌晤钠募请羌献矿飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.1 单片机的单片机的C语言编程概述语言编程概述 7.1.1 单片机编程语言单片机编程语言v 汇编语言汇编语言 优点:执行效率高,时序控制精确优点:执行效率高,时序控制精确 v C语言语言 优点:优点: 程序开发速度快,提高开发工作效率;程序开发速度快,提高

2、开发工作效率; 软件调试直观;软件调试直观; 可维护性好;可维护性好; 可移植性好可移植性好(与汇编语言相比较与汇编语言相比较)。晃傲挡悠跟恶隙溶灼侵昨办县嘎民冕啥褂闰矫穆仍馆拿氟济阻用么庞钟粤飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.1 单片机的C语言编程概述 7.1.2 单片机单片机C语言语言 单片机单片机C语言和标准语言和标准C语言的用法基本相同,但是语言的用法基本相同,但是单片机单片机C语言是针对于资源少的语言是针对于资源少的MCU,它的编程方法,它的编程方法和编程手段与和编程手段与PC机上使用机上使用C语言还是有很大差别。语言

3、还是有很大差别。 返回返回过土靡检朝芋血骆执桥荚亩了鬼炕豌滇污氓引构陛抉亭钦膝戏尼滦预幌漓飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.1 单片机的C语言编程概述 7.2 标准标准C语言的基本语法语言的基本语法 7.2.1 数据类型数据类型 (1)基本类型)基本类型表7-1 C语言基本数据类型数据类型简明含义位数字节数值域signed char有符号字有符号字节型型8 81 1-128-128+127+127unsigned char无符号字无符号字节型型8 81 10 0255255signed short有符号短整型有符号短整型1616

4、2 2-32768-32768+32767+32767signed int有符号短整型有符号短整型16162 2-32768-32768+32767+32767unsigned int无符号短整型无符号短整型16162 20 06553565535signed long有符号有符号长整型整型32324 4-2147483648-2147483648+2147483647+2147483647unsigned long无符号无符号长整型整型32324 40 042949672954294967295float浮点型浮点型32324 43.4E-383.4E-383.4E+383.4E+38dou

5、ble双精度型双精度型64648 81.7E-3081.7E-3081.7E+3081.7E+308辣彤硷乎节单膨幼坛诡冕增珐谍殿绥训副促替剪瘫乘顿壤姜贺兼侯侄斯窝飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.1 数据类型数据类型(2)构造类型)构造类型 构造类型有数组、结构、联合、枚举、指针和空类型。结构构造类型有数组、结构、联合、枚举、指针和空类型。结构和联合是基本数据类型的组合。枚举是一个被命名为整型常量的和联合是基本数据类型的组合。枚举是一个被命名为整型常量的集合。空类型字节长度为集合。空类型字节长度

6、为0,主要有两个用途:一是明确地表示,主要有两个用途:一是明确地表示一个函数不返回任何值;二是产生一个同一类型指针一个函数不返回任何值;二是产生一个同一类型指针(可根据需可根据需要动态地分配给其内存要动态地分配给其内存)。云附殊芦眯呢宙绣沼卷米霉油约晌堡党横吼主佣设插窝岸化赠傲赠辣席漫飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.2 运算符运算符C语言的运算符与大多数计算机语言基本相同,分为:语言的运算符与大多数计算机语言基本相同,分为:v 算术运算符算术运算符v 逻辑运算符逻辑运算符v 关系运算符和位运算符

7、关系运算符和位运算符v 增量和减量运算符增量和减量运算符v 复合赋值运算符复合赋值运算符v 指针和地址运算符指针和地址运算符v 输出格式转换符输出格式转换符挛麻矛茅鞘展皱钒糖黄孵荡扶暇灵典诬甲弧棒未扑拌勘胃媚缨险礁亲桨薯飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(1)顺序结构)顺序结构 顺序结构就是从前向后依次执顺序结构就是从前向后依次执行语句。从整体上看,所有程序的行语句。从整体上看,所有程序的基本结构都是顺序结构,中间的某基本结构都是顺序结构,中间的某个过程可以是选择结构或循环结构

8、。个过程可以是选择结构或循环结构。语句语句1语句语句2语句语句N嫉木邻逾颗绳结溉馁撇昏厌宴梗朗咆喷店恭童娟滋领高卑叉忍脑撅绵抉基飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(2)选择结构)选择结构 if结构(双分支):结构(双分支): if (条件表达式条件表达式) 语句项语句项; 或或 if (条件表达式条件表达式) 语句块语句块 else 语句块语句块 语句语句1语句语句1条件表达式条件表达式if真真假假薛霖湃肥移蜒温海胖锥快专官狼千舷忙赡拒帝棕哟伞息撬淀谣皮陈均拌谊飞思卡尔8位单片

9、机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(2)选择结构)选择结构 switch结构(多分支):结构(多分支): switch(表达式表达式) case 常数常数1: 语句项语句项1;break; case 常数常数2: 语句项语句项2;break; default: 语句项语句项n 表达式表达式语句项语句项1语句项语句项2语句项语句项Nswitch常数常数1常数常数2default衫扳腆术谅鸿蚤露衅旬喳伤泌弧怀榷为墙专尖细垦响淳原促糟疫讨俯寝确飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔

10、8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(3)循环结构)循环结构 for循环循环 : for(表达式表达式1;表达式;表达式2;表达式;表达式3) 语句语句表达式表达式2求解表达式求解表达式1语句语句求解表达式求解表达式3For语句的下一个语句语句的下一个语句for真真假假停组矾瑰钞具谦殊凝串并姬棍乔拥喘森祥屑电悠年匠操孕琴盼朵眺枪骑洋飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(3)循环结构)循环结构 while循环循环 : wh

11、ile (表达式表达式) 语句语句表达式表达式语句语句while真真假假狈彼紧哟衣亨囊亭瑶媚刃钱枝滨恬乏袍瞳囤海赡统瓜赋吩乐酵河术煤妖摸飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.3 流程控制流程控制(3)循环结构)循环结构 do.while循环循环 do 语句语句 while (表达式表达式);表达式表达式2语句语句do假假真真冻刁羡佣吞头文晕茵瘫鳞抬敬鹿叠忿渔保究雷什羊廷魏住俐豢朴娄淖钝村飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的

12、基本语法7.2.3 流程控制流程控制(4)break语句和语句和continue语句语句 在循环中常常使用在循环中常常使用break语句和语句和continue语句,这两个语语句,这两个语句都会改变循环的执行情况。句都会改变循环的执行情况。break语句用来从循环体中强行跳语句用来从循环体中强行跳出循环,终止整个循环的执行;出循环,终止整个循环的执行;continue语句只用来结束本次语句只用来结束本次循环循环 。哗劲紧匆镰墓橡铰帘滑浅恐废平酗昆唱擒淑冤吁飘屑哇贪谍近定剃佯巾藤飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基

13、本语法7.2.4 函数函数(1)函数定义)函数定义 类型标识符类型标识符 函数名函数名(类型类型 参数参数1,类型,类型 参数参数2,类型,类型 参数参数3,) 说明部分说明部分 语句语句 (2)函数的声明)函数的声明 类型标识符类型标识符 函数名函数名(类型类型 参数参数1,类型,类型 参数参数2,类型,类型 参数参数3,);(3)函数的返回值)函数的返回值 return 表达式表达式; return语句用来立即结束函数,并返回一确定给调用程序。如果函数的类语句用来立即结束函数,并返回一确定给调用程序。如果函数的类型和型和return语句中表达式的值不一致,则以函数类型为准。对数值型数据,可

14、语句中表达式的值不一致,则以函数类型为准。对数值型数据,可以自动进行类型转换。以自动进行类型转换。烫丰恒肃撼贯啥昔网寝巳太中贼渊围符亮揣尽峦彤屯料谤雌攻越围顽响伪飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.5 指针指针(1)指针变量的定义)指针变量的定义 类型说明符类型说明符 *变量名;变量名; (2)指针变量的赋值)指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混

15、乱,甚至死机。体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址。指针变量的赋值只能赋予地址。(3)指针的运算)指针的运算 取地址运算(取地址运算(&) 取内容运算取内容运算 (*) 加减算术运算加减算术运算 :针对指针数组变量进行针对指针数组变量进行帘绵星梧谱返酥疚采引置旬爆钎桔高淘陶族粟度演意炔朔寺臻辅搅舌袖晋飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.6 结构体结构体(1)结构体的说明和结构体变量的定义)结构体的说明和结构体变量的定义 struct 结构体名结

16、构体名 struct 结构体名结构体名 成员列表成员列表; 成员列表成员列表 结构体变量结构体变量;(2)结构体变量的使用)结构体变量的使用 结构体变量也可以象其它类型的变量一样赋值运算,不同的是结构体结构体变量也可以象其它类型的变量一样赋值运算,不同的是结构体变量以成员作为基本变量。结构体成员的表示方式为:变量以成员作为基本变量。结构体成员的表示方式为: 结构体变量结构体变量.成员名成员名 (3)结构体指针)结构体指针 结构体指针是指向结构体的指针。结构体指针对结构体成员的访问表结构体指针是指向结构体的指针。结构体指针对结构体成员的访问表示为示为: 结构体指针名结构体指针名-结构体成员结构体

17、成员狙沫翼慕透性懦宦那京振旺桔观怠鲜丑涣肺剪团柔辙女不肚靖靶险细求跺飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.7 编译预处理编译预处理 (1)宏定义)宏定义 #define 宏名宏名 表达式表达式(2)条件编译)条件编译 #if 表达式表达式 #else 表达式表达式 #endif(3)“文件包含文件包含”处理处理 “文件包含文件包含”是指一个源文件将另一个源文件的全部内容包含进来,其是指一个源文件将另一个源文件的全部内容包含进来,其一般形式为:一般形式为: #include “文件名文件名” 履逻曾叮惩

18、驹工搬畅岂雅诧议跑帅捡隔怪敷弓喘减犹虹篇断骄缨驾挟恳剑飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标准C语言的基本语法7.2.8 用用typedef定义类型定义类型 typedef用来定义新的类型名来代替已有的类型名:用来定义新的类型名来代替已有的类型名: typedef 类型名类型名 新的类型名;新的类型名; 说明:说明: 用用typedef可以定义各种类型名,但不能用来定义变量。可以定义各种类型名,但不能用来定义变量。 用用typedef只是对已经存在的类型增加一个类型名,而没有只是对已经存在的类型增加一个类型名,而没有创造新的类

19、型。创造新的类型。 当不同源文件中用到各种类型数据当不同源文件中用到各种类型数据(尤其是像数组、指针、尤其是像数组、指针、结构体、共用体等较复杂数据类型结构体、共用体等较复杂数据类型)时,常用时,常用typedef定义一些数据定义一些数据类型,并把它们单独存放在一个文件中,而后在需要用到它们的文类型,并把它们单独存放在一个文件中,而后在需要用到它们的文件中用件中用#include命令把它们包含进来。命令把它们包含进来。返回返回缎搅惺拇胰豌潮张秒池皂啮桩涸博拓霞湍调宅躯肾票赚饲韶羚绰灼具符甸飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.2 标

20、准C语言的基本语法7.3 08C语言的使用语言的使用7.3.1 寄存器和寄存器和I/O口的使用口的使用 使用使用08C语言,大部分寄存器都可以直接操作,但对寄存器语言,大部分寄存器都可以直接操作,但对寄存器A、HX、CCR和和SP的操作只能通过嵌入汇编代码来完成。的操作只能通过嵌入汇编代码来完成。 (1)I/O口和寄存器的定义口和寄存器的定义 在在08C语言中操作寄存器及语言中操作寄存器及I/O口时,通常预先在头文件中使用宏定义,口时,通常预先在头文件中使用宏定义,其定义方法如下:其定义方法如下: #define 寄存器名寄存器名*(volatile unsigned char *)寄存器地址

21、寄存器地址 #define I/O口名口名*(volatile unsigned char *)I/O口地址口地址(2)I/O与寄存器的操作与寄存器的操作 使用上面定义的使用上面定义的I/O口或寄存器宏,可以方便对口或寄存器宏,可以方便对I/O置高低电平或读取置高低电平或读取I/O的状态,读写寄存器。的状态,读写寄存器。 峦刚皑鲍驳糙惶漂仇酚怒孙今睬检奎梁抽龙惊猿魂突尝膳卢九欣夏巩臂虾飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.3 08C语言的使用7.3.2 使用汇编指令使用汇编指令 在在08C语言中,使用汇编代码有两种方法:语言中,使用

22、汇编代码有两种方法: (1)asm(“汇编指令汇编指令”)(2)定义汇编子程序)定义汇编子程序 定义格式如下:定义格式如下:_子程序名子程序名代码代码rts十噪林鹤饮苞汾筋董堰怜顶纺楞坪折疡谷捍谁掸屯桶睹骋氓刺叫最颧墩白飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.3 08C语言的使用这种使用方法要注意以下几点:这种使用方法要注意以下几点: 在子程序名前加在子程序名前加_; 汇编子程序只能放在汇编子程序只能放在*.s文件中,然后将该文件加入到工程中;文件中,然后将该文件加入到工程中; 在在C代码中调用汇编子程序时可直接调用:代码中调用汇编子

23、程序时可直接调用: 子程序名();子程序名(); 汇编子程序的编写时,如果使用了汇编子程序的编写时,如果使用了A或或HX,则需要保护寄存器,则需要保护寄存器A或或HX。因为。因为08C的编译器把的编译器把A和和HX封装在下层,不需要用户管理,如果汇封装在下层,不需要用户管理,如果汇编子程序没有保存这些寄存器,在返回时将造成不可预测的后果。编子程序没有保存这些寄存器,在返回时将造成不可预测的后果。 7.3.2 使用汇编指令使用汇编指令楔发快态猫攘仰偿膝西焦圈妈抓痰布竣诌揣娠世珊翁抿徊君殷照卢欺羞篮飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.

24、3 08C语言的使用 在在HC08系系列列单单片片机机Flash地地址址空空间间中中,有有一一段段是是用用来来存存储储所所有有的的中中断断矢矢量量 ,每每两两个个字字节节存存储储的的是是一一个个中中断断处处理理函函数数的的地地址址。编编写写中断处理函数,需要按照以下步骤:中断处理函数,需要按照以下步骤: 新建一个新建一个vectors.c,并加入工程中;,并加入工程中; 定义中断处理函数;定义中断处理函数; 定义中断向量表;定义中断向量表; 在中断向量表中填入中断处理函数名称;在中断向量表中填入中断处理函数名称; 7.3.3 中断处理中断处理 蹦纯诀汽龄哪拎饥福趣萧穆佩琅勤重伯谅别装钟绕蛀晨瀑

25、噎整挟予宪帽撅飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.3 08C语言的使用 08C提提供供一一系系列列函函数数库库供供程程序序员员使使用用,其其中中囊囊括括了了标标准准C所所具具有有的的大大部部分分库库函函数数和和一一些些08C特特有有的的函函数数,但但是是08C中中的的有有些些函函数数和和标标准准C中中的的函函数数的的功功能能不不一一样样。这这些些函函数数的的头头文文件件位位于于安安装装目目录录的的include目目录录下下,库库文文件件位位于于安安装装目目录录的的lib目目录录下下。更更多多的函数库说明参见的函数库说明参见附录附录

26、F。7.3.4 08C的常用库函数的常用库函数 返回返回西蓟郭琢彼撤猾乐湿玄物湿浇煤裁孰堕桑伸耻认诚诱议径酌灸橱旱征裸歼飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.3 08C语言的使用7.4 08C语言程序编程框架语言程序编程框架7.4.1 实践环境实践环境 SD-HC08在在线线编编程程开开发发系系统统中中的的C语语言言编编程程是是按按工工程程进进行行管管理理,一一个个08C工工程程所所包包含含的的文文件件最最好好放放在在同同一一文文件件夹夹下下,一一般般由由.prj、.src、.h、.c等等类类型型文文件件构构成成,编编译译后后还还将

27、将产产生生.lst、.s19等等文文件件。编编译译过过程程还还会会产产生生一一些些中中间间文文件件,可可以以不不去去理理会会这这些文件。些文件。匣逞履择俺扛桶戈龄灶炕岭虽紊野饿飞腾昧箭辑刊钻帆隘面衔幌鸦焰任纂飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.4 08C语言程序编程框架一个完整的一个完整的08语言程序通常至少包含如下部分:语言程序通常至少包含如下部分:v汇编语言的启动文件汇编语言的启动文件v存储器映像及存储器映像及I/O端口的头文件端口的头文件v主程序模块主程序模块v中断服务程序模块中断服务程序模块v中断向量表文件中断向量表文件7

28、.4.2 08C语言程序的组成语言程序的组成疤步临华励母踊像泡零松淬档铣恼绢翟涤误是颐今芝窃名更布地矫抖歇邱飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.4 08C语言程序编程框架一个完整的一个完整的08语言程序通常至少包含如下部分:语言程序通常至少包含如下部分:v汇编语言的启动文件汇编语言的启动文件v存储器映像及存储器映像及I/O端口的头文件端口的头文件v主程序模块主程序模块v中断服务程序模块中断服务程序模块v中断向量表文件中断向量表文件7.4.2 08C语言程序的组成语言程序的组成柒绰蹈侈注芽春桐啥陶酒勿吭菲淌氰贤缓辗糠以抓令莽扫琴浚谋

29、展仲测赵飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.4 08C语言程序编程框架编写第一个可执行的编写第一个可执行的08C语言程序:语言程序:(1)新建文件)新建文件 新建新建C工程。工程。 新建新建GP32C.h文件,该文件包含了文件,该文件包含了MC68HC908GP32的的I/O及寄存器的宏定义。及寄存器的宏定义。 新建新建main.c程序程序(2)编译程序)编译程序7.4.3 第一个第一个08C语言例程语言例程返回返回哩跑资杜淹遂楞恐箔诬瑶跨肢洁浑钒壬让或嘲沾析解味遗砒站淌剃黍滴矗飞思卡尔8位单片机MC9S878C语言ppt课件飞思

30、卡尔8位单片机MC9S878C语言ppt课件7.4 08C语言程序编程框架7.5 08C语言的编译过程语言的编译过程7.5.1 编译过程编译过程 在在SD-HC08在线编程开发系统中编辑了源程序以后,使用编译命令就可在线编程开发系统中编辑了源程序以后,使用编译命令就可以把源程序翻译成目标程序。以把源程序翻译成目标程序。 编译的脚本文件:包含了编译指令及相关的参数,文件存放的位置在编译的脚本文件:包含了编译指令及相关的参数,文件存放的位置在.prj的同一文件夹下。的同一文件夹下。 C程序向汇编程序的转化:启动程序向汇编程序的转化:启动08C编译器,根据编译器,根据.mak文件的编译脚本文件的编译

31、脚本将所有将所有.c文件编译成文件编译成.s文件及文件及.lis文件。文件。 汇编代码向机器码的转化:汇编程序将所有的汇编文件编译成汇编代码向机器码的转化:汇编程序将所有的汇编文件编译成.o的中的中间目标文件,即所有的汇编语句都编译成机器码。间目标文件,即所有的汇编语句都编译成机器码。 连接:启动连接器,连接器根据连接:启动连接器,连接器根据.mak文件中的连接脚本,把所有的文件中的连接脚本,把所有的.o文件统一连接成一个文件统一连接成一个.s19文件,该文件可以下载到目标机器上执行,同时还文件,该文件可以下载到目标机器上执行,同时还可根据用户需求生成可根据用户需求生成.lst文件和文件和.m

32、p文件。文件。熬枕杖浙励骸陕箕韩我药烈城庚蘑薄漳核泥则恨气萨斋颜锯泽厉尤陀跟菲飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.5 08C语言的编译过程7.5.2 编译文件输出编译文件输出 单片机的文件都有自己的后缀规则,不同的单片机的文件都有自己的后缀规则,不同的C编译器产生的文编译器产生的文件后缀在某些方面有些差异。下表为件后缀在某些方面有些差异。下表为08C编译过程中产生的文件类编译过程中产生的文件类型。型。 08C编译所产生的文件类型编译所产生的文件类型文件扩展名文件扩展名说明说明mak编译脚本文件脚本文件Lis浮浮动地址空地址空间的的

33、汇编代代码s浮浮动地址空地址空间的的汇编代代码o目目标文件文件Lst编译列表文件列表文件mp连接后生成的地址映像文件接后生成的地址映像文件S19绝对地址目地址目标文件文件返回返回愿掣筹米肤怀难园锚尔世触至篇帜式卤澳燕剥抽摹堑棵恼搏隙椭担绘耗身飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.5 08C语言的编译过程7.6 08C编程技巧编程技巧 7.6.1 数据类型的选用数据类型的选用 单单片片机机C要要和和程程序序存存储储器器资资源源结结合合起起来来,虽虽然然其其提提供供的的数数据据类类型型十十分分丰丰富富,但但是是只只有有bit和和char

34、等等数数据据类类型型是是机机器器语语言言直直接接支支持持的的数数据据类类型型,用用此此类类数数据据类类型型的的语语句句所所生生成成的的代代码码较较短短;而而其其它它的的数数据据类类型型如如整整型型、浮浮点点型型等等数数据据要要有有一一定定的的内内部部程程序序或或内内部部函函数数的的支支持持,相相对对来来说说用用该该类类数数据据类类型型的的语语句句生生成成的的代代码码要要长长。有有些些C语语言言程程序序表表面面上上看看起起来来十十分分的的简简单单,但但在在实实际际编编译译时时,生生成成的的代代码码却却相相当当长长。因因此此我我们们要要按按照照实实际际需需要要,尽尽量量选选用用占占用用存存储储空空

35、间间少少的的数数据据类类型型,可可以以大大大大的减少所生成的代码长度。的减少所生成的代码长度。灰更常怀壁誊柑篮姜絮构够捅市傅笔虫软藐叼陈涌权阜九模说悉击瑚娟组飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.6 08C编程技巧 7.6.2 算法设计问题算法设计问题 单单片片机机C语语言言和和标标准准C语语言言存存在在着着很很大大差差别别,在在计计算算机机上上进进行行C语语言言程程序序设设计计时时可可以以不不必必考考虑虑程程序序代代码码的的长长短短,只只需需考考虑虑程程序序功功能能实实现现,但但是是在在单单片片机机上上进进行行C语语言言程程序序设

36、设计计就就必必须须考考虑虑系系统统的的硬硬件件资资源源。有有时时并并不不是是程程序序的的算算法法越越简简单单、长长度度越越短短越越好好,因因为为有有一一些些算算法法要要调调用用一一些些内内部部的的子子程程序序和和函函数数,生生成成的的机机器器代代码码可可能能非非常常长长。不不同同的的算算法法对对程程序序代代码码长长度度影影响响十十分分大大,因因此此在在进进行行程程序序设设计计时时,就就尽尽量量采采用用程程序序生生成成代代码码短短的的算算法法,在在不不影影响响程程序序功功能能实实现现的的情情况况下可以采用一些优化算法。下可以采用一些优化算法。 乒盼奄现助萧决溯稚殿挞昔肿胖诺每晶瘟沛块曲卞栗誓官著

37、砂凑霓殴驳辫飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.6 08C编程技巧 7.6.3 数据存储器的分配数据存储器的分配 单单片片机机内内部部数数据据存存储储器器RAM只只有有几几百百字字节节,内内部部处处理理器器、内内部部堆堆栈栈、压压缩缩栈栈、所所有有程程序序变变量量和和所所有有包包含含进进来来的的库库函函数数都都将将使使用用数数量量有有限限的的内内部部数数据据存存储储器器RAM。在在进进行行程程序序设设计计时时应应该该尽尽量量的的使使用用局部变量,提高内部数据存储器的使用率。局部变量,提高内部数据存储器的使用率。峦慕独吹泵哥证娄辕进

38、赫舜粘氧腑伺栈胡棵个逆雍彰翘诽谨营孽暇钧么蚌飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.6 08C编程技巧 7.6.4 单片机单片机C语言与汇编语言的混合编程语言与汇编语言的混合编程 C代码中可以嵌入汇编程序,汇编中也可以调用代码中可以嵌入汇编程序,汇编中也可以调用C代码中的变量代码中的变量与子程序。与子程序。v使用使用C代码中定义的变量:在变量名前加代码中定义的变量:在变量名前加_或或%,例如:,例如:unsigned char sPortA;asm(“lda %sPortA”)或或asm(“lda _sPortA”)v调用调用C代码中

39、定义的函数:在函数名前加代码中定义的函数:在函数名前加 _,例如:,例如:function1();asm(“jsr _function1”)返回返回曙嗅窝嗽杖裂饲鹤饶嚏详妙下鼎案兰忘全砌肃想资漱鼓查精霉掉浸郧聚裴飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件7.6 08C编程技巧 本章小结本章小结 单片机单片机C语言和标准语言和标准C语言的用法基本相同,但是单片机语言的用法基本相同,但是单片机C语言语言是针对于资源少的是针对于资源少的MCU,它的编程方法和编程手段与,它的编程方法和编程手段与PC机上使用机上使用C语言还是有很大差别。本章讲述了单

40、片机中选用语言还是有很大差别。本章讲述了单片机中选用C语言编程的优越语言编程的优越性,简单介绍了标准性,简单介绍了标准C语言,然后阐述了语言,然后阐述了08C的一些特殊用法,并通的一些特殊用法,并通过实例讲述过实例讲述08C语言编程框架以及编译过程。使用语言编程框架以及编译过程。使用C语言进行单片机语言进行单片机程序开发,必须要对单片机体系结构和硬件资源作详尽了解,才能程序开发,必须要对单片机体系结构和硬件资源作详尽了解,才能写出高质量实用的写出高质量实用的C语言程序。语言程序。返回返回碍镶挟便摔铸悉蛾甸胺约咸唁握盎及航掠敢趋洼撂籍唇熏蛔冉箱骄雪就糖飞思卡尔8位单片机MC9S878C语言ppt课件飞思卡尔8位单片机MC9S878C语言ppt课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号