51单片机超详细教程(绝对值)ppt课件.ppt
《51单片机超详细教程(绝对值)ppt课件.ppt》由会员分享,可在线阅读,更多相关《51单片机超详细教程(绝对值)ppt课件.ppt(242页珍藏版)》请在三一办公上搜索。
1、全国高职高专规划教材精品与示范系列,单片机应用技术(C语言版),王静霞 主 编,本章内容什么是单片机 MCS-51内部组成及信号引脚单片机最小系统电路MCS-51存储器结构,第1章 单片机硬件系统,什么是单片机,单片微型计算机(Single Chip Microcomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(Central Processing Unit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。单片机内部基本结构如图1.7所
2、示。由于它的结构与指令功能都是按照工业控制要求设计的,故又称为微控制器(Micro-Controller Unit,简称MCU)。,什么是单片机,单片机应用系统,单片机应用系统由硬件和软件组成,硬件是应用系统的基础,软件是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可,单片机种类,目前8位单片机仍是单片机的主流机型;,生产厂商:,单片机的发展经历了由4位机到8位机,再到16位机的发展过程,美国微芯片公司:PIC16C系列、PIC17C系列、PIC1400系列,美国英特尔公司的MCS-48和MCS-51系列,美国摩托罗拉公司的MC68HC05系列和
3、MC68HC11系列,美国齐洛格公司的Z8系列,日本电气公司的PD78系列,美国莫斯特克公司和仙童公司合作生产的F8(3870)系列等。,单片机硬件结构,中央处理器CPU:8位,运算和控制功能,内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。,内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。,定时/计数器:两个16位的定时/计数器,实现定时或计数功能。,并行I/O口:4个8位的I/O口P0、P1、P2、P3。,串行口:一个全双工串行口。,中断控制系统:5个中断源(外中断2个,定时/计数中断2 个,串行中断1个),时钟电路
4、:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ,复位电路,8051单片机的基本组成,中央处理器CPU:8位,运算和控制功能内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。定时/计数器:两个16位的定时/计数器,实现定时或计数功能。并行I/O口:4个8位的I/O口P0、P1、P2、P3。串行口:一个全双工串行口。中断控制系统:5个中断源(外中断2个,定时/计数中断2个, 串行中断1个)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ,MCS-51单片机信
5、号引脚简介,P3口线的第二功能,VCC,VSS,XTAL2XTAL1,RST,P0. 0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1. 0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2. 0,ALE,P3. 0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,2、振荡电路:XTAL1、XTAL2,3、复位引脚:RST,4、并行口:P0、P1、P2、P3,7、ALE:地址锁存控制信号,1、电源线:VCC(+5V)、VSS(地),时钟电路与复位电路 (1)时
6、钟振荡电路,时 序,关于MCS-51系列单片机的时序概念有4个,可用定时单位来说明,从小到大依次是:节拍、状态、机器周期和指令周期,下面分别加以说明。1)节拍与状态 把振荡脉冲的周期定义为节拍,用P表示,也就是晶振的振荡频率fosc。2)状态 振荡脉冲fosc经过二分频后,就是单片机时钟信号的周期,定义为状态,用S表示。一个状态包含两个节拍,其前半周期对应的节拍叫P1,后半周期对应的节拍叫P2。3)机器周期 MCS-51系列单片机采用定时控制方式,有固定的机器周期。规定一个机器周期的宽度为6个状态,即12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。小提示 当振荡脉冲频率为12 MHz时
7、, 一个机器周期为1s;当振荡脉冲频率为6 MHz时,一个机器周期为2 s。,(2)复位电路,单片机复位条件: 必须使RST引脚持续2微秒高电平(外部时钟12MHz),存储器,80318751805189C51,256B(字节),4K,(1)程序存储器,程序存储器,内部,外部,(PC),程序存储器资源分布,中断入口地址,在单片机C语言程序设计中,用户无需考虑程序的存放地址,编译程序会在编译过程中按照上述规定,自动安排程序的存放地址。例如:C语言是从main()函数开始执行的,编译程序会在程序存储器的0000H处自动存放一条转移指令,跳转到main()函数存放的地址;中断函数也会按照中断类型号,
8、自动由编译程序安排存放在程序存储器相应的地址中。因此,读者只需了解程序存储器的结构就可以了。,内部,外部,(2)数据存储器,数据存储器,RAM,专用寄存器,内部RAM存储器,工作寄存器区选择位RS0、RS1,注意: 一个单元地址对应有8个位地址MSBMost Significant Bit (最高有效位)LSB Least Significant Bit (最低有效位),RAM位寻址区位地址表,高128个单元,离散分布有21个特殊功能寄存器SFR。, 11个可以进行位寻址。,特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。,在单片机的C语言程序设计中,可以
9、通过关键字sfr来定义所有特殊功能寄存器,从而在程序中直接访问它们,例如:sfr P1=0 x90; /特殊功能寄存器P1的地址是90H,对应P1口的8个I/O引脚在程序中就可以直接使用P1这个特殊功能寄存器了,下面语句是合法的:P1=0 x00; /将P1口的8位I/O口全部清0C语言中,还可以通过关键字sbit来定义特殊功能寄存器中的可寻址位,在程序ex1_1.c中,采用了下面语句定义P1口的第0位:sbit P1_0=P10;通常情况下,这些特殊功能寄存器已经在头文件reg51.h中定义了,只要在程序中包含了该头文件,就可以直接使用已定义的特殊功能寄存器。如果没有头文件reg51.h,或
10、者该文件中只定义了部分特殊功能寄存器和位,用户也可以在程序中自行定义。,AVR,单片机,C语言,C51, 编程基础,实例,好资料,本章内容单片机开发系统及功能Keil C51软件的使用,第2章 单片机开发系统,单片机开发系统及功能,单片机开发系统是单片机应用系统设计的必需工具,包括计算机、单片机在线仿真器、工具软件、编程器等。 在线仿真功能调试功能 1) 运行控制功能 2) 目标系统状态的读出修改功能辅助设计功能 1) 程序设计语言 2) 程序编译程序固化功能,Keil C51软件的使用,Keil C51启动窗口,Keil C51软件的使用,建立工程文件,Keil C51软件的使用,选择目标C
11、PU,Keil C51软件的使用,图2.17 文本编缉窗口,Keil C51软件的使用,增加文件到组中,Keil C51软件的使用,选择文件类型,Keil C51软件的使用,目标属性,Keil C51软件的使用,产生执行文件,Keil C51软件的使用,选择仿真方式,Keil C51软件的使用,Keil C51内建了一个仿真CPU来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真器的情况下进行程序的调试。不过,软件模拟与真实的硬件执行程序还是有区别的,其中最明显的就是时序,具体表现在程序执行的速度和用户使用的计算机有关,计算机性能越好,运行速度越快。,本章内容单片机开发系统及功能Kei
12、l C51软件的使用,第2章 单片机开发系统,单片机开发系统及功能,单片机开发系统是单片机应用系统设计的必需工具,包括计算机、单片机在线仿真器、工具软件、编程器等。 在线仿真功能调试功能 1) 运行控制功能 2) 目标系统状态的读出修改功能辅助设计功能 1) 程序设计语言 2) 程序编译程序固化功能,Keil C51软件的使用,Keil C51启动窗口,Keil C51软件的使用,建立工程文件,Keil C51软件的使用,选择目标CPU,Keil C51软件的使用,图2.17 文本编缉窗口,Keil C51软件的使用,增加文件到组中,Keil C51软件的使用,选择文件类型,Keil C51软
13、件的使用,目标属性,Keil C51软件的使用,产生执行文件,Keil C51软件的使用,选择仿真方式,Keil C51软件的使用,Keil C51内建了一个仿真CPU来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真器的情况下进行程序的调试。不过,软件模拟与真实的硬件执行程序还是有区别的,其中最明显的就是时序,具体表现在程序执行的速度和用户使用的计算机有关,计算机性能越好,运行速度越快。,本章内容并行I/O口电路结构认识C语言C语言的基本语句C语言数据与运算数组的概念,第3章 单片机并行I/O口应用,并行I/O口电路结构,MCS-51系列单片机共有四个8位并行I/O口,分别用P0、P
14、1、P2、P3表示。 每个I/O口既可以按位操作使用单个引脚,也可以按字节操作使用8个引脚。,P0口的结构,P0口逻辑电路,当P0口作为输出口使用时,内部总线将数据送入锁存器,内部的写脉冲加在锁存器时钟端CP上,锁存数据到Q、端。经过MUX,T2反相后正好是内部总线的数据,送到P0口引脚输出。 当P0口作为输入口使用时,应区分读引脚和读端口两种情况,所谓读引脚,就是读芯片引脚的状态,这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内部总线读进来。 读端口是指通过上面的缓冲器读锁存器Q端的状态。读端口是为了适应对I/O口进行“读-修改-写”操作语句的需要。例
15、如下面的C51语句: P0=P0/将P0口的低4位引脚清0输出,P0口的结构,除了I/O功能以外,在进行单片机系统扩展时,P0口是作为单片机系统的地址/数据线使用的,一般称为地址/数据分时复用引脚。 当输出地址或数据时,由内部发出控制信号,使“控制”端为高电平,打开与门,并使多路开关MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。此时,输出驱动电路由于两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。输入数据时,数据信号直接从引脚通过输入缓冲器进入内部总线。,P0口的结构,P1口的结构,P1口逻辑电路,P1口是准双向口,只能作为通用I/O口使用。P1口作为输出口使用时,无需
16、再外接上拉电阻。P1口作为输入口使用时,应区分读引脚和读端口。读引脚时,必须先向电路中的锁存器写入“1”,使输出级的FET截止。,P1口的结构,P2口的结构,P2口逻辑电路,P2口是准双向口,在实际应用中,可以用于为系统提供高8位地址,也能作为通用I/O口使用。P2口作为通用I/O口的输出口使用时,与P1口一样无需再外接上拉电阻。P2口作为通用I/O口的输入口使用时,应区分读引脚和读端口。读引脚时,必须先向锁存器写入“1”。,P2口的结构,P3口的结构,P3口逻辑电路,P3口是准双向口,可以作为通用I/O口使用,还可以作为第二功能使用。作为第二功能使用的端口,不能同时当作通用I/O口使用,但其
17、他未被使用的端口仍可作为通用I/O口使用。P3口作为通用I/O的输出口使用时,不用外接上拉电阻。,P3口的结构,认识C语言,C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中所描述的“子程序”或“过程”的概念是一样的。,C程序基本结构,认识C语言,一个C语言源程序是由一个或若干个函数组成,每一个函数完成相对独立的功能。每个C程序都必须有(且仅有)一个主函数main(),程序的执行总是从主函数开始,调用其他函数后返回主函数main(),不管函数的排列顺序如何,最后在主函数中结束整个程序。C语言程序中可以有预处理命令,预处理命令通常放在源程序的最前面。C语言程序使用“;”作为语句的结束符
18、,一条语句可以多行书写,也可以一行书写多条语句。,认识C语言,结构化语言丰富的数据类型便于维护管理与汇编语言相比,C语言的优点如下:不要求编程者详细了解单片机的指令系统,但需了解单片机的存储器结构;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;结构清晰,程序可读性强;编译器提供了很多标准库函数,具有较强的数据处理能力。,C语言的基本语句,语言程序的执行部分由语句组成。C语言提供了丰富的程序控制语句,按照结构化程序设计的基本结构:顺序结构、选择结构和循环结构,组成各种复杂程序。这些语句主要包括表达式语句、复合语句、选择语句和循环语句等。,表达式语句和复合语句,表达式语句是最基本的C
19、语言语句。表达式语句由表达式加上分号“;”组成,其一般形式如下: 表达式;执行表达式语句就是计算表达式的值。在 C 语言中有一个特殊的表达式语句,称为空语句。空语句中只有一个分号“;”,程序执行空语句时需要占用一条指令的执行时间,但是什么也不做。在C51程序中常常把空语句作为循环体,用于消耗CPU时间等待事件发生的场合。,表达式语句和复合语句,把多个语句用大括号括起来,组合在一起形成具有一定功能的模块,这种由若干条语句组合而成的语句块称为复合语句。在程序中应把复合语句看成是单条语句,而不是多条语句。复合语句在程序运行时,中的各行单语句是依次顺序执行的。在C语言的函数中,函数体就是一个复合语句。
20、,选择语句,基本if语句的格式如下:if (表达式) 语句组; if语句执行过程:当“表达式”的结果为“真”时,执行其后的“语句组”,否则跳过该语句组,继续执行下面的语句。,选择语句,if语句中的“表达式”通常为逻辑表达式或关系表达式,也可以是任何其他的表达式或类型数据,只要表达式的值非0即为“真”。以下语句都是合法的: if(3) if(x=8) if(P3_0)在if语句中,“表达式”必须用括号括起来。在if语句中,花括号“ ”里面的语句组如果只有一条语句,可以省略花括号。如“if (P3_0=0) P1_0=0;”语句,但是为了提高程序的可读性和防止程序书写错误,建议读者在任何情况下,都
21、加上花括号。,选择语句,if-else语句的一般格式如下:if (表达式) 语句组1; else 语句组2; if-else语句执行过程:当“表达式”的结果为“真”时,执行其后的“语句组1”,否则执行“语句组2”,选择语句,if-else-if语句是由 if else 语句组成的嵌套,用来实现多个条件分支的选择,其一般格式如下:if (表达式1) 语句组1; else if (表达式2) 语句组2; else if (表达式n) 语句组n; else 语句组n+1; ,选择语句,选择语句,多分支选择的switch语句, 其一般形式如下: switch(表达式) case常量表达式1: 语句组1
22、;break; case常量表达式2: 语句组2;break; case常量表达式n: 语句组n;break; default : 语句组n+1; 该语句的执行过程是:首先计算表达式的值,并逐个与case后的常量表达式的值相比较,当表达式的值与某个常量表达式的值相等时,则执行对应该常量表达式后的语句组,再执行break语句,跳出switch语句的执行,继续执行下一条语句。如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句组。,while语句用来实现“当型”循环,执行过程:首先判断表达式, 当表达式的值为真(非0)时,反复执行循环体。为假(0)时执行循环体外面的语句
23、。,循环体,格式:while(循环继续的条件表达式) 语句组; ,花括号不能丢掉!,请问:下述程序实现了什么功能?main( ) int i,sum=0; while(i=10) sum=sum+i; i+; ,循环语句,do-while语句用来实现“直到型”循环执行过程:先无条件执行一次循环体,然后判断条件表达式,当表达式的值为真(非0)时,返回执行循环体直到条件表达式为假(0)为止。,绝对不能少分号!,循环体,格式:do 循环体语句组; while(循环继续条件);,花括号不能丢掉!,请问:下述程序实现了什么功能?main( ) int i,sum=0; do sum=sum+i; i+;
24、 while(i=100);,循环语句,总循环次数已确定的情况下,可采用for语句形式为:for语句的一般形式: for(循环变量赋初值;循环继续条件;循环变量增值 ) 循环体语句组; ,分隔符为分号,请问:下述程序实现了什么功能?main( ) int i,y=0; for(i=1;i=10;i+) y=y+i; ,循环语句,for语句循环执行过程,for(循环变量赋初值;循环继续条件;循环变量增值 ) 循环体语句组; ,分隔符为分号,C语言数据与运算,1. 赋值运算符2. 算术运算符和算术表达式 3. 关系运算符和关系表达4. 逻辑运算符和逻辑表达式,赋值运算符,赋值语句的作用是把某个常量
25、或变量或表达式的值赋值给另一个变量。符号为=。这里并不是等于的意思,只是赋值,等于用=表示。赋值语句左边必须是变量或寄存器,且必须先定义。常量不能出现左边。,赋值运算符和赋值表达式,简单的赋值运算符:复合的赋值运算符,=,+ =、-=、*=、%=、/=,i + = 2 等价于 i = i + 2 a * = b + 5 等价于 a = a * (b + 5) x% = 3 等价于 x = x%3,算术运算符,(加法运算) (减法运算) * (乘法运算符) (除法运算符)% (求余运算符,或称模运算符)如: 4 % 20+ (变量自加1)- (变量自减1),注 意两个整数相除结果为整数,如8/5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 详细 教程 绝对值 ppt 课件
链接地址:https://www.31ppt.com/p-1374967.html