单片微机原理与应用part-10课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片微机原理与应用part-10课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 微机 原理 应用 part_10 课件
- 资源描述:
-
1、 2022-7-2612022-7-262【基本知识点与要求【基本知识点与要求】(1)理解单片机)理解单片机C语言程序开发流程及结构。语言程序开发流程及结构。(2)掌握数据类型及其在单片机中的存储类型。)掌握数据类型及其在单片机中的存储类型。(3)了解)了解C51的顺序、分支和循环控制流程。的顺序、分支和循环控制流程。(4)掌握)掌握C51一般函数和中断函数的应用。一般函数和中断函数的应用。(5)理解单片机)理解单片机C语言程序开发流程及结构,掌握语言程序开发流程及结构,掌握Keil C51的使用。的使用。【重点与难点【重点与难点】各种数据类型在各种数据类型在C51中的应用,中的应用,Keil
2、 C51的使用,难点的使用,难点是中断函数的应用。是中断函数的应用。2022-7-263 基于基于5151系列单片机的系列单片机的C C语言或语言或C C语言编译器简称为语言编译器简称为C51C51语言或语言或C51C51。单片机的资源有限,因此。单片机的资源有限,因此C51C51在在C C语言的基础上进行了扩展。语言的基础上进行了扩展。使用使用C51C51不需要记忆汇编语言指令,但需要对不需要记忆汇编语言指令,但需要对5151单片机的组单片机的组成结构有所了解,这样才能更好的设计成结构有所了解,这样才能更好的设计C51C51应用程序。应用程序。printf和和scanf这两个函数在这两个函数
3、在ANSI C中通常用于屏幕输出和中通常用于屏幕输出和接收字符,而在接收字符,而在C5l中,它们则主要用于串行接口通信时数据的中,它们则主要用于串行接口通信时数据的发送和接收。发送和接收。10.1.1 C5110.1.1 C51程序开发流程程序开发流程 源程序编写之后,就要在编译软件的环境源程序编写之后,就要在编译软件的环境Keil C51中进行编中进行编译和连接,生成绝对定位目标码文件,即单片机可以执行的目标译和连接,生成绝对定位目标码文件,即单片机可以执行的目标文件。若源程序有错误则要重新修改才能再进行编译和连接。该文件。若源程序有错误则要重新修改才能再进行编译和连接。该绝对定位目标码文件
4、最终可以被写入编程器或硬件仿真器。与硬绝对定位目标码文件最终可以被写入编程器或硬件仿真器。与硬件一起完成系统功能。件一起完成系统功能。2022-7-264C51程序开发过程程序开发过程 2022-7-26510.1.2 C5110.1.2 C51程序结构程序结构 C51源程序的结构:源程序的结构:(1)C51语言是由函数构成的。语言是由函数构成的。一个一个C51源程序至少包括一源程序至少包括一个函数(个函数(main),也可以包含一个),也可以包含一个main函数和若干其它函数。函数和若干其它函数。因此,函数是因此,函数是C51程序的基本单位。被调用的函数可以是编译程序的基本单位。被调用的函数
5、可以是编译器提供的库函数,也可以是用户自己编制的函数。器提供的库函数,也可以是用户自己编制的函数。(2)一个)一个C51程序总是从程序总是从main函数开始执行的,而不论函数开始执行的,而不论main函数在整个程序中的位置如何。函数在整个程序中的位置如何。(3)任何编程语言都支持注释语句。)任何编程语言都支持注释语句。注释语句只对代码起注释语句只对代码起到功能描述的作用,在实际的编译链接过程中不起作用。到功能描述的作用,在实际的编译链接过程中不起作用。C51语言中可以用语言中可以用“/”符号开头来注释一行,或者用符号开头来注释一行,或者用“/*”符号开头、符号开头、并以并以“*/”符号结束,对
6、符号结束,对C51源程序中的任何部分进行注释。源程序中的任何部分进行注释。2022-7-266下面是一个简单的下面是一个简单的C51程序。程序。#include“reg51.h”sbit P1_0=P10;void main()P1_0=0;这个程序的作用是这个程序的作用是P1.0 引脚输出低电平。引脚输出低电平。“文件包含文件包含”是指一个文件将另外一个文件的内容全部包含是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有进来,所以这里的程序虽然只有4行,但行,但C编译器在处理的时候却编译器在处理的时候却要处理几十或几百行。这里程序中包含要处理几十或几百行。这里程序中包含re
7、g51.h文件的目的是为了文件的目的是为了要使用要使用P1这个符号。这个符号。2022-7-267打开打开 reg51.h 可以看到内容:可以看到内容:/*-REG51.HHeader file for generic 80C51 and 80C31 microcontroller。Copyright(c)1988-2001 Keil Elektronik GmbH and Keil Software,Inc。All rights reserved。-*/*BYTE Register*/sfr P0=0 x80;sfr P1=0 x90;sfr P2=0 xA0;sfr P3=0 xB0;sf
8、r PSW=0 xD0;sfr ACC=0 xE0;sfr B=0 xF0;sfr SP=0 x81;sfr DPL=0 x82;sfr DPH=0 x83;sfr PCON=0 x87;sfr TCON=0 x88;sfr TMOD=0 x89;sfr TL0=0 x8A;sfr TL1=0 x8B;sfr TH0=0 x8C;sfr TH1=0 x8D;sfr IE=0 xA8;sfr IP=0 xB8;sfr SCON=0 x98;sfr SBUF=0 x99;2022-7-268/*BIT Register*/*PSW*/sbit CY=0 xD7;sbit AC=0 xD6;sbit
9、 F0=0 xD5;sbit RS1=0 xD4;sbit RS0=0 xD3;sbit OV=0 xD2;sbit P=0 xD0;/*TCON*/sbit TF1=0 x8F;sbit TR1=0 x8E;sbit TF0=0 x8D;sbit TR0=0 x8C;sbit IE1=0 x8B;sbit IT1=0 x8A;sbit IE0=0 x89;sbit IT0=0 x88;/*IE*/sbit EA=0 xAF;sbit ES=0 xAC;sbit ET1=0 xAB;sbit EX1=0 xAA;sbit ET0=0 xA9;sbit EX0=0 xA8;/*IP*/sbit
10、PS=0 xBC;sbit PT1=0 xBB;sbit PX1=0 xBA;sbit PT0=0 xB9;sbit PX0=0 xB8;/*P3*/sbit RD=0 xB7;sbit WR=0 xB6;sbit T1=0 xB5;sbit T0=0 xB4;sbit INT1=0 xB3;sbit INT0=0 xB2;sbit TXD=0 xB1;sbit RXD=0 xB0;/*SCON*/sbit SM0=0 x9F;sbit SM1=0 x9E;sbit SM2=0 x9D;sbit REN=0 x9C;sbit TB8=0 x9B;sbit RB8=0 x9A;sbit TI=0
11、 x99;sbit RI=0 x98;2022-7-269 C51具有具有ANSI C的所有标准数据类型,包括:的所有标准数据类型,包括:char、int、long、float、*。除此之外,。除此之外,C51还增加了一些特殊的数据类还增加了一些特殊的数据类型,型,包括包括bit、sfr、sfr16、sbit。主要阐述主要阐述C51不同于标准不同于标准ANSI C的数据类型的数据类型(位变量类型,特殊功能寄存器类型位变量类型,特殊功能寄存器类型)。bit位变量声明位变量声明声明一个位变量或位类型函数声明一个位变量或位类型函数sbit可寻址位变量声明可寻址位变量声明声明一个可位寻址的位变量声明一
12、个可位寻址的位变量sfr8 8位特殊功能寄存器位特殊功能寄存器声明声明声明一个声明一个8 8位特殊功能寄存器位特殊功能寄存器sfr161616位特殊功能寄存器位特殊功能寄存器声明声明声明一个声明一个1616位特殊功能寄存器位特殊功能寄存器2022-7-2610(1)位类型()位类型(bit)bit类型存放逻辑变量,占用一个位地址,类型存放逻辑变量,占用一个位地址,C51编译器将编译器将把把bit类型的变量安排在单片机片内类型的变量安排在单片机片内RAM的位寻址区(的位寻址区(20H2FH)。在一个作用域中最大可声明)。在一个作用域中最大可声明128个位变量。个位变量。bit变量的声明与其他变量
13、相同,例如:变量的声明与其他变量相同,例如:bit done_flag=0 ;/定义位变量定义位变量done_flag,初值为,初值为0 bit func(bit bvar1););/bit 类型的函数类型的函数 bit bvar2;return(bvar2);/返回值是返回值是bit类型类型 不能定义位变量指针或位数组。不能定义位变量指针或位数组。2022-7-2611 5151系列单片机提供系列单片机提供128B128B的的SFRSFR区域。这个区域可字节寻址,区域。这个区域可字节寻址,有些也可进行字寻址、有些也可进行位寻址。用以访问定时有些也可进行字寻址、有些也可进行位寻址。用以访问定时
14、器、计数器、串行口、器、计数器、串行口、I/OI/O及其他部件,分别及其他部件,分别由由sfr、sfr16、sbit关键字说明关键字说明。(2)sfr C51使用使用sfr对对51系列单片机中的特殊功能寄存器进行定义。系列单片机中的特殊功能寄存器进行定义。这种定义方法与标准这种定义方法与标准C语言不兼容,只适用于对语言不兼容,只适用于对51系列单片机系列单片机进行进行C编程。是一种扩充数据类型,占用一个数据存储单元,编程。是一种扩充数据类型,占用一个数据存储单元,取值范围为:取值范围为:0 x800 xFF。2022-7-2612 定义格式为:定义格式为:sfr 变量名变量名=SFR中的地址中
15、的地址例如:定义例如:定义P0、P1口地址。口地址。sfr P0=0 x80;sfr P1=0 x90;【注意【注意】sfr后面必须跟一个特殊寄存器名,后面必须跟一个特殊寄存器名,“=”后面的地后面的地址必须是常数,不允许带有运算符的表达式。址必须是常数,不允许带有运算符的表达式。(3 3)sfr16 用于定义用于定义5151系列单片机内部系列单片机内部1616位特殊功能寄存器。当位特殊功能寄存器。当SFRSFR的的高位地址直接位于其低位地址之后时,对高位地址直接位于其低位地址之后时,对SFRSFR位值可以进行直接位值可以进行直接访问,使用关键字访问,使用关键字“sfrl6”sfrl6”。与与
16、8位位SFR定义的区别是定义的区别是16位位SFR的低端地址必须作为的低端地址必须作为“sfrl6”的定义地址。的定义地址。例如:例如:sfr16 T2=0 xCC /sfr16 T2=0 xCC /定义定时器定义定时器2 2为为T2T2,即,即TL2TL2为为 0CCH0CCH,TH2TH2为为0CDH0CDH;等价于,对;等价于,对TL2TL2和和TH2TH2分别定义。分别定义。sfrsfr TL2=0 xCC TL2=0 xCC 和和sfrsfr TH2=0 xCD TH2=0 xCD两条语句。两条语句。2022-7-2613(4)sbit 关键字关键字sbitsbit定义可位寻址的特殊
17、功能寄存器的某位。定义可位寻址的特殊功能寄存器的某位。定义方法有如下三种:定义方法有如下三种:sbit 位变量名位变量名=位地址位地址 此时,位地址必须位于此时,位地址必须位于0 x800 x800 xFF0 xFF之间。之间。sbitsbit CY=0 xD7 CY=0 xD7;/用绝对位地址表示用绝对位地址表示PSWPSW中的第中的第8 8位位 sbit 位变量名位变量名=特殊功能寄存器名特殊功能寄存器名位位置位位置 此时,位位置是一个此时,位位置是一个0 07 7之间的常数。之间的常数。sbitsbit CY=PSW CY=PSW7 7;/必须事先已经定义了必须事先已经定义了PSWPSW
展开阅读全文