单片机的程序设计课件.ppt
《单片机的程序设计课件.ppt》由会员分享,可在线阅读,更多相关《单片机的程序设计课件.ppt(57页珍藏版)》请在三一办公上搜索。
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、编写程序代码并进行编译、运行 拓展:1、同时点亮几盏LED灯 2、设计流水灯,程序代码,#includemain()P1=0 xF7;,请用C语言编写程序计算234+78的和,main()int a,b,c;a=234;b=78;c
2、=a+b;printf(“234+78=%d”,c);,1.C51语言,C语言编译调试工具效率高,数据类型及运算符丰富,经过不断完善,能满足单片机的开发要求,形成了单片机C语言。把51单片机C语言称为C51语言。用C51编写单片机程序时,需要根据单片机存储结构及内部资源定义相应的数据类型和变量,而标准的C语言不需要考虑这些问题。另外,C51包含的数据类型、变量存储模式、输入输出处理、函数等方面与标准的C语言也有一定的区别。其他的语法规则、程序结构及程序设计方法则与标准的C语言相同。,C51语言的特点,编程者不需要了解单片机的指令系统,仅要求对单片机的存储器结构有初步的了解,至于存储器的分配、寻
3、址方式及数据类型等完全由编译器管理。程序有规范化的结构,可以分为不同的函数,这种方式可以使程序结构化,将可变的选择与特殊操作组合在一起,增强程序的可读性。编程和程序的调试时间显著缩短,从而提高了编程的效率,提供的库函数包含许多标准的子程序,具有较强的数据处理能力,可以将编好的程序很容易地移植到新程序。C51作为一种非常方便的语言得到了广泛的支持,目前已经成为单片机开发的主要编程语言。,2.简单的C51程序,【例】如下图所示,在P1.0口上接有一个LED发光二极管,要求让发光二极管发光。,#include sbit P1_0=P10;void main()P1_0=0;,程序如下:,程序的开始是
4、一个文件包含处理。这段程序中包含的是reg51.h文件,以.h为后缀的称为头文件,该头文件的作用是把特殊功能寄存器中的符号和地址对应起来,这里主要是应用到P1这个符号,如果没有包含reg51.h文件,C51编译器不知道P1具体指什么,在编译过程中就会发生错误。,给P1.0取名为P1_0,是通过编译器中增加的关键字sbit来定义的,程序最后是主函数,每一个C51程序有且只有一个主函数,函数后面使用一对大括号“”,在“”中书写具体内容。,(1)一个C51程序从main函数开始执行,不管main函数在什么位置。,(2)C51中字母区分大小写,如定义是sbit P1_0,若后面写成p1_0,在编译时就
5、会出现错误。,(3)C51书写自由,一行可以写几个语句,一个语句也能写在几行上。,(4)每个语句必须以分号结束。,(5)C51中的注释可以采用两种符号。第一种是“/*/”符号,从“/*”开始直到“*/”为止,中间的内容都是注释。第二种是“/”引导的注释语句,这种注释只对本行有效。,由此可见:,2.1 C语言的程序结构,在结构上可以把C51程序分为3类,即顺序结构、选择结构和循环结构。,2.1.1 顺序结构 顺序结构是一种最基本、最简单的编程结构,在这种结构下,程序按低地址向高地址顺序逐条执行指令代码,如右图所示。,请用C语言编写程序计算234+78的和,main()int a,b,c;a=23
6、4;b=78;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;,例2.1 单片机的P1.0接一小灯,P1.1接一开关,当开关闭合时,小灯亮;当开关断开时,小灯灭。请画出硬件电路图,并写出程序代码。#include void main()while(1)if(P11=0)P10=0;else P10=1;
7、,(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;,(4)if语句的嵌套,if(表达式1)if(表达式2)语句1 else 语句2else if(表达式3)语句3 else 语句4,使用if嵌套语句特别要注意if和else配对,else总是和最近的if配对,2、switch语句,实际问题中,往往遇到以一个变量或表达式的值为判断条件,将此变量或表达式的值分成几段,每一段对应一种选择或操作,
8、这种情况用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等语句。,1、while 循环语句,while语句的一般表达形式为:while(表达式)语句当表达式的判断为“真”时,执行大括号内的语句,否则不执行。,2、do-while 循环语句,do-while语句是先执行循环体,然
9、后判断循环条件是否成立,其一般形式为:do 语句 while(表达式);,分析程序:P33 例2.4,3、for 循环语句,for语句的一般形式为:,for(表达式1;表达式2;表达式3)语句,for循环语句的执行过程如下。(1)先求解表达式1。(2)求解表达式2,如果结果为“真”,即条件成立,则执行循环体语句;如果结果为“假”,转到第(5)步。(3)求解表达式3。(4)转回第(2)步。(5)退出for循环语句,执行下面的语句。,【例】流水灯的设计:在单片机的P1.0-P1.7上分别连接8个发光二极管,编程实现8个LED灯循环点亮。,程序如下:#include#define uchar uns
10、igned 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();y=1;,4、break语句和continue语句,在一个循环语句中,可以通过判断条件来退出循环,也可以通过break语句来强制退出循环。continue语句用于结束本次循环,即跳过循环体下面的语句,而直接进行下一次是否循环的判断。,【例】单片机的P3.0接开关K1,P3.0接开关K2,要求按下K1后,则从D1开始依次点亮,
11、至D8后停止并全部熄灭;待再次按下K1,重复上面过程;如果中间K2被按下,则灯立即全部熄灭,并返回初始状态。,#include regx51.hvoid Delay(unsigned int delaytime)/延时子程序 unsigned char i;for(;delaytime0;delaytime-)for(i=0;i=124;i+);,void 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
12、_1)=0)break;light=1;P1=light;P1=0 xff;,2.2 C51的运算符及表达式,C51 的运算符主要有:算术运算符、关系运算符、逻辑运算符、位运算符、赋值及复合赋值运算符。,2.2.1.赋值运算符和赋值表达式(1)赋值运算符“=”优先级较底,右结合性。(2)赋值表达式 一般形式:变量名=表达式 赋值的类型转换规则:在赋值运算中,当“=”两侧类型不一致时,系统自动将右边表达式 的值转换成左侧变量的类型,再赋值给该变量。如:x=1+9;x=y=5;,2.2.2 算术运算符和算术表达式,(1)基本的算术运算符+-*/%(模运算或取余运算符)注:1.都是双目运算符,即需要
13、两个操作数 2.对/,若两个整数相除,结果为整数(取整)3.对于%,要求%两侧的操作数均为整型数据,所得结果的符号与左侧操作数符号相同。如:7/5=1,5/7=0-93%23=-1 93%-23=1,(2)自增,自减运算符+自增-自减 注:1、+和-是单目运算符 2、+和-只能用于变量,不能用与常量和表达式。3、+j 先自增,再使用 j+先使用,后自增 如:a=2 b=+a 后 b=3 a=3 b=a+后 b=2 a=3,2.2.3 关系运算符和关系表达式(1)关系运算符及优先级,=,=,!=前四个优先级相同,后两个优先级相同,前四个优先级高于后两个。注:在优先级上 算术运算符关系运算符赋值运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 程序设计 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-3998478.html