单片机基础与应用(C语言版)(第3版)课件全套 王静霞 p1-什么是单片机 -p184-数字钟系统设计小结与拓展_第1页
单片机基础与应用(C语言版)(第3版)课件全套 王静霞 p1-什么是单片机 -p184-数字钟系统设计小结与拓展_第2页
单片机基础与应用(C语言版)(第3版)课件全套 王静霞 p1-什么是单片机 -p184-数字钟系统设计小结与拓展_第3页
单片机基础与应用(C语言版)(第3版)课件全套 王静霞 p1-什么是单片机 -p184-数字钟系统设计小结与拓展_第4页
单片机基础与应用(C语言版)(第3版)课件全套 王静霞 p1-什么是单片机 -p184-数字钟系统设计小结与拓展_第5页
已阅读5页,还剩1218页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4

什么是单片机单片机应用技术——适用于应用型本科及高职高专电子信息类专业何方神圣——什么是单片机什么是单片机?输入设备输出设备CPU存储器输入接口电路输出接口电路CPU:CentralProcessingUnit中央处理单元控制器运算器主机板计算机系统把CPU、存储器、和输入/输出接口电路集成在一个芯片上,这就是单片机。输入设备输出设备CPU存储器输入接口电路输出接口电路CPU:CentralProcessingUnit中央处理单元控制器运算器主机板单片机单片机是集成在一块(单)芯片上的微型计算机。MCU:Micro-ControllerUnit,微控制器为什么还要有单片机呢?体积大,功能强,价格高桌面应用体积小、实时性强、价格低嵌入式应用4谢谢4

单片机发展历史单片机应用技术——适用于应用型本科及高职高专电子信息类专业从何而来——单片机发展历史你从哪里来,我的朋友,好像一只蝴蝶飞进我的窗口。飞进窗口的蝴蝶无处追踪,而我们的朋友,单片机却可以追根溯源,大家随着我,一起来看看单片机从何而来,又将走向何处吧。1971年1976年1978年1982年现在1993年未来4位微处理器Intel40041971年1976年1978年1982年现在1993年未来8048问世SCM——SingleChipMicrocomputer,单片机4位微处理器Intel40041971年1976年1978年1982年现在1993年未来探索1980年,8051推出完善的、典型的MCS-51单片机8051,成为我们现在学习的51单片机的基础。8048问世4位微处理器Intel40041971年1976年1978年1982年现在1993年未来探索完善8位单片机广泛普及。接口电路有了很大的扩充。推出了多种类型和型号的新型单片机。出现了面向更高层应用的16位单片机。1980年,8051推出8048问世4位微处理器Intel40041971年1976年1978年1982年现在1993年未来探索完善巩固1980年,8051推出8048问世4位微处理器Intel40041971年1976年1978年1982年现在1993年未来探索完善巩固百花齐放低功耗CMOS化微型单片化主流与多品种共存1980年,8051推出8048问世4位微处理器Intel40041971年1976年1978年1982年现在1993年未来探索完善巩固百花齐放发展趋势4谢谢4

可发光的LED单片机应用技术——适用于应用型本科及高职高专电子信息类专业可发光的LED发光二级管LightEmittingDiode——LED+-正极负极直插式LED+-正极负极直插式LED贴片LED贴片LED正极负极电流控制型器件I电流控制型器件I。+5V3mA到20mA电流控制型器件I。+5V限流电阻R=200Ω-1KΩ+5VGND×4谢谢4

单片机应用系统单片机应用技术——适用于应用型本科及高职高专电子信息类专业如何使用——单片机应用系统计算机单片机数字钟电路图输入设备输出设备程序单片机应用系统以单片机为核心,配上输入输出外围接口电路和控制程序,能实现一种或多种功能的实用系统,叫做单片机应用系统。程序单片机应用系统单片机应用系统的设计方法1.硬件电路设计2.控制程序设计3.硬软件调试方法4谢谢4

