第3章单片机C语言程序设计基础ppt课件.ppt

上传人:春哥&#****71; 文档编号:15236784 上传时间:2022-05-11 格式:PPT 页数:22 大小:1.65MB
返回 下载 相关 举报
第3章单片机C语言程序设计基础ppt课件.ppt_第1页
第1页 / 共22页
第3章单片机C语言程序设计基础ppt课件.ppt_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《第3章单片机C语言程序设计基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章单片机C语言程序设计基础ppt课件.ppt(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、在此输入您的封面副标题第3章单片机C语言程序设计基础24.1 单片机C程序设计的一般格式 4.1.1 单片机C语言编程的步骤单片机C程序设计的步骤一般如下:(1)分析设计任务,确定算法,画出编程算法的流程图。(2)使用通用的文字编辑软件如记事本等编写C源程序,也可在支持C语言的仿真器或编译器上直接编写,如Keil 51 C编译器。(3)在C编译器上进行调试及编译,编译后可生成后缀名为HEX的十六进制目标程序文件。(4)用编程器将目标程序文件写入单片机。34.1.2 单片机C程序的几个基本概念 1、函数C语言程序是由一个主函数和若干个其它函数所构成,程序中由主函数调用其它函数,其它函数也可以互相

2、调用。其它函数又可分为标准函数和用户自定义函数。如果在程序中要使用标准库函数,就要在程序开头写上一条头文件包含处理命令,例如#include “math.h”,在编译时将读入一个包含该标准函数的头文件。如果在程序中要建立一个自定义函数,则需对函数进行定义,根据定义形式可将函数分为:无参数函数、有参数函数和空函数。(1)无参数函数的定义形式类型标识符 函数名()函数体类型标识符用来指定函数返回值的类型。无参数函数一般不带返回值,因此可以不写类型标识符。如定义一个延时函数名为delay,函数体为_nop_( )的函数,它的定义形式为:delay( )_nop_( ); /空操作函数,相当于汇编中的

3、nop4(2)有参数函数的定义形式类型标识符 函数名(形式参数列表及参数说明)函数体例如一个毫秒级有参延时函数的定义形式为:delay1ms(int t) /参数变量t为整型int i,j;for(i=0;it;i+)for(j=0;j120;j+);(3)空函数的定义形式类型说明符 函数名()调用空函数时,什么工作也不做,等以后需要扩充函数时,可以在函数体位置填写程序。4.1.2 单片机单片机C程序的几个基本概念程序的几个基本概念 52、指针与指针变量、指针与指针变量一个变量具有一个变量名,对它赋值后就有一个变量值,变量名和变量值是两个不同的概念。变量名对应于内存单元的地址,表示变量在内存中

4、的位置,而变量值则是放在内存单元中的数据,也就是内存单元的内容。变量名对应于地址,变量值对应于内容。64.1.2 单片机C程序的几个基本概念、文件包含处理命令、文件包含处理命令#include文件的包含处理命令,是指一个源文件将另外一个源文件的全部内容包含进来。或者说是把一个外部文件包含到本文件之中,这种文件包含处理的命令格式为:#include “文件名”或者用#include 通常被包含的文件多为头文件,即以h为后缀的文件,如reg52.h、intrins.h、stdio.h等。、宏定义、宏定义在程序中,可以指定一个标志符去定义一个常量或字符串。如:#define P 568在中,一般常量

5、和字符串定义用大写,而变量定义用小写。宏定义还可以进行参数替换。74.1.3 单片机C语言程序的基本结构单片机C语言编程的基本结构说明:(1)C程序由一个主函数和若干子函数组成,其中主函数的名字必须为main()。C程序通过函数调用去执行指定的工作。函数调用类似于汇编语言中的子程序调用。被调用的函数可以是系统提供的库函数,也可以是用户自行定义的功能函数。(2)一个函数由说明部分和函数体两部分组成。函数说明部分是对函数名、函数类型、形参名、形参类型等的说明 。8(3)C程序的执行总是从main()函数开始的,而对main()函数的位置无特殊规定,main()函数可放在程序的开头、最后或其它函数的

6、前后。(4)当一个程序文件需要包含其他源程序文件时,应在本程序文件头部用包含命令# include 进行“文件包含”处理,如:# include “reg52.h”或# include 一条include命令只能指定包含一个文件,每行规定只能写一条包含命令。(5)C程序中一个函数中需调用另一个子函数时,另一个子函数应写在前面。当另一个子函数放在本函数后面时,应在本函数开始前说明。(6)C程序书写格式自由,一行可写一个语句或几个语,每个语句的结尾处需用“;”结束。94.2.1 常量和符号常量常量和符号常量在程序运行中值不会改变的量称为常量,常量可以用一个标识符来代表,称为符号常量,例如可以用宏定

7、义一个符号常量PAR,其值为3.14159。#define PAR 3.14159符号常量被定义后,凡在此程序中有PAR的地方,都代表常量3.14159。符号常量的值不能改变,也不能再被赋值。在C中,一般符号常量用大写字母。常量通常分为以下几种类型:1、整型常量、整型常量整型常量就是整型常数,在C中可以用十进制和十六进制三种形式表示,如:十进制数:11,-45,0;十六进制数:0 x11,0 x55,0 x00(以0 x开头)2、实型常量、实型常量实型常量就是实型常数,实型常数又叫浮点数。在C中可以用小数和指数二种形式表示 。4.2 单片机单片机C语言的数据类型语言的数据类型104.2.1 常

8、量和符号常量常量和符号常量3、字符常量、字符常量在C语言中字符常量是指用单引号括起来的单个字符。如a、b、?、A等都是字符常量,应注意在C中a和A是不同的字符常量,即C中严格区分字母的大小写。4、字符串常量、字符串常量在C中还有另一种字符数据称为字符串。字符串常量与字符常量不同,它是由一对双引号括起来的字符序列。如“You are man.”、“CHINA”、“15.68”等都是字符串常量。字符常量和字符串常量二者不同,不能混用。如a和“a”在内存中,a占1个字节,而“a”占2个字节,即一个字母再加一个字符串结束符。4.2 单片机单片机C语言的数据类型语言的数据类型114.2.2 变量变量变量

9、类型标志符说明标志符数据长度值域范围位变量bit1位0,1sbit1位0,1字符变量Char有符号Signed char8位-128+127无符号Unsigned char8位0255整数型变量Int有符号Signed int16位-32768+32767无符号Unsigned int16位065535长整数型变量Long int有符号Signed long32位-231231-1无符号Unsigned long32位0232-1实数型变量Float单精度32位|3.4e-38|3.4e+38|double双精度64位|1.7e-308|1.7e+308|寄存器变量Sfr8位025512在单片

10、机C语言编程中,通常用到30个运算符,如表4.2所示。在C语言中,运算符具有优先级和结合性。算术运算符优先级规定为:先乘除模(求余),后加减,括号最优先。结合性规定为:自左至右,即运算对象两侧的算术符优先级相同时,先与左边的运算符号结合。关系运算符的优先级规定为:、=、=四种运算符优先级相同,=、!=相同,但前四种优先级高于后四种。关系运算符的优先级低于算术运算符,高于赋值(=)运算符。逻辑运算符的优先级次序为:!、&、|。当表达式中出现不同类型的运算符时,非(!)运算符优先级最高,算术运算符次之,关系运算符再次之,其次是&和|,最低为赋值运算符。位操作的对象只能是整型或字符型数据。4.3 单

11、片机C语言的运算符和表达式 134.4 单片机C语言的一般语法结构4.4.1 顺序结构顺序结构 4.4.2 分支结构分支结构分支结构可分为单分支、双分支和多分支三种,C程序中提供了三种条件转移语句,分别为if、if-else语句和switch语句。C语言判断条件为:非“0”即真,为“0”即假。1、单分支转移语句、单分支转移语句单分支转移语句的格式为:if(条件表达式)执行语句;当执行语句只有一句时,可以省去。 144.4.2 分支结构2、双分支转移语句、双分支转移语句双分支转移语句的格式为:双分支转移语句的格式为:if (条件表达式)(条件表达式)语句语句1;else 语句语句2;if-els

12、e语句的执行步骤是:先判断条件表达式是否成立,若成立(为真)语句的执行步骤是:先判断条件表达式是否成立,若成立(为真)则执行语句则执行语句1,否则执行语句,否则执行语句2,然后继续执行后面的语句。,然后继续执行后面的语句。 154.4.2 分支结构3、多分支转移语句、多分支转移语句多分支转移语句的格式为:多分支转移语句的格式为:switch(条件表达式)(条件表达式)case 常量表达式常量表达式1:语句语句1;break;case 常量表达式常量表达式2:语句语句2;break;case 常量表达式常量表达式n:语句语句n;break;default:语句语句n+1;break;switch

13、语句的执行步骤是:当条件表达式的值同某一语句的执行步骤是:当条件表达式的值同某一case后面的常量表达式相同时则执行后面的常量表达式相同时则执行相应的语句。如都不相同,则执行相应的语句。如都不相同,则执行default后面的语句。后面的语句。Case后面的常量表达式必须互不后面的常量表达式必须互不相同,否则会出现混乱,相同,否则会出现混乱,case后面的后面的break不能漏写,如没有不能漏写,如没有break语句,在执行完本语语句,在执行完本语句功能后,程序将继续执行下一句句功能后,程序将继续执行下一句case的语句功能。的语句功能。 164.4.3 循环结构1、While语句语句while

14、语句的一般格式为:语句的一般格式为:while (表达式)(表达式)循环体语句;循环体语句;while语句的执行步骤是:先判断语句的执行步骤是:先判断while后的表达式是否成立,若成立(为真)则重复执行后的表达式是否成立,若成立(为真)则重复执行循环体语句,直到表达式不成立时退出循环。循环体语句,直到表达式不成立时退出循环。 2、do-While语句语句do-while语句的一般格式为:do循环体语句;while (表达式);do-while语句的执行步骤是:先执行循环体语句,然后判断表达式是否成立,若成立(为真)则重复执行循环体语句,直到表达式不成立时退出循环。 174.4.3 循环结构3

15、、for语句语句for语句的一般格式为:语句的一般格式为:for(表达式(表达式1;表达式;表达式2;表达式;表达式3)循环体语句;循环体语句;for语句的执行步骤是:先求表达式语句的执行步骤是:先求表达式1的值并作为变量的初值,再判断表达式的值并作为变量的初值,再判断表达式2是否满足条是否满足条件,若为真则执行循环体语句,最后执行表达式件,若为真则执行循环体语句,最后执行表达式3对变量进行修正,再判断表达式对变量进行修正,再判断表达式2是否是否满足条件,这样直到表达式满足条件,这样直到表达式2的条件不满足时退出循环。的条件不满足时退出循环。 184.5 51系列单片机的C语言程序 4.5.1

16、 存储类型及存储区存储类型及存储区在单片机中,一个变量可以放在片内存储单元,也可以放在片外存储单元,或者放在间在单片机中,一个变量可以放在片内存储单元,也可以放在片外存储单元,或者放在间接寻址区。接寻址区。 存储类型标识符与存储空间的对应关系data直接片内RAM,共128字节,00H-7FHbdata片内RAM的位寻址区,共16字节,20H-2FHidata间接寻址区,共128字节,80H-FFHpdata分页寻址片外RAM区,共256字节,00H-FFHxdata片RAM区,共64K字节,0000H-FFFFHcode程序存储区,共64K字节,0000H-FFFFH194.5.2 特殊功能

17、寄存器(SFR)(1)sfr声明字节寻址的特殊功能寄存器,比如声明字节寻址的特殊功能寄存器,比如sfr P0=0 x80,表示,表示P0口地址为口地址为0 x80。注意:。注意:“sfr”后面必须跟一个特殊功能寄存器名;后面必须跟一个特殊功能寄存器名;“=”后面的地址必须是常数,不允许带有运算符的后面的地址必须是常数,不允许带有运算符的表达式,且其范围必须在特殊功能寄存器地址范围内,即位于表达式,且其范围必须在特殊功能寄存器地址范围内,即位于0 x80到到0 xFF之间。之间。(2)sfr16许多新型许多新型8051派生系列单片机用两个连续地址的派生系列单片机用两个连续地址的SFR来指定来指定

18、16位数值,例如位数值,例如8052用地址用地址0 xCC和和0 xCD表示定时表示定时/计数器计数器2的低八位和高八位,如的低八位和高八位,如sfr16 T2=0 xCC;表示;表示T2的低字节的低字节地址地址T2L=0 xCC,高字节地址,高字节地址T2H=0 xCD。sfr16声明和声明和sfr声明遵循相同的原则。声明中声明遵循相同的原则。声明中名字后面不是赋值语句,而是一个名字后面不是赋值语句,而是一个SFR地址,其高字节必须位于低字节之后,这种声明地址,其高字节必须位于低字节之后,这种声明适用于所有新的适用于所有新的SFR,但不能用于定时器,但不能用于定时器/计数器计数器T0和和T1

19、。(3)sbit声明可位寻址的特殊功能寄存器和别的可位寻址的对象。声明可位寻址的特殊功能寄存器和别的可位寻址的对象。“=”后将绝对地址赋给变量名后将绝对地址赋给变量名 204.5.3 中断标识符单片机单片机C程序的中断程序与汇编不同,其中断过程是用程序的中断程序与汇编不同,其中断过程是用interrupt关键字和中断号(关键字和中断号(0到到31)来实现,中断号告诉编译器中断程序的入口地址,中断号对应着来实现,中断号告诉编译器中断程序的入口地址,中断号对应着IE寄存器中的使能位,寄存器中的使能位,如如IE寄存器中的寄存器中的0位对应着外部中断位对应着外部中断0,依此类推,表,依此类推,表4.4

20、为单片机中断源与为单片机中断源与C程序中断号程序中断号的对应关系。的对应关系。 C中的中断号对应单片机的中断源0外部中断01定时器0溢出中断2外部中断13定时器1溢出中断4串行口中断5定时器2溢出中断214.6 单片机C语言应用4.6.1 C语言程序编写举例语言程序编写举例LED点阵显示原理点阵显示原理八十年代以来出现了组合型八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,用高亮度发光二极点阵显示器,以发光二极管为像素,用高亮度发光二极管芯阵列组合而成,并采用环氧树脂和塑模封装。点阵显示器有单色和双色两类,可显管芯阵列组合而成,并采用环氧树脂和塑模封装。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。示红,黄,绿,橙等。LED点阵有点阵有44、48、57、58、88、1616、2424、4040等多种;等多种;4.6.2 【实训十】【实训十】Proteus 7 Professional 入门入门 实验目的学习Proteus 7.5软件的使用方法,主要包括硬件原理图的设计方法,单片机目标程序的加载及调试方法等,为后续单片机硬件仿真实验打下基础。224.6.3 【实训十一】跑马灯【实训十一】跑马灯 实训目的1学习单片机系统中并行I/O接口的使用方法。2学会用C语言编写单片机程序的基本方法。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