单片机的程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机的程序设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序设计 课件
- 资源描述:
-
1、 项目项目2 单片机的程序设计单片机的程序设计 2.1 C语言的程序结构语言的程序结构 2.2 C51的运算符及表达式的运算符及表达式 2.3 C51的数据的数据 2.4 C语言的函数语言的函数 2.5 C语言的数组语言的数组 2.6 程序设计实例程序设计实例 单片机的开发实例单片机的开发实例点亮一盏点亮一盏LED灯灯 问题描述:通过问题描述:通过C语言编程,实现单片机开发板上点亮一盏语言编程,实现单片机开发板上点亮一盏LED灯。灯。实验所需软件:实验所需软件:Keil、Progisp 实验步骤:实验步骤:1、熟悉硬件电路、熟悉硬件电路 2、掌握开发软件的使用方法、掌握开发软件的使用方法 3、
2、编写程序代码并进行编译、运行、编写程序代码并进行编译、运行 拓展:拓展:1、同时点亮几盏、同时点亮几盏LED灯灯 2、设计流水灯、设计流水灯程序代码程序代码#includemain()P1=0 xF7;请用请用C语言编写程序计算语言编写程序计算234+78的和的和main()int a,b,c;a=234;b=78;c=a+b;printf(“234+78=%d”,c);1.C51语言语言 C语言编译调试工具效率高,数据类型及运算符语言编译调试工具效率高,数据类型及运算符丰富,经过不断完善,能满足单片机的开发要求,形丰富,经过不断完善,能满足单片机的开发要求,形成了单片机成了单片机C语言。把语
3、言。把51单片机单片机C语言称为语言称为C51语言。语言。用用C51编写单片机程序时,需要根据单片机存储编写单片机程序时,需要根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准结构及内部资源定义相应的数据类型和变量,而标准的的C语言不需要考虑这些问题。另外,语言不需要考虑这些问题。另外,C51包含的数据包含的数据类型、变量存储模式、输入输出处理、函数等方面与类型、变量存储模式、输入输出处理、函数等方面与标准的标准的C语言也有一定的区别。其他的语法规则、程语言也有一定的区别。其他的语法规则、程序结构及程序设计方法则与标准的序结构及程序设计方法则与标准的C语言相同。语言相同。C51语言的
4、特点语言的特点 编程者不需要了解单片机的指令系统,仅要求对编程者不需要了解单片机的指令系统,仅要求对单片机的存储器结构有初步的了解,至于存储器的分单片机的存储器结构有初步的了解,至于存储器的分配、寻址方式及数据类型等完全由编译器管理。配、寻址方式及数据类型等完全由编译器管理。程序有规范化的结构,可以分为不同的函数,这程序有规范化的结构,可以分为不同的函数,这种方式可以使程序结构化,将可变的选择与特殊操作种方式可以使程序结构化,将可变的选择与特殊操作组合在一起,增强程序的可读性。组合在一起,增强程序的可读性。编程和程序的调试时间显著缩短,从而提高了编编程和程序的调试时间显著缩短,从而提高了编程的
5、效率,提供的库函数包含许多标准的子程序,具程的效率,提供的库函数包含许多标准的子程序,具有较强的数据处理能力,可以将编好的程序很容易地有较强的数据处理能力,可以将编好的程序很容易地移植到新程序。移植到新程序。C51作为一种非常方便的语言得到了广泛的支持,作为一种非常方便的语言得到了广泛的支持,目前已经成为单片机开发的主要编程语言。目前已经成为单片机开发的主要编程语言。2.简单的简单的C51程序程序【例】【例】如下图所示,在如下图所示,在P1.0口上接有一个口上接有一个LED发光二极发光二极管,要求让发光二极管发光。管,要求让发光二极管发光。#include sbit P1_0=P10;void
6、 main()P1_0=0;程序如下:程序的开始是一个文件包含处理。这段程序中包含的是reg51.h文件,以.h为后缀的称为头文件,该头文件的作用是把特殊功能寄存器中的符号和地址对应起来,这里主要是应用到P1这个符号,如果没有包含reg51.h文件,C51编译器不知道P1具体指什么,在编译过程中就会发生错误。给P1.0取名为P1_0,是通过编译器中增加的关键字sbit来定义的 程序最后是主函数,每一个C51程序有且只有一个主函数,函数后面使用一对大括号“”,在“”中书写具体内容。(1)一个一个C51程序从程序从main函数开始执行,不管函数开始执行,不管main函数函数在什么位置。在什么位置。
7、(2)C51中字母区分大小写,如定义是中字母区分大小写,如定义是sbit P1_0,若后面,若后面写成写成p1_0,在编译时就会出现错误。,在编译时就会出现错误。(3)C51书写自由,一行可以写几个语句,一个语句也能书写自由,一行可以写几个语句,一个语句也能写在几行上。写在几行上。(4)每个语句必须以分号结束。每个语句必须以分号结束。(5)C51中的注释可以采用两种符号。第一种是中的注释可以采用两种符号。第一种是“/*/”符符号,从号,从“/*”开始直到开始直到“*/”为止,中间的内容都是注释。第为止,中间的内容都是注释。第二种是二种是“/”引导的注释语句,这种注释只对本行有效。引导的注释语句
8、,这种注释只对本行有效。由此可见:由此可见:2.1 C语言的程序结构语言的程序结构 在结构上可以把在结构上可以把C51程序分为程序分为3类,即顺序结构、类,即顺序结构、选择结构和循环结构。选择结构和循环结构。2.1.1 顺序结构顺序结构 顺序结构是一种最基本、顺序结构是一种最基本、最简单的编程结构,在这种结最简单的编程结构,在这种结构下,程序按低地址向高地址构下,程序按低地址向高地址顺序逐条执行指令代码,如右顺序逐条执行指令代码,如右图所示。图所示。过程过程A过程过程B过程过程C请用请用C语言编写程序计算语言编写程序计算234+78的和的和main()int a,b,c;a=234;b=78;
9、c=a+b;printf(“234+78=%d”,c);2.1.2 选择结构选择结构1、if语句语句(1)if(表达式表达式)语句语句如果表达式为如果表达式为“真真”,则执行语句,否则执行,则执行语句,否则执行if语句后语句后面的语句,如:面的语句,如:if(a5)b=3;条件表达式 语句 真 假(2)if(表达式表达式)语句语句1 else 语句语句2 如果表达式为如果表达式为“真真”,则执行,则执行语句语句1,否则执行语句,否则执行语句2,如:,如:if(a5)b=3;else b=-3;条件表达式 语句 1 真 假 语句 2 例例2.1 单片机的单片机的P1.0接一小灯,接一小灯,P1.
10、1接一开关,当开关闭合时,小灯亮;接一开关,当开关闭合时,小灯亮;当开关断开时,小灯灭。请画出硬件电路图,并写出程序代码。当开关断开时,小灯灭。请画出硬件电路图,并写出程序代码。#include void main()while(1)if(P11=0)P10=0;else P10=1;(3)if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式3)语句语句3 else if(表达式表达式m)语句语句m else 语句语句m+1如:如:if(a10)b=1;else if(a6)b=2;else if(a2)b=3;else b=4;条件表达式
11、 1 真 假 条件表达式 2 条件表达式 3 条件表达式 m 语句 m 语句 m+1 语句 1 语句 2 语句 3 真 真 真 假 假 假(4)if语句的嵌套语句的嵌套if(表达式表达式1)if(表达式表达式2)语句语句1 else 语句语句2else if(表达式表达式3)语句语句3 else 语句语句4使用使用if嵌套语句特别要注嵌套语句特别要注意意if和和else配对,配对,else总总是和最近的是和最近的if配对配对 2、switch语句语句 实际问题中,往往遇到以一个变量或表达式的值为判实际问题中,往往遇到以一个变量或表达式的值为判断条件,将此变量或表达式的值分成几段,每一段对应一断
12、条件,将此变量或表达式的值分成几段,每一段对应一种选择或操作,这种情况用种选择或操作,这种情况用if语句来嵌套非常麻烦,于是,语句来嵌套非常麻烦,于是,C51提供了提供了switch语句。语句。switch语句的一般结构如下:语句的一般结构如下:switch(表达式表达式)case 常量表达式常量表达式1:语句语句1,break;case 常量表达式常量表达式2:语句语句2,break;case 常量表达式常量表达式n:语句语句n,break;default:语句语句n+1,break;2.1.3 循环结构循环结构构成循环结构的主要有构成循环结构的主要有while、do-while和和for等
13、语句。等语句。1、while 循环语句循环语句while语句的一般表达形式为:语句的一般表达形式为:while(表达式表达式)语句语句当表达式的判断为当表达式的判断为“真真”时,执行大括号内的语句,否则不执行。时,执行大括号内的语句,否则不执行。循环体语句 条件表达式 真 假 2、do-while 循环语句循环语句 do-while语句是先执行循环体,然后判断循环条件是语句是先执行循环体,然后判断循环条件是否成立,其一般形式为:否成立,其一般形式为:do 语句语句 while(表达式表达式);循环体语句 真 假 循环条件表达式 分析程序:分析程序:P33 例例2.43、for 循环语句循环语句
14、for语句的一般形式为:语句的一般形式为:for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句for循环语句的执行过程如下。循环语句的执行过程如下。(1)先求解表达式先求解表达式1。(2)求解表达式求解表达式2,如果结果为,如果结果为“真真”,即条件成立,则,即条件成立,则执行循环体语句;如果结果为执行循环体语句;如果结果为“假假”,转到第,转到第(5)步。步。(3)求解表达式求解表达式3。(4)转回第转回第(2)步。步。(5)退出退出for循环语句,执行下面的语句。循环语句,执行下面的语句。表达式表达式 3 表达式表达式 2 真 假 表达式表达式 1 循环体语句循环体语句【例
15、】流水灯的设计:在单片机的【例】流水灯的设计:在单片机的P1.0-P1.7上分上分别连接别连接8个发光二极管,编程实现个发光二极管,编程实现8个个LED灯循环灯循环点亮。点亮。程序如下:程序如下:#include#define uchar unsigned charvoid delay()/延时子程序延时子程序 uchar i,j;for(i=0;i110;i+);for(j=0;j200;j+)void main()uchar x,y;while(1)y=0 x01;for(x=0;x8;x+)P1=y;delay();y0;delaytime-)for(i=0;i=124;i+);void
16、 main()unsigned char light=0 xfe;unsigned char i;while(1)if(P3_0)=0)light=0 xfe;P1=light;for(i=0;i=7;i+)Delay(1000);if(P3_1)=0)break;light=1;P1=light;P1=0 xff;2.2 C51的运算符及表达式的运算符及表达式C51 C51 的运算符主要有:的运算符主要有:算术运算符、关系运算符、逻辑运算符、位运算术运算符、关系运算符、逻辑运算符、位运算符、赋值及复合赋值运算符。算符、赋值及复合赋值运算符。2.2.1.赋值运算符和赋值表达式赋值运算符和赋值表
17、达式(1)赋值运算符)赋值运算符 “=”优先级较底,右结合性。优先级较底,右结合性。(2)赋值表达式)赋值表达式 一般形式:变量名一般形式:变量名=表达式表达式 赋值的类型转换规则:赋值的类型转换规则:在赋值运算中,当在赋值运算中,当“=”两侧类型不一致时,系统自动将右两侧类型不一致时,系统自动将右边表达式边表达式 的值转换成左侧变量的类型,再赋值给该变量。的值转换成左侧变量的类型,再赋值给该变量。如:如:x=1+9;x=y=5;2.2.2 算术运算符和算术表达式算术运算符和算术表达式 (1)基本的算术运算符基本的算术运算符 +-*/%(模运算或取余运算符)(模运算或取余运算符)注:注:1.都
18、是双目运算符,即需要两个操作数都是双目运算符,即需要两个操作数 2.对对/,若两个整数相除,结果为整数(取整),若两个整数相除,结果为整数(取整)3.对于对于%,要求,要求%两侧的操作数均为整型数据,所得结果两侧的操作数均为整型数据,所得结果的符号与左侧操作数符号相同。的符号与左侧操作数符号相同。如如:7/5=1 ,5/7=0 -93%23=-1 93%-23=1(2)自增,自减运算符自增,自减运算符 +自增自增 -自减自减 注:注:1、+和和-是单目运算符是单目运算符 2、+和和-只能用于变量,不能用与常量和表达式。只能用于变量,不能用与常量和表达式。3、+j 先自增,再使用先自增,再使用
19、j+先使用,后自增先使用,后自增 如:如:a=2 b=+a 后后 b=3 a=3 b=a+后后 b=2 a=32.2.3 关系运算符和关系表达式关系运算符和关系表达式(1)关系运算符及优先级)关系运算符及优先级 ,=,=,!=前四个优先级相同,后两个优先级相同,前四个优先级高于前四个优先级相同,后两个优先级相同,前四个优先级高于后两个。后两个。注:在优先级上注:在优先级上 算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符(2)关系表达式)关系表达式 用关系运算符将两个表达式连接起来的表达式称为关系用关系运算符将两个表达式连接起来的表达式称为关系表达式,关系表达式的值为逻辑值,真和假
20、,表达式,关系表达式的值为逻辑值,真和假,1代表真,代表真,0代代表假。表假。ab a=4 b=3 关系表达式为真关系表达式为真,值为,值为12.2.4 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 (1)逻辑运算符及其优先级)逻辑运算符及其优先级&逻辑与逻辑与|逻辑或逻辑或 !逻辑非!逻辑非 注意:注意:1、&与与|是双目运算符,是双目运算符,!是单目运算符!是单目运算符 2、在优先级上!、在优先级上!&|(2)逻辑表达式)逻辑表达式 逻辑表达式值为逻辑量(真或假)逻辑表达式值为逻辑量(真或假)执行规则:逻辑表达式是不完全执行的,只有当一定要执行下执行规则:逻辑表达式是不完全执行的,只有当一
展开阅读全文