二进制语言单片机应用技术——适用于应用型本科及高职高专电子信息类专业和单片机对话——二进制语言单片机0101011000二进制语言机器语言低级语言单片机0101011000二进制语言机器语言人中文英语C语言代码低级语言高级语言单片机0101011000二进制语言机器语言人KeilC51中文英语C语言代码编译低级语言高级语言单片机0101011000二进制语言机器语言人KeilC51中文英语C语言代码编译汇编语言低级语言高级语言单片机0101011000二进制语言机器语言低级语言人KeilC51中文英语C语言代码高级语言编译汇编语言单片机0101011000二进制语言机器语言低级语言人KeilC51中文英语C语言代码高级语言编译C语言源程序高级语言机器语言低级语言人KeilC51编译单片机led.hex信号灯闪烁控制C语言程序4谢谢4跟我做——KeilC51软件的使用1单片机应用技术——适用于应用型本科及高职高专电子信息类专业跟我做——KeilC51软件的使用1Keil是一个集成开发环境可以完成编辑、编译、调试、仿真等整个开发流程步骤1:建立工程文件选择路径名工程名这么多单片机供应商啊!这么多单片机型号啊!AT89C51单片机的内部资源描述新工程步骤2:建立并添加源文件1.建立源文件C语言源程序名,必须有.c扩展名2.添加源文件新添加源文件名输入的C语言源程序3.输入源程序步骤3:配置工程属性任务小结新建工程新建源文件添加源文件输入源程序工程配置步骤1:建立工程文件步骤2:建立并添加源文件

1)新建源文件

2)添加源文件

3)输入源程序步骤3:工程配置4谢谢4跟我做——KeilC51软件的使用2单片机应用技术——适用于应用型本科及高职高专电子信息类专业跟我做——KeilC51软件的工程编译工程编译编译成功输出信息编译结果信息的含义编译不成功输出信息不小心多输入了1个“#”生成hex文件任务小结步骤1:建立工程文件步骤2:建立并添加源文件

1)新建源文件

2)添加源文件

3)输入源程序步骤3:工程配置新建工程新建源文件输入源程序添加源文件工程配置工程编译HEX文件步骤4:工程编译4谢谢4

单片机内部结构单片机应用技术——适用于应用型本科及高职高专电子信息类专业和谐大家庭——单片机内部结构家长:爸爸和妈妈,控制核心家里的统一节拍由混乱恢复最初的和谐大姐:远距离通信二姐:行程时间安排三姐:帮CPU处理突发紧急事件孪生四兄弟:近距离通信存放程序存放程序存放数据单片机控制台4谢谢4

单片机引脚单片机应用技术——适用于应用型本科及高职高专电子信息类专业正式出场——单片机引脚12345678910111213141516171819204039383736353433323130292827262524232221VCCGND电源引脚接入单片机的工作电源VCC(40):接+5V电源GND(20):接地12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0口(39~32):P0.0~P0.7引脚P1口(1~8):P1.0~P1.7引脚P2口(21~28):P2.0~P2.7引脚P3口(10~17):P3.0~P3.7引脚12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTRST(9):Reset,复位信号XTAL1(19):片内振荡器的反相放大器和外部时钟发生器的输入端XTAL2(18):片内振荡器的反相放大器和外部时钟发生器的输出端12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENPSEN(29):外部程序存储器读选通信号,低电平有效。ALE(30):地址锁存控制信号EA(31):访问程序存储控制信号,通常接高电平。12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD/12345678910111213141516171819204039383736353433323130292827262524232221VCCGNDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0XTAL2XTAL1RSTEAALEPSENRXD/TXD/INT0/INT1/T0/T1/WR/RD//D0/A0/D1/A1/D2/A2/D3/A3/D4/A4/D5/A5/D6/A6/D7/A7/A15/A14/A13/A12/A11/A10/A9/A84谢谢4

数据存储器单片机应用技术——适用于应用型本科及高职高专电子信息类专业数据存放到哪儿了——数据存储器拍摄计划脚本拍摄录像各类素材成品中间结果临时数据暂时保存存储空间要求不大可以随机读写中间结果存储要求RAM:

RandomAccessMemory,随机存取存储器特点:可以随机读写数据,掉电内容丢失容量:128×8用途:存放中间结果或临时数据——数据存储器这128字节的数据存储器怎样使用呢?其实,我们采用C语言编程的话,只要按照要求定义各类变量就可以了,不需要我们来具体考虑怎样存放这些中间变量,这也是我们采用C语言编程的好处,我们不需要了解太多单片机内部的结构。4谢谢4SFR单片机应用技术——适用于应用型本科及高职高专电子信息类专业独一无二的控制台——SFR控制台卫星发射系统单片机特殊功能寄存器SpecialFunctionRegister(SFR)1011110180HP01200001王明明1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318751805189C51片内RAM256B片内ROM4KB00HFFH7FH80H(高128B)(低128B)数据存储器SFRSFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88HPCON87HDPH83HDPL82HSP81HP080H文字在下一页在这128个字节单元中,SFR其实只占用了21个单元,这21个单元的地址地址是不连续的没有出现在这里的单元是为单片机硬件升级的时候预留下来的,我们是不能使用的。在程序设计中,只要我们对这些寄存器进行控制,也就控制了单片机的硬件了。sfr——定义寄存器的名字和地址的对应关系sfrP0=0x80;//特殊功能寄存器P0的地址是0x80P0=0x55;//把十六进制数55H(01010101)赋值给P0寄存器字节操作0101010176543210P0寄存器SFR定义(regx51.h)8个LED同时闪烁程序有部分SFR还可以位操作,它们对应的地址都能被8整除。位和字节的关系就像组员和小组的关系一样,位是一个组员,小组是一个集体。sbit——定义特殊功能寄存器中的可位寻址的位名称sbitLED=P1^0;//定义SFR中的可寻址位LED=1;

位操作76543210P1寄存器LED1单片机P1.0高电平发光二级管1个信号灯闪烁程序SFR寄存器都是什么作用呢?SFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88HPCON87HDPH83HDPL82HSP81HP080H文字在下一页寄存器B、累加器ACC,程序状态字PSW、数据指针DPH和DPL、堆栈指针SP都属于单片机的系统寄存器,系统运行的时候默认使用它们,在程序中基本上是不会出现的。其它的寄存器,都是和单片机硬件相关的寄存器,随着我们学习的深入,就会逐渐认识它们,比如,在信号灯控制中,我们就用到了P1口这个寄存器。4谢谢4程序计数器PC单片机应用技术——适用于应用型本科及高职高专电子信息类专业程序是怎样执行的——程序计数器PC解密大脑的奇迹单片机的工作过程就是执行程序的过程。PC:ProgramCounter16位的寄存器程序存储器0000H0001H0002H0003H0000H程序计数器PCPC的内容为下一条要执行指令的地址有自动加1功能,从而控制程序的顺序执行4谢谢4

程序存储器单片机应用技术——适用于应用型本科及高职高专电子信息类专业程序下载到哪儿了——程序存储器程序下载中……程序下载到什么地方了呢?ROM:ReadOnlyMemory,只读存储器特点:可随机读数据,不能随机写数据

系统断电后,数据不会丢失。用途:存放程序——程序存储器下载电路1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422218051片内ROM4KB4K字节容量ROM1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内ROM4KB4K字节容量ROM1KB=1024字节4KB=4096字节……4096012345678910111213141516174092409340944095……8051字节存储单元1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内ROM4KB4K字节容量ROM1KB=1024字节4KB=4096字节……40960H1H2H3H4H5H6H7H8H9HAHBHCHDHEHFH10H11HFFCHFFDHFFEHFFFH……80510000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH0010H0011H0FFCH0FFDH0FFEH0FFFH……1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

3130292827262524242221片内ROM4KB4K字节容量ROM1KB=1024字节4KB=4096字节……409680514K字节容量ROM1KB=1024字节4KB=4096字节4K╳82K

42K个存储单元存储字位数是4第一条指令……40960000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH0010H0011H0FFCH0FFDH0FFEH0FFFH……选择存储容量大的单片机无需外扩存储器EA直接连接高电平使用单片机内部程序存储器,无需外扩程序存储器+5V单片机内部程序存储器(ROM)用户无须考虑程序的存放地址,编译程序会在编译过程中自动安排程序的存放地址。0地址存放程序的第一条指令EA引脚接高电平,无需外扩程序存储器。4谢谢4单片机时序单片机应用技术——适用于应用型本科及高职高专电子信息类专业有序的世界——单片机时序小明同学的一天单片机中的各种操作在时间上要有一个严格的先后次序,这种次序就是单片机时序。单片机时序foscTosc=1/foscTosc把振荡脉冲的周期定义为节拍,用P表示

振荡信号:时钟电路产生的信号状态:单片机时钟信号的周期fosc时钟信号P1P2S把时钟信号的周期定义为状态,用S表示

一个机器周期机器周期:是单片机中最基本的时间单位fosc时钟信号P1P2规定一个机器周期的宽度为6个状态,表示为S1~S6。

P1P2P1P2P1P2P1P2P1P2S1S2S3S4S5S6S1P1S1P2S2P1S2P2S3P1S3P2S4P1S4P2S5P1S5P2S6P1S6P2T机器=12*Tosc=12

/fosc

fosc=6MHzT机器=12

/(6*106)=2us机器周期:单片机中最基本的时间单位指令周期:一条指令执行的时间单周期指令:执行时间1个机器周期双周期指令:执行时间2个机器周期四周期指令:执行时间4个机器周期延时时间:把执行指令的时间累加起来声音报警系统控制程序不能直接计算延时时间晶振频率振荡信号频率振荡信号周期(节拍)状态时钟机器周期2分频6分频单周期指令双周期指令四周期指令4谢谢4时钟电路单片机应用技术——适用于应用型本科及高职高专电子信息类专业脉搏跳动——时钟电路电源人太阳空气水单片机下载程序人的脉搏波振荡信号心脏时钟电路振荡信号fosc:6MHz,

12MHz,

11.0592MHz起振电容C1和C2:30pf左右输入端输出端时钟电路是单片机应用系统中必需的电路。电源单片机下载程序时钟电路复位电路单片机最小系统4谢谢4复位电路单片机应用技术——适用于应用型本科及高职高专电子信息类专业复活单片机——复位电路复位让电脑从疯狂混乱的状态,恢复到一个最初的正常状态。从最初的状态开始继续工作,从头再来。死机电脑运行进入了疯狂混乱的状态,就像人昏死过去了,对外界没有了任何反映。程序计数器PC不可控制、不听指挥了。2个机器周期以上fosc=12MHzT机器=1us2us8051。。+5VGND10kΩ10μF。。+5VGND上电复位电路10kΩ10μF按键复位电路.RESET高电平10kΩ10μF单片机复位电路时钟电路单片机最小系统电路让单片机恢复到确定的初始状态让单片机从初始状态开始工作4谢谢4

能发声的蜂鸣器单片机应用技术——适用于应用型本科及高职高专电子信息类专业能发声的蜂鸣器在计算机中,简单的提示音,是什么器件发出来的呢?——它就是我们经常用到的一个能发出声音的器件,叫做蜂鸣器。蜂鸣器蜂鸣电路符号按照驱动方式来划分蜂鸣器有源蜂鸣器无源蜂鸣器电源×振荡源有源蜂鸣器:一通电就会响,直流信号驱动无源蜂鸣器:方波驱动,频率一般在2kHz到5kHz之间有源蜂鸣器无源蜂鸣器9mm8mm有源蜂鸣器无源蜂鸣器+

-+

-+

-有源蜂鸣器V不能超过标注的额定值+

-无源蜂鸣器频率一般在2kHz~5kHz,频率越高,音调也就越高在声音报警任务中,使用单片机控制蜂鸣器,实现了简单的声音报警,这里用的就是这种无源蜂鸣器。4谢谢4P0口单片机应用技术——适用于应用型本科及高职高专电子信息类专业一专多能——P0口输出控制电路组成:1个非门1个与门1个多路控制开关P0口作为通用I/O口使用P0口作为通用I/O口使用——输出高电平P0口作为通用I/O口使用——输出低电平P0口作为通用I/O口使用——输入P0口作为通用I/O口使用——读端口P0口作为通用I/O口使用——读引脚P0口作为I/O端口使用P0口作为数据线/地址线使用——输出数据/地址P0口作为数据线/地址线使用——输出高电平P0口作为数据线/地址线使用——输出低电平P0口作为数据线/地址线使用——输入数据4谢谢4单片机中的I/O接口单片机应用技术——适用于应用型本科及高职高专电子信息类专业并行与串行——单片机中的I/O接口家长:控制核心大姐:远距离通信孪生四兄弟:近距离通信一列横队一路纵队并行I/O接口CPU并行I/O接口外部设备01001100一列横队CPU串行I/O接口外部设备11100101串行I/O接口00011100一路纵队并行I/O接口串行I/O接口传输速度快,占用资源较多传输速度慢,节约资源4谢谢4单片机并行I/O接口单片机应用技术——适用于应用型本科及高职高专电子信息类专业孪生四兄弟出场——单片机并行I/O接口P1P0P2P3单片机P1P0P2P3单片机8位双向8位双向8位双向8位双向通用并行I/O接口P0、P1、P2和P3P1P0P2P3单片机8位双向8位双向8位双向8位双向一专多能P0口简单专职P1口专兼皆备P2口第二功能身兼两职P3口4谢谢4P1口单片机应用技术——适用于应用型本科及高职高专电子信息类专业简单专职——P1口截止P1口输出:高电平导通P1口输出:低电平P1口作为输入口:读端口P1口作为输入口:读引脚截止4谢谢4P2口单片机应用技术——适用于应用型本科及高职高专电子信息类专业专兼戒备——P2口P2口作为通用I/O口使用P2口作为通用I/O口使用——输出高电平截止P2口作为通用I/O口使用——输出低电平导通P2口作为通用I/O口使用——读端口P2口作为通用I/O口使用——读端口P2口作为通用I/O口使用——读引脚截止P2口作为高8位地址使用P2口作为高8位地址使用——输出0导通P2口作为高8位地址使用——输出1截止4谢谢4P3口单片机应用技术——适用于应用型本科及高职高专电子信息类专业身兼两职——P3口P3口位电路P3口作为通用I/O口使用——输出高电平截止P3口作为通用I/O口使用——输出低电平导通P3口作为通用I/O口使用——读端口P3口作为通用I/O口使用——读端口P3口作为通用I/O口使用——读引脚截止P3口第二功能输出控制信号——输出高电平截止P3口第二功能输出控制信号——输出低电平导通P3口第二功能输入控制信号截止4谢谢4输入端口和输出端口单片机应用技术——适用于应用型本科及高职高专电子信息类专业四胞胎工作表现——输入端口和输出端口P1P0P2P3单片机8位双向8位双向8位双向8位双向一专多能P0口简单专职P1口专兼皆备P2口第二功能身兼两职P3口P1P0P2P3单片机8位双向8位双向8位双向8位双向双向并行I/O接口输入端口输出端口P1P0P2P3单片机输入输出P1P0P2P3单片机输入输出P1P0P2P3单片机输入输出读引脚P0=0xFF;和读引脚相对应的,51单片机还有一个读端口的操作,这是指执行一类特殊指令的时候需要的操作,我们只要了解就可以了。绝大多数时候我们还是读引脚操作。输入操作四个并行I/O接口的输入操作完全相同区分读引脚和读端口读引脚的时候,需要向端口中写入1P1P0P2P3单片机+5V。4.7K×8P0口作为输出接口的时候,需要给它在外部电路中连接上拉电阻。输出操作P0口需外接上拉电阻才能有高电平输出P1、P2和P3口作为输出端口使用时,外接可以不接上拉电阻。4谢谢4

可拨动的开关单片机应用技术——适用于应用型本科及高职高专电子信息类专业可拨动的开关电脑开关手机开关电梯开关灯的开关开关开启关闭开关电路符号通断ONOFFA123BCD单极三位开关4谢谢4认识C51程序单片机应用技术——适用于应用型本科及高职高专电子信息类专业编程何物——认识C51程序程是规矩和法则的意思,是指按照一定的结构、框架办事;序是指以时间为基准的先后关系,在时间上有先有后、有始有终。点亮LED让LED亮一会儿熄灭LED让它灭一会儿重复以上过程1个信号灯闪烁编写程序就是把我们想要单片机做的事情,用我们的语言,按照一定框架结构和时间顺序写出来。点亮LED让LED亮一会儿熄灭LED让它灭一会儿重复以上过程信号灯闪烁信号灯闪烁控制C语言程序

准备工作

预编译步骤1步骤2步骤3步骤4步骤5步骤6步骤7步骤8步骤9步骤10步骤11步骤12步骤13步骤14步骤15voidmain(){语句1;语句2;语句3;语句4;语句5;语句6;语句7;语句8;语句9;语句10;语句11;语句12;语句13;语句14;语句15;}

准备工作

预编译步骤1步骤2步骤3步骤4步骤5步骤6步骤7步骤8步骤9步骤10步骤11步骤12步骤13步骤14步骤15voidmain(){语句1;语句2;语句3;语句4;语句5;语句6;语句7;语句8;语句9;语句10;语句11;语句12;语句13;语句14;语句15;}函数头函数体

准备工作

预编译步骤1步骤2步骤3步骤4步骤5步骤6步骤7步骤8步骤9步骤10步骤11步骤12步骤13步骤14步骤15voidmain(){语句1;语句2;语句3;语句4;语句5;语句6;语句7;语句8;语句9;语句10;语句11;语句12;语句13;语句14;语句15;}函数头函数体主函数程序总是从主函数开始执行,到主函数结束;主函数名字main不能修改。

预编译voidmain(){语句1;语句2;语句3;语句4;语句5;语句6;语句7;语句8;语句9;语句10;语句11;语句12;语句13;语句14;语句15;}重复使用function1(){语句3;语句4;语句5;}

预编译voidmain(){语句1;语句2;function1();语句6;语句7;function1();语句11;语句12;语句13;语句14;语句15;}完成相对独立的一个功能function1(){语句3;语句4;语句5;}

预编译intmain(){语句1;语句2;function1();语句6;语句7;function1();语句11;语句12;语句13;语句14;语句15;}function2(){语句12;语句13;语句14;语句15;}完成相对独立的一个功能function1(){语句3;语句4;语句5;}

预编译intmain(){语句1;语句2;function1();语句6;语句7;function1();语句11;语句12;语句13;语句14;语句15;}function2(){语句12;语句13;语句14;语句15;}

预编译intmain(){语句1;语句2;function1();语句6;语句7;function1();function2();}C语言程序是以函数形式来组织程序结构的一个C语言的源程序是由一个或若干个函数组成的每个C程序都必须有,且仅有一个主函数main()

程序的执行总是从主函数开始,最后在主函数中结束整个程序程序执行顺序与函数的排列顺序无关信号灯闪烁控制C语言程序预编译子函数delay主函数//是单行注释符/*…*/是多行注释符语句以;作为结束符可以一条语句书写多行,也可以一行书写多个语句C语言大小写敏感4谢谢4数据类型单片机应用技术——适用于应用型本科及高职高专电子信息类专业分门别类——数据类型

室外温度:-10.5π=3.1415926半径:r=2.5显示数据:0xfe,0xfd,0xfb…0x7f身高:175延时参数:20000体重:61中国人口:1367820000海拔:-100底下车库:-3无符号字符型(unsignedchar):0~255无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号整型(unsignedint):0~65535无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号整型(unsignedint):0~65535有符号整型(signedint或int):-32768~+32767无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号整型(unsignedint):0~65535有符号整型(signedint或int):-32768~+32767无符号长整型(unsignedlong):0~4294967295无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号整型(unsignedint):0~65535有符号整型(signedint或int):-32768~+32767无符号长整型(unsignedlong):0~4294967295有符号长整型(signedlong或long):-2147483648~+21474837无符号字符型(unsignedchar):0~255有符号字符型(signedchar或char):-128~+127无符号整型(unsignedint):0~65535有符号整型(signedint或int):-32768~+32767无符号长整型(unsignedlong):0~4294967295有符号长整型(signedlong或long):-2147483648~+21474837浮点型(float):±1.175494E-38~

±3.402823E+38

室外温度:-10.5π=3.1415926半径:r=2.5显示数据:0xfe,0xfd,0xfb…0x7f身高:175延时参数:20000体重:61中国人口:1367820000海拔:-1000底下车库:-3无符号字符型(unsignedchar):0~2550xfe0xfd0xfb0xf70xef0xbf0xdf0x7f61175有符号字符型(signedchar或char):-128~+127-3无符号整型(unsignedint):0~6553520000有符号整型(signedint或int):-32768~+32767-1000无符号长整型(unsignedlong):0~42949672951367820000有符号长整型(signedlong或long):-2147483648~+21474837浮点型(float):±1.175494E-38~

±3.402823E+38-10.53.14159262.5数据类型长度值域unsignedchar无符号字符型1B0~255signedchar有符号字符型-128~+127unsignedint无符号整型2B0~65535signedint有符号整型-32768~+32767unsignedlong无符号长整型4B0~4294967295signedlong有符号长整型-2147483648~+2147483647float浮点型4B±1.175494E-38~±3.402823E+38*指针型1~3B对象的地址sfr特殊功能寄存器1B0~255sfr1616位特殊功能寄存器2B0~65535bit位类型1b0或1sbit可寻址位0或1C51编译器所支持的数据类型4谢谢4常量单片机应用技术——适用于应用型本科及高职高专电子信息类专业一成不变——常量姓名性别出生日期工作单位职务住址身高体重血型张三男1993-05-01学校学生宿舍21.87135.5B整型浮点型位类型1表示男,0表示女姓名性别出生日期工作单位职务住址身高体重血型张三11993-05-01学校学生宿舍21.87135.5B整型浮点型位类型1表示男,0表示女字符型字符型字符型可变不变不变不变不变可变可变可变可变姓名性别出生日期工作单位职务住址身高体重血型可变不变不变不变不变可变可变可变可变性别出生日期血型不变姓名工作单位职务住址身高体重可变姓名性别出生日期工作单位职务住址身高体重血型可变不变不变不变不变可变可变可变可变性别出生日期血型不变姓名工作单位职务住址身高体重可变常量变量常量是指程序执行期间其值固定,不能改变的量。数据格式示例十进制88、-192十六进制0x58、-0xc0长整型88L、0x58L、o130L整型常量举例流水灯程序数据格式示例十进制88、-192十六进制0x58、-0xc0长整型88L、0x58L、o130L整型常量举例浮点常量举例举例数据格式示例小数0.888、345.3指数8.88e-1、3.453e2数据格式示例英文单引号:’’‘A’、’9’ASCII码65、57字符常量举例ASCII:AmericanStandardCodeforInformationInterchange字符串常量举例数据格式示例说明双引号括起来”china”’c’、’h’、’i’、’n’、’a’、’\0’”A”

’A’、’\0’””空字符串,’\0’每个字符串的尾部都有一个’\0’作为结束符值域数据类型0或1位类型bit位类型常量信号灯闪烁控制C语言程序常量的定义整型常量浮点型常量字符型常量字符串常量位常量4谢谢4巧用define单片机应用技术——适用于应用型本科及高职高专电子信息类专业方便实用——巧用define流水灯程序流水灯程序流水灯程序流水灯程序#define<宏名>

<字符串>#definePI3.1415926

流水灯程序无符号整型数unsignedint

无符号字符型unsignedchar#defineuintunsignedint

#defineucharunsignedchar宏定义一般是放在程序的预编译部分,其作用域就是从宏定义命令起到源程序结束,如果中间要终止其作用域,可以使用#undef命令。宏定义只是纯粹的替换和展开。宏定义不是说明或语句,所以在行末不用加分号,如果加上了分号,替换时连分号也一起替换。

4谢谢4变量的使用单片机应用技术——适用于应用型本科及高职高专电子信息类专业常用常新——变量的使用unsignedinti,count=1000;//定义整型变量charled=0x7f;

//定义字符型变量bitflag=0;

//定义位变量………………存储器unsignedinti,count=1000;//定义整型变量charled=0x7f;

//定义字符型变量bitflag=0;

//定义位变量count………………iledflag10000x7f00unsignedinti,count=1000;//定义整型变量charled=0x7f;

//定义字符型变量bitflag=0;

//定义位变量存储器led=20000;//整型数赋值给字符变量i=3.1415926;//浮点数赋值给整型变量led=32;//20000-256*78=32i=3;//浮点数赋值给整型变量信号灯闪烁控制C语言程序流水灯程序内部变量(局部变量):在函数内部定义的变量。作用域仅限于函数内。不同函数的内部变量是可以重名的。指定效果流水灯程序变量是程序中存放临时数据的场所;变量需先定义,后使用;编译器按照变量类型,为变量分配存储空间;不同类型的变量分配的存储空间也不一样;在程序执行过程中不断变化,变量中存放的总是最新的值。4谢谢4变量及定义单片机应用技术——适用于应用型本科及高职高专电子信息类专业数据容器——变量及定义性别出生日期血型不变姓名工作单位职务住址身高体重可变常量变量30.8℃变量相当于一个存放数据的容器玻璃杯保温杯酒盅类型不同名字不同内容不同变量的类型变量名变量的值变量类型不同名字不同内容不同变量类型:float变量名:temperature30.8℃变量的值floattemperature;//定义浮点型变量temperature,存放温度值floattemperature,height,weight;//定义浮点型变量temperature,存放温度值

//定义浮点型变量height,存放身高//定义浮点型变量weight,存放体重变量类型变量列表,逗号相隔temperature=30.8;//初值height=178.5;weight=135.5;floattemperature=30.8,height=178.5,weight=135.5;//定义浮点型变量temperature,存放温度值,初值30.8

//定义浮点型变量height,存放身高,初值178.5//定义浮点型变量weight,存放体重,初值135.54谢谢4命名规则单片机应用技术——适用于应用型本科及高职高专电子信息类专业见名知意——命名规则宏名函数名变量名标识符——用来命名程序中的数据或者实体的名字。流水灯程序▲用户标识符不能和C语言关键字重名。▲C语言的标识符主要由英文字母、数字或下划线构成,但开头字符一定是字母或者下划线。a$sumStudent_name_temperatureint2names▲C语言的标识符主要由英文字母、数字或下划线构成,但开头字符一定是字母或者下划线。a 合法$sum 非法Student_name 合法_temperature 合法int 非法2names 非法▲C语言的标识符主要由英文字母、数字或下划线构成,但开头字符一定是字母或者下划线。a 合法

风格晦涩$sum 非法Student_name 合法见名知意_temperature 合法

见名知意int 非法2names 非法▲建议最短的名字,最丰富的含义——见名知意。流水灯程序uint:unsignedint的缩写uchar:unsignedchar的缩写LED:发光二极管的控制接口TIME:流水灯的延时时间delay:延时i,j,k:不重要的中间数据▲用户标识符不能和C语言关键字重名。▲C语言的标识符主要由英文字母、数字或下划线构成,但开头字符一定是字母或者下划线。▲建议最短的名字,最丰富的含义——见名知意。▲建议符号常量一般用大写。▲建议比较长的名字最好用下划线隔开。4谢谢关系运算单片机应用技术——适用于应用型本科及高职高专电子信息类专业4真与假——关系运算大于:>小于:<大于等于:≥小于等于:≤不等于

:≠等于:=数学比较符号大于:>小于:<大于等于:>=小于等于:<=不等于

:!=等于:==关系运算符关系表达式:用关系运算符连接起来的式子假定a=5;b=3;a>b的结果是什么呢?真假关系表达式:用关系运算符连接起来的式子假定a=5;b=3;a>b的结果是什么呢?真1假0真1a==b假0a!=b真1sbitS1=P1^0;S1==0真1表示开关拨到了位置3假0表示开关拨到了位置1S1!=1S1==1真1表示开关拨到了位置3假0表示开关拨到了位置1S1!=0a==b>ca==(b>c)>,<,>=,<=优先于==,!=4谢谢4算术运算单片机应用技术——适用于应用型本科及高职高专电子信息类专业加减乘除——算术运算22.0/4=5.522/4=5取余运算的两个操作数必须是整数。取余运算有什么用处呢?我们来看一个应用,如果我们需要把一个整数在数码管或者液晶上显示出来的话,那就需要把一个整数的每位拆分开来,一位一位进行显示,例如,要显示25这个数,我们就需要把25这个数的十位和个位拆分开来,分别是2和5,那用什么运算能实现这个结果呢?2525252525/10=225%10=5378137813781/1000=33781/100%10=73781%100/10=83781%10=130000ii--?i指定效果流水灯程序30000ii--29999i指定效果流水灯程序0ii++?i指定效果流水灯程序0ii++1ii++2ii++3i指定效果流水灯程序i=3;j=i++;k=++i;i=3;j=i++;//后置运算,先使用i的值,再做++运算,j=3,i=4

//j=i;i++;k=++i;i=3;j=i++;//后置运算,先使用i的值,再做++运算,j=3,i=4

//j=i;i++;k=++i;//前置运算,先进行++运算,再使用i的值

//i++;k=i;i=3;j=i++;//后置运算,先使用i的值,再做++运算,j=3,i=4

//j=i;i++;k=++i;//前置运算,先进行++运算,再使用i的值,i=5,k=5

//i++;k=i;建议尽量避免++、--和其它运算用在一起,以防出错;单独使用的++i和i++,结果都是把i的值增1。圆的面积公式:S=πr²S=PI*r*r;用算术运算符连接起来的式子,就叫算术表达式。4谢谢4逻辑运算单片机应用技术——适用于应用型本科及高职高专电子信息类专业与或非——逻辑运算人口普查age<6age>=186<=age<18逻辑与:&&逻辑或:||逻辑非:!逻辑运算符真真真逻辑与:&&表达式1&&表达式2&&=真&&=假假真&&=假假&&=假假假逻辑或:||表达式1||表达式2真真真||=真||=假真=假=假假假||||真真逻辑非:!!表达式真!=假!=假真真真真逻辑与:&&逻辑或:||逻辑非:!逻辑运算符表达式1&&表达式2&&=真&&=假假真&&=假假&&=假假假表达式1||表达式2真真真||=真||=假真=假=假假假||||真真!表达式真!=假!=假真逻辑与:&&逻辑或:||逻辑非:!逻辑运算符表达式1&&表达式2表达式1||表达式2!表达式6≤age<18age>=6age<18&&!优先级别最高,其次是&&,最低是||!>算术运算符>关系运算符>&&>||逻辑表达式:用逻辑运算符连接起来的式子4谢谢4位运算单片机应用技术——适用于应用型本科及高职高专电子信息类专业01游戏——位运算P1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0游戏名称:0和1游戏规则:指定小组中一位或多位组员,直接按要求改变它们的值,没有被指到的位的值保持不变。(不能使用位操作)x:代表0或1xxxxxxxxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0游戏第1关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)x:代表0或1xxxxxxxxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0位运算在二进制位的级别上进行的一系列运算。按位与运算:&运算法则:有0出0,全1出1aba&b000010100111x&0=0//x代表0或者1x&1=x//x代表0或者1游戏第1关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)x:代表0或1xxxxxxxxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0xxxxxxxx11110000&xxxx0000xxxx0000P1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0游戏第2关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)x:代表0或1xx1111xxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0按位或运算:|运算法则:有1出1,全0出0aba|b000011101111x|0=x//x代表0或者1x|1=1//x代表0或者1游戏第2关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)x:代表0或1xx1111xxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0P1=P1|0x3axxxxxxxx00111100|xx1111

xxx:代表0或1P1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0xx1111xx游戏第3关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)取反取反取反取反取反x:代表0或1xxxxxxxxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0游戏第3关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)取反取反取反取反取反x:代表0或111110000P1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.010101011按位异或运算:^运算法则:相同为0,不同为1aba^b000011101110x^0=x

//x代表0或者1x^1=取反

//x代表0或者101011011游戏第3关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)取反取反取反取反取反x:代表0或1xxxxxxxxP1P1

.7

P1.6P1.5P1.4

P1.3

P1.2P1.1P1.0P1=P1^0x5b11110000^1010101110101011游戏第4关游戏名称:0和1游戏规则:指定小组中一位或多位组员,按要求改变它们的值,没有被指到的位的值保持不变。(不能使用用位操作)取反取反取反取反取反

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论