单片机基础知识资料_第1页
单片机基础知识资料_第2页
单片机基础知识资料_第3页
单片机基础知识资料_第4页
单片机基础知识资料_第5页
已阅读5页,还剩145页未读 继续免费阅读

下载本文档

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

文档简介

第1、3章单片机应用概述与开发步骤第4章

80C51单片机硬件基础知识第5章

80C51单片机软件基础知识第6章

80C51单片机内部资源及应用第7章单片机外部扩展资源及应用单片机应用技术11.电子计算机的发展概述2.单片机的发展过程及产品近况

3.单片机的特点4.单片机应用系统开发简介第1、3章单片机应用概述与开发步骤单片机简介2单片机及其展过程单片机是什么?单片机是单片微型计算机的简称,它是在一块半导体芯片上,集成了CPU、半导体存储器、I/O(Input/Output)接口、中断系统和定时器等计算机必备部件,所构成的一个完整的数字电子计算机。第1、3章单片机应用概述与开发步骤3单片机现状单片机经过约30年的发展,已经形成有几千种型号上百种品牌的半导体产业,对电子信息技术、工业控制技术、军事技术的发展起到巨大的推动作用。目前主流的单片机:51内核的系列单片机Microchip公司的PIC系列单片机Motorola公司的68系列TexasInstrument公司的MSP16bit系列单片机ARM内核的32bit系列单片机第1、3章单片机应用概述与开发步骤4单片机应用系统开发简介单片机应用系统是以单片机为核心构成的智能化产品。为了实现产品的智能化处理与智能化控制,还要嵌入相应的控制程序,称之为单片机应用软件。嵌入了应用软件的单片机系统称为单片机应用系统。单片机是单片机系统中的一个器件,单片机系统是构成某一单片机应用系统的全部硬件电路,单片机应用系统是单片机系统和应用软件相结合的产物。

第1、3章单片机应用概述与开发步骤5单片机应用系统的研制步骤和方法单片机应用系统开发的软硬件环境KeilC51高级语言集成开发环境基于Proteus的单片机系统仿真4.单片机应用系统开发简介Proteus开发环境第1、3章单片机应用概述与开发步骤6单片机应用系统的研制流程如图所示:第1、3章单片机应用概述与开发步骤7硬件系统

根据总体设计中确立的功能特性要求,确定单片机的型号、所需外围扩展芯片、存储器、I/O电路、驱动电路,可能还有A/D和D/A转换电路以及其它模拟电路,设计出应用系统的电路原理图。第1、3章单片机应用概述与开发步骤8硬件设计硬件电路做成目标板运用PROTEUS、PROTEL等软件第1、3章单片机应用概述与开发步骤9软件系统系统资源分配程序结构数学模型程序流程编制程序第1、3章单片机应用概述与开发步骤10程序设计通常是C语言或者汇编语言,在特定的集成开发环境(IDE)中编程调试,比如应用最广泛的KEILuVision3第1、3章单片机应用概述与开发步骤11单片机应用系统的研制步骤和方法简介。第1、3章单片机应用概述与开发步骤12

一个典型的单片机系统开发环境组成如图所示。

单片机系统开发环境组成第1、3章单片机应用概述与开发步骤134.1MCS-51系列及80C51系列单片机简介4.280C51系列单片机外引脚功能4.380C51单片机内部结构4.4低功耗运行方式4.580C51单片机最小系统4.80C51单片机硬件基础知识重点重点重点144.1MCS-51系列及80C51系列单片机简介MCS-51系列和80C51系列单片机Intel公司推出的系列单片机有:MCS-48、MCS-51、MCS-96系列。Intel公司单片机系列的符号包括51和52两个子系列。第4章

80C51单片机硬件基础知识15基于HMOS工艺,它们的指令系统与芯片引脚完全兼容,只是片内程序存储器(ROM)有所不同。51系列单片机80318051875l80C3180C5187C5l第4章

80C51单片机硬件基础知识16MCS-51系列单片机内部组成8位CPU。片内带振荡器及时钟电路。128B片内数据存储器。4KB片内程序存储器(8031/80C31无)。程序存储器的寻址范围为64KB。片外数据存储器的寻址范围为64KB。21B特殊功能寄存器。4×8根I/O线。1个全双工串行I/O接口,可多机通信。2个16位定时器/计数器。中断系统有5个中断源,可编程为两个优先级。111条指令,含乘法指令和除法指令。布尔处理器。使用单+5V电源。51子系列的主要功能为:第4章

80C51单片机硬件基础知识17与51子系列的不同之处在于:片内数据存储器增至256B,片内程序存储器增至8KB(8032/80C32无),有26B的特殊功能寄存器,有3个16位定时器/计数器,有6个中断源。其他性能均与5l子系列相同。52系列单片机80328052875280C3280C5287C52第4章

80C51单片机硬件基础知识18Intel80C51系列单片机产品命名规则

第4章

80C51单片机硬件基础知识194.280C51系列单片机外引脚功能常用两种封装为双列直插式DIP40和方形封装式LCC44P1口P3口P0口P2口

时钟端

复位端控制信号

接VCC(+5V)

接地端204.280C51系列单片机外引脚功能第4章

80C51单片机硬件基础知识21地址、数据和控制:三总线结构80C51三总线具有以下特点:

(1)P0口的地址/数据复用。(2)两个独立的并行扩展空间。(3)外围数据存储器扩展的统一编址。

锁存器第4章

80C51单片机硬件基础知识2280C51单片机内部结构框图23中央处理器CPU

单片机最核心的部分是CPU,可以说CPU是单片机的大脑和心脏。第4章

80C51单片机硬件基础知识24存储器组织(哈佛结构)25在程序存储器中,以下单元具有特殊功能0000H:80C51复位后,PC=0000H,即程序从0000H开始执行指令。0003H:外部中断0入口。000BH:定时器0溢出中断入口。0013H:外部中断1入口。001BH:定时器1溢出中断入口。0023H:串行口中断入口。002BH:定时器2入口(仅52子系列有)。

程序存储器(51子序列)程序存储器用于存放编好的程序或表格常数26数据存储器

数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。

80C51系列单片机数据存储器有片内和片外之分。片内又有RAM和SFR之分,这几个部分的访问指令不同的,从这一点看,数据存储器的使用比程序存储器略微复杂点。采用C51语言编程则要简单许多。第4章

80C51单片机硬件基础知识27

这样可把数据存储器分为片外数据存储器、片内数据存储器、特殊功能存储器,以下分别加以介绍。1)片内数据存储器

片内数据存储器分为工作寄存器区、位寻址区、数据缓冲器区等三个区域。第4章

80C51单片机硬件基础知识28工作寄存器区00H~1FH单元为工作寄存器区。工作寄存器也称通用寄存器,供用户编程时使用,临时寄存8位信息。

80c51单片机片内RAM配置1)片内数据存储器

29位寻址区

20H~2FH单元是位寻址区,该区的每一位都赋予了一个位地址。数据缓冲区

30H~7FH是数据缓冲区,即用户RAM区,共80个单元。堆栈与堆栈指针

片内RAM的部分单元还可以用作堆栈。1)片内数据存储器

302)特殊功能寄存器

所有单片机片内外设是依靠对内部特殊功能寄存器的操作实现其功能的,80C51也不例外,特殊功能寄存器(SFR,SpecialFunctionRegister)也称专用寄存器,专用于控制、管理单片机内部算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,不能移作他用。

通过特殊功能寄存器可实现对单片机内部资源的操作和管理。第4章

80C51单片机硬件基础知识31常用特殊功能寄存器32常用特殊功能寄存器第4章

80C51单片机硬件基础知识33端口P0~P3特殊功能寄存器P0~P3分别是I/O端口P0~P3的锁存器。80C51单片机是把I/O当作一般的特殊功能寄存器使用,不专设端口操作指令,使用方便。常用特殊功能寄存器第4章

80C51单片机硬件基础知识344.580C51单片机最小系统单片机最小系统就是能使单片机工作的最少的器件构成的系统,是大多数控制系统所必不可少的关键部分。35图为80C32单片机的外部扩展总线。扩展外部接口电路第4章

80C51单片机硬件基础知识36将80C32单片机的外部扩展总线接到外部程序存储器的地址总线、数据总线和控制总线,即构成80C32单片机最小系统。扩展外部接口电路第4章

80C51单片机硬件基础知识375.1计算机语言概述5.280C51单片机寻址方式5.380C51单片机指令系统5.480C51汇编语言程序设计5.580C51单片机C51程序设计语言5.6C51的运算符和表达式5.7C51的库函数5.8C51的应用技巧暂时不讲580C51单片机软件基础知识38单片机应用系统硬件软件程序设计的最终结果是软件。第5章

80C51单片机软件基础知识39机器语言是计算机唯一能识别的语言,用汇编语言和高级语言编写的程序(称为源程序)最终都必须翻译成机器语言的程序(称为目标程序),计算机才能识别。计算机语言e10033f6bf020b510f3a58cc85025068131cbe1fbea11bf01

e11b657b8111bb21138974b4b4879f9ad86e08bc8bdffffe820

e13403d01741a7f3aaebf32dff050e8f05af7d88bd8268a1aa

e14f4a75f9ebdecb57bb21138bc140f727f7f58bfbba1114f4f4a

e1683957ff9528bc5f725f7372bc895f7652f737952be8feefe

e18110796c66fe10746d014d1d1d1e579ec5ab8111ff74b4b48

e19b3bd075f75fc383f783a65d5982cdb284246957a9c5caaa1b

e1b44f52b4923fab6e9ea81dc63fce6ae7aebb5f7b10b8b4f78

e1cde2bf364e399d79293faf9365216fb5e8e5a6c2e9b043d3a3

e1e6cfd3fdfdcbd14c5ee0635886bb3e9c120bccc91a3478170b3

e1ffd61a9ec2c912e74eadf45fe330e9939d7e8f9f4d244e8d722

e218bee2ce8825cf304aa829ae3f47c62d85e9735413be6e03465第5章

80C51单片机软件基础知识40汇编语言是能够利用单片机所有特性直接控制硬件的唯一语言,对于一些需要直接控制硬件的场合,汇编语言是必不可少的。

但汇编语言不是一种结构化的程序设计语言,对于较复杂的单片机应用系统,它的编写效率很低。

第5章

80C51单片机软件基础知识41许多型号的单片机内部ROM已经达到64KB甚至更大,且具备在系统编程(ISP,InSystemProgrammable)功能,进一步推动了C语言在单片机应用系统开发中的应用。

开发人员首先必须对C语言有较透彻的掌握,其次还应该对实际单片机硬件系统有深入的理解。高级语言第5章

80C51单片机软件基础知识42C51的特点和功能主要是80C51单片机自身特点引起的。头文件:为了实现这些功能,只需将相应的功能寄存器的头文件加载在程序中,就可实现指定的功能。因此,C51系列头文件集中体现了各系列芯片的不同功能。数据类型:由于80C51系列器件包含了位操作空间和丰富的位操作指令,因此C51比ANSIC多一种位类型。

C51特点:第5章

80C51单片机软件基础知识43数据存储类型:80C51系列单片机有程序存储器和数据存储器。数据存储器又分片内和片外数据存储器。片内数据存储器还分直接寻址区和间接寻址区,分别对应code、data、idata、xdata以及根据80C51系列特点而设定的pdata类型。

第5章

80C51单片机软件基础知识C51特点:44数据运算操作和程序控制:从数据运算操作和程序控制语句以及函数的使用上来讲,它们几乎没有什么明显的区别。只是在函数的使用上,由于单片机系统的资源有限,它的编译系统不允许太多的程序嵌套。C51与标准ANSIC库函数:部分库函数不适合单片机处理系统,因此被排除在外,如字符屏幕和图形函数。第5章

80C51单片机软件基础知识45C51的标识符和关键字标识符用来标识源程序中某个对象的名字,这些对象可以是语句、数据类型、函数、变量、数组等。标识符区分大小写,第一个字符必须是字母或下划线。C51中有些库函数的标识符是以下划线开头的,所以一般不要以下划线开头命名标识符。

第5章

80C51单片机软件基础知识46表5.2C51编译器的扩展关键字bdatacharIB0_at_0X2C;

bitb2;

unsignedintcodeunid[2]={0x1234,0x752b};

intfunc(inti,intj)compact;

第5章

80C51单片机软件基础知识47表5.2C51编译器的扩展关键字(续)voidtimer0(void)interrupt1{……};

sbitp1_1=p1^1;

sfrp1=0x90;

第5章

80C51单片机软件基础知识485.5.2C51编译器能识别的数据类型数据类型长度大小unsignedchar1B0~255char1B-128~+127unsignedint2B0~65535int2B-32768~+32767unsignedlong4B0~4294967295long4B-2147483648~+2147483647float4B

1.175494E-38~3.402823E+38*1B~3B对象的地址bit位0或1sfr1B0~255sfr162B0~65535sbit位0或1第5章

80C51单片机软件基础知识49sfr特殊功能寄存器作用:利用它可以访问51单片机内部所有特殊功能寄存器。说明:定义的变量占用一个内存单元,值域为0-255。例如:sfrp1=0x90;定义P1为P1端口在片内的寄存器。P1=255;对P1端口的所有引脚置高电平。从而来操作特殊功能寄存器。第5章

80C51单片机软件基础知识50第5章

80C51单片机软件基础知识51sfr特殊功能寄存器80C52特殊功能寄存器表第5章

80C51单片机软件基础知识52注:带*号的特殊功能寄存器都是可位寻址的寄存器。80C52特殊功能寄存器表(续)第5章

80C51单片机软件基础知识53sbit定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:(1)sbit位变量名=位地址

将位的绝对地址赋给位变量,位地址必须位于0x80H-0xFF之间。如:sbitCY=0xD7;第5章

80C51单片机软件基础知识54Sbit定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:(2)sbit位变量名=特殊功能寄存器名^位位置当可寻址位位于特殊功能寄存器中时,可采用这种方法。0-7之间的常数。例如:sfrSCON=0X98;sbitRI=SCON^0;sbitTI=SCON^1;sbitRB8=SCON^2;sbitTB8=SCON^3;sbitREN=SCON^4;sbitSM2=SCON^5;sbitSM1=SCON^6;sbitSM0=SCON^7;/*定义SCON*//*定义SCON的各位*/第5章

80C51单片机软件基础知识55(3)sbit位变量名=字节地址^位位置字节地址必须在0x80H-0xFF之间。Sbit定义可位寻址位的特殊功能寄存器的位寻址对象有三种方法:例如:

sbitCY=0XD0^7;第5章

80C51单片机软件基础知识565.5.3变量的存储种类和存储器类型变量是一种在程序执行过程中,其数值不断变化的量。同ANSIC一样,C51规定变量必须先定义后使用。C51对变量的进行定义的格式如下:

[存储种类]数据类型[存储器类型]变量名表可选项。第5章

80C51单片机软件基础知识57存储器类型

定义变量时,除了说明存储种类外,还允许说明变量的存储器类型。存储器类型和存储种类是完全不同的概念,存储器类型指明该变量所处的单片机的内存空间。C51编译器可识别以下存储器类型,如下表所示。第5章

80C51单片机软件基础知识58存储器类型描述data直接寻址的片内数据存储器低128B,访问速度最快bdata可位寻址的片内数据存储器(地址20H~2FH共16B)允许位和字节混合访问idata间接寻址片内数据存储器256B。允许访问片内全部地址pdata分页寻址片外数据存储器256B,使用指令MOVX@Rn访问,需要2个指令周期xdata寻址片外数据存储器64KB,使用指令MOVX@DPTR访问code寻址程序存储器区64KB,使用指令MOVC@A+DPTR访问第5章

80C51单片机软件基础知识59存储模式C51编译器允许采用三种存储模式:小编译模式SMALL、紧凑编译模式COMPACT、大编译模式LARGE。第5章

80C51单片机软件基础知识605.5.4绝对地址的访问1.使用指针采用指针的方法,可实现在C51程序中对任意指定的存储器地址进行操作。ucharidataivar1;ucharxdata*xdp;/*定义一个指向xdata存储器空间的指针*/chardata*dp;/*定义一个指向DATA存储器空间的指针*/ucharidata*idp;/*定义一个指向idata存储器空间的指针*/xdp=0x1000;/*xdata指针赋值,指向xdata存储器地址1000H处*/*xdp=0x5A;/*将数据5AH送到xdata的1000H单元*/dp=0x61; /*DATA指针赋值,指向DATA存储器地址61H处*/*dp=0x23; /*将数据23H送到DATA的61H单元*/idp=&ivar1; /*idp指向idata区变量ivar1*/*idp=0x16; /*等价于ivar1=0x16*/第5章

80C51单片机软件基础知识612.使用C51运行库中预定义宏#defineCBYTE((unsignedcharvolatile*)0x50000L)#defineDBYTE((unsignedcharvolatile*)0x40000L)#definePBYTE((unsignedcharvolatile*)0x30000L)#defineXBYTE((unsignedcharvolatile*)0x20000L)#defineCWORD((unsignedintvolatile*)0x50000L)#defineDWORD((unsignedintvolatile*)0x40000L)#definePWORD((unsignedintvolatile*)0x30000L)#defineXWORD((unsignedintvolatile*)0x20000L)第5章

80C51单片机软件基础知识623.使用C51扩展关键字_at_使用_at_对指定的存储器空间的绝对地址进行定位,一般格式如下:

[存储器类型]数据类型标识符_at_常数ucharxdataxram[0x8000]_at_0x0000;/*在外部RAM空间0000H处定义了一个一维数组例如使用_at_定义的变量只能为全局变量。第5章

80C51单片机软件基础知识635.5.5中断服务程序80C51的中断系统十分重要,C51编译器允许在C语言源程序中声明中断和编写中断服务程序,从而减轻了采用汇编程序编写中断服务程序的繁琐程度。第5章

80C51单片机软件基础知识64通过使用interrupt关键字来实现。定义中断服务程序的一般格式如下:void函数名()interruptn[usingm]usingm指明该中断服务程序所对应的工作寄存器组,取值范围:0~3。指定工作寄存器组的缺点是所有被中断调用的过程都必须使用同一个寄存器组,否则参数传递会发生错误。通常不设定usingm。

第5章

80C51单片机软件基础知识65关键字interrupt后面的n是中断号,n的取值范围:0~31。编译程序从8n+3处产生中断向量,即在程序存储器8n+3地址处形成一条长跳转指令,转向中断号n的中断服务程序。中断号n中断源中断向量0外部中断00003H1定时器0000BH2外部中断10013H3定时器1001BH4串行口0023H第5章

80C51单片机软件基础知识665.6C51的运算符和表达式运算符就是完成某种特定运算的符号。运算符按其表达式中与运算符的关系可分为单目运算符、双目运算符和三目运算符。第5章

80C51单片机软件基础知识675.6.1赋值运算符使用“=”的赋值语句格式如下:变量=表达式;需要注意“==”与“=”两个符号的区别,有时编译报错,往往就是错在if(b=0xff)之类的语句中,错将“==”用为“=”。“==”符号是用来进行相等关系的运算。第5章

80C51单片机软件基础知识685.6.2算术运算符+

加或取正值运算符-

减或取负值运算符* 乘运算符/

除运算符%

模(取余)运算符,如8%5=3,即8除以5的余数是3第5章

80C51单片机软件基础知识695.6.3关系运算符C51中有6种关系运算符:>

大于<

小于>=

大于等于<=

小于等于==

测试等于!=

测试不等于第5章

80C51单片机软件基础知识705.6.4逻辑运算符逻辑与:条件式1&&条件式2。逻辑或:条件式1||条件式2。逻辑非:!条件式。第5章

80C51单片机软件基础知识715.6.5位运算符C51中共有6种位运算符:&

按位与|

按位或^

按位异或~

按位取反<<

左移>>

右移第5章

80C51单片机软件基础知识725.6.6复合运算符复合运算符就是在赋值运算符“=”的前面加上其他运算符。以下是C51语言中的复合赋值运算符:+=

加法赋值 >>=

右移位赋值-=

减法赋值 &=

逻辑与赋值*=

乘法赋值 |=

逻辑或赋值/=

除法赋值 ^=

逻辑异或赋值%=

取模赋值 ~=

逻辑非赋值<<=

左移位赋值第5章

80C51单片机软件基础知识735.6.7指针和地址运算符指针是C语言中十分重要的概念,也是学习C51语言中的一个难点。C51语言中提供的两个专门用于指针和地址的运算符:

*取内容

&取地址取内容和取地址运算的一般形式分别为:

变量=*指针变量 指针变量=&目标变量第5章

80C51单片机软件基础知识745.7C51的库函数C51的强大功能及其高效率的重要体现之一在于,其提供了丰富的可直接调用的库函数。使用库函数使程序代码简单、结构清晰、易于调试和维护,下面介绍C51的库函数系统。第5章

80C51单片机软件基础知识755.7.2几类重要的库函数C51提供了丰富的库函数资源,包括大量的关于I/O操作、内存分配、字符串操作、数据类型转换、数学计算等函数库。它们是以执行代码的形式出现,供用户在连接定位时用。在用预处理器命令#include包含相应的头文件后,就可以在程序中使用这些函数。第5章

80C51单片机软件基础知识761.内部函数intrins.h这个库中提供的是一些用汇编语言编写的函数。用汇编语言编写非常直接简单且目代码很短,而用C51编写则代码很长。这些函数主要有:_crol_/_cror_无符号字符型变量左/右移位函数_irol_/_iror_无符号整型变量左/右移位函数_lrol_/_lror_无符号长整型变量左/右移位函数_nop_空操作函数_testbit_位测试函数第5章

80C51单片机软件基础知识772.绝对地址访问函数absacc.h用预处理器伪指令#define为各空间的绝对地址定义宏数组名如下:#defineCBYTE((unsignedchar*)0x500000L)/*code空间*/#defineDBYTE((unsignedchar*)0x400000L)/*data空间*/#definePBYTE((unsignedchar*)0x300000L)/*pdata空间*/#defineXBYTE((unsignedchar*)0x200000L)/*xdata空间*/以上存取对象是char类型字节。第5章

80C51单片机软件基础知识783.缓冲区处理函数string.h如:计算字符串s的长度strlen原型:externintstrlen(char*s);说明:返回s的长度,不包括结束符NULL。举例:#include<string.h>main(){char*s="GoldenGlobalView";

printf("%shas%dchars",s,strlen(s));getchar();return0;}第5章

80C51单片机软件基础知识796.1中断系统和外中断6.2定时器/计数器

6.3串行通信

第6章80C51单片机内部资源及应用80单片机内部又集成了许多功能单元,如中断、定时器/计数器、串行通信、模拟/数字转换(ADC)、脉冲宽度调制(PWM)等单元。我们把这些单片机内部的功能单元统称为单片机内部资源。

80C51单片机片内RAM的80H~FFH空间有21个特殊功能寄存器SFR,通过这些特殊功能寄存器可实现对全部内部资源的运行操作。第6章

80C51单片机内部资源及应用81第5章

80C51单片机软件基础知识注:带*号的特殊功能寄存器都是可位寻址的寄存器。82TCON中的中断标志位位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0这个寄存器既有定时器/计数器的控制功能又有中断控制功能,其中与中断有关的控制位共6位:IE0和IE1、IT0和IT1以及TF0和TF1。

83定时控制寄存器TCON各位的功能位地址位符号功能8FHTF1定时器/计数器T1溢出标志位8EHTR1定时器/计数器T1运行控制位8DHTF0定时器/计数器T0溢出标志位8CHTR0定时器/计数器T0运行控制位8BHIE1外部中断1请求标志位8AHIT1外部中断1触发类型选择位89HIE0外部中断0请求标志位88HIT0外部中断0触发类型选择位84SCON中的串行中断标志位SCON寄存器地址98H,位地址9FH~98H,其中的低2位RI和TI锁存串行口的接收中断和发送中断的申请标志位,如表所示。位地址9FH9EH9DH9CH9BH9AH99H98H位符号TIRI85位地址9FH9EH9DH9CH9BH9AH99H98H位符号TIRITI:串行口发送中断请求标志位。串行口每发送完一帧串行数据后,由内部硬件置1,表示串行口发送器向CPU申请中断。注意:CPU响应该中断,转入串行口中断入口时,对TI位不清0,TI必须由用户在程序中清0。80C51单片机复位后,TCON和SCON各位均被清0。RI:串行口接收中断请求标志位。串行口每接收完一帧串行数据后,RI由硬件置1。86EX0:允许/禁止外部中断0申请中断EX1:允许/禁止外部中断1申请中断ET0:允许/禁止定时器T0申请中断ET1:允许/禁止定时器T1申请中断ES:允许/禁止串口申请中断EA:中断总控位=1,允许中断

=0,禁止任何中断1:允许0:禁止允许哪些中断?不允许哪些中断?中断控制位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0中断控制主要通过中断允许寄存器IE和中断优先级寄存器IP实现。中断允许控制寄存器87中断优先级控制80C51有两个中断优先级,每个中断源均可通过软件设置为高优先级或低优先级中断,实现2级中断嵌套。中断优先级控制寄存器位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX01:优先0:滞后PX0H(IP0H.0):外部中断0优先级高位设定位PT0H(IP0H.1):定时/计数器T0优先级高位设定位PX1H(IP0H.2):外部中断1优先级高位设定位PT1H(IP0H.3):定时/计数器T1优先级高位设定位PSH(IP0H.4):串行口优先级高位设定位88控制寄存器TCON

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。TR1(TCON.6):T1起/停控制位。1:启动0:停止TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0起/停控制位。1:启动0:停止89GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。C/T:定时/计数模式选择位。C/T=0为定时模式;C/T=1为计数模式。M1M0:工作方式设置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器T1定时器T0工作方式寄存器(TMOD)90计数器工作方式选择M1 M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动重装8位计数器11方式3定时器0:分成两个8位定时器1:停止计数M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器T1定时器T091T2CON的格式如表所示。控制寄存器T2CON控制溢出中断标识位外部中断标识位串行口接收时钟标识位串行口发送时钟标识位外部允许标识位运行控制位功能选择位捕捉/重装载标识位92串行控制寄存器SCON

位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI①串行口工作方式选择位②多机通信控制位

③允许接收位④发送数据位8⑤接收数据位8⑥发送中断标志⑦接收中断标志93(2)电源控制寄存器PCON

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。单元地址为87H。其内容如表所示。位序D7D6D5D4D3D2D1D0位符号SMOD———GF1GF0PDIDL串行口波特率的倍增位,当SMOD=1时串行口波特率加倍。系统复位时,SMOD=0。

94中断允许控制寄存器IE中断允许控制寄存器IE在前面的中断系统中已详细介绍过,IE的地址是A8H,其内容如表所示。其中与串行口允许中断的控制位为ES,当ES=1,允许串行口中断;当ES=0,禁止串行中断。位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0951.中断由于中断源的请求,CPU暂停当前程序而执行中断处理程序,完毕后返回原程序继续执行的过程称为中断。中断过程分为中断请求、响应、处理、返回四个阶段。第6章

80C51单片机内部资源及应用96中断允许控制寄存器IE中断允许控制寄存器IE在前面的中断系统中已详细介绍过,IE的地址是A8H,其内容如表所示。其中与串行口允许中断的控制位为ES,当ES=1,允许串行口中断;当ES=0,禁止串行中断。位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX097TCON中的中断标志位位地址8F8E8D8C8B8A8988位符号TF1TR1TF0TR0IE1IT1IE0IT0这个寄存器既有定时器/计数器的控制功能又有中断控制功能,其中与中断有关的控制位共6位:IE0和IE1、IT0和IT1以及TF0和TF1。

第6章

80C51单片机内部资源及应用98SCON中的串行中断标志位SCON寄存器地址98H,位地址9FH~98H,其中的低2位RI和TI锁存串行口的接收中断和发送中断的申请标志位,如表所示。位地址9FH9EH9DH9CH9BH9AH99H98H位符号TIRI第6章

80C51单片机内部资源及应用99EX0:允许/禁止外部中断0申请中断EX1:允许/禁止外部中断1申请中断ET0:允许/禁止定时器T0申请中断ET1:允许/禁止定时器T1申请中断ES:允许/禁止串口申请中断EA:中断总控位=1,允许中断

=0,禁止任何中断1:允许0:禁止允许哪些中断?不允许哪些中断?中断控制位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX0中断控制主要通过中断允许寄存器IE和中断优先级寄存器IP实现。中断允许控制寄存器第6章

80C51单片机内部资源及应用100中断优先级控制80C51有两个中断优先级,每个中断源均可通过软件设置为高优先级或低优先级中断,实现2级中断嵌套。中断优先级控制寄存器位地址BFHBEHBDHBCHBBHBAHB9HB8H位符号---PSPT1PX1PT0PX01:优先0:滞后PX0H(IP0H.0):外部中断0优先级高位设定位PT0H(IP0H.1):定时/计数器T0优先级高位设定位PX1H(IP0H.2):外部中断1优先级高位设定位PT1H(IP0H.3):定时/计数器T1优先级高位设定位PSH(IP0H.4):串行口优先级高位设定位第6章

80C51单片机内部资源及应用101当多个中断源同时发中断请求时,CPU先响应优先级最高的中断源,处理完毕后,再响应优先级次之的中断源,最后响应优先级最低的中断源,这就是中断判优的任务。80C51单片机有两个优先级:高优先级与低优先级,各中断源的优先级是通过优先级寄存器IP中相应位实现的,位取1设置高优先级,位取0设置低优先级。C51中只要设置IE和IP,C51编译器会自动为中断的各个阶段产生最合适的代码。第6章

80C51单片机内部资源及应用1022.定时器/计数器80C51单片机的定时器/计数器是能定时、计数,具有2~3个通道、4种工作方式可编程器件。定时器/计数器3个通道分别为T0、T1与定时器/计数器2,其中定时器/计数器2仅52子系列单片机才有。第6章

80C51单片机内部资源及应用103定时器/计数器内的核心器件是加1计数器,加1计数器由两个特殊功能寄存器TH与TL组成。当定时器/计数器工作于定时方式,加1脉冲由系统时钟fosc经12分频后产生。当定时器/计数器工作于计数方式,加1脉冲由T0或T1引脚直接提供。在使用定时器/计数器前必须进行初始化,即设置其工作方式。

第6章

80C51单片机内部资源及应用104控制寄存器TCON

TF1(TCON.7):T1溢出中断请求标志位。T1计数溢出时由硬件自动置TF1为1。CPU响应中断后TF1由硬件自动清0。TR1(TCON.6):T1起/停控制位。1:启动0:停止TF0(TCON.5):T0溢出中断请求标志位,其功能与TF1类同。TR0(TCON.4):T0起/停控制位。1:启动0:停止105GATE:门控位。GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时器/计数器工作;(即需要一个启动条件)GATE=1时,要用软件使TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时器/计数器工作,即需要两个启动条件。C/T:定时/计数模式选择位。C/T=0为定时模式;C/T=1为计数模式。M1M0:工作方式设置位。M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器T1定时器T0工作方式寄存器(TMOD)106计数器工作方式选择M1 M0工作方式功能说明00方式013位计数器01方式116位计数器10方式2自动重装8位计数器11方式3定时器0:分成两个8位定时器1:停止计数M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7定时器T1定时器T0107T2CON的格式如表所示。控制寄存器T2CON控制溢出中断标识位外部中断标识位串行口接收时钟标识位串行口发送时钟标识位外部允许标识位运行控制位功能选择位捕捉/重装载标识位1083.串行通信

与80C51单片机串行通信有关的控制寄存器共有3个:SBUF、SCON和PCON。第6章

80C51单片机内部资源及应用10980C51单片机的串行接口有四种通信方式。方式0为同步通信方式,其波特率是固定的方式2为异步通信方式,其波特率也是固定的BR=2SMOD×fosc/64方式1和方式3的波特率是可变的,其波特率由定时器1的计数溢出来决定,公式为:BR=(2SMOD×Td)/32第6章

80C51单片机内部资源及应用110定时器2的溢出脉冲经16分频后作为串行口发送脉冲、接收脉冲。发送脉冲、接收脉冲的频率称为波特率。其计算公式如下第6章

80C51单片机内部资源及应用111方式1是10位为一帧的异步串行通信方式。方式2和方式3是11位为一帧的异步串行通信方式,而第9数据D8位既可作为奇偶校验位使用,也可为控制位使用。在多机通信方式中经常把该位用作数据帧和地址帧的标志。SM2为多机通信控制位,当SM2=1时,80C51单片机只接收第9数据为1的地址帧,而对第9数据为0的数据帧自动丢弃;SM2=0时,地址帧和数据帧全部接收。利用此特性可实现多机通信。第6章

80C51单片机内部资源及应用112串行控制寄存器SCON

位地址9FH9EH9DH9CH9BH9AH99H98H位符号SM0SM1SM2RENTB8RB8TIRI①串行口工作方式选择位②多机通信控制位

③允许接收位④发送数据位8⑤接收数据位8⑥发送中断标志⑦接收中断标志113(2)电源控制寄存器PCON

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器。单元地址为87H。其内容如表所示。位序D7D6D5D4D3D2D1D0位符号SMOD———GF1GF0PDIDL串行口波特率的倍增位,当SMOD=1时串行口波特率加倍。系统复位时,SMOD=0。

114中断允许控制寄存器IE中断允许控制寄存器IE在前面的中断系统中已详细介绍过,IE的地址是A8H,其内容如表所示。其中与串行口允许中断的控制位为ES,当ES=1,允许串行口中断;当ES=0,禁止串行中断。位地址AFHAEHADHACHABHAAHA9HA8H位符号EA--ESET1EX1ET0EX01157.1

外部扩展资源和扩展编址技术概述7.2

并行I/O口扩展7.3

大容量闪速存储器Flash的扩展7.4

单片机系统中的键盘接口技术7.5

单片机系统中的LED数码显示器7.6

单片机系统中的LCD液晶显示器7.7

日历时钟接口芯片及应用7.8

单片机数据采集系统7.9I2C总线接口电路EEPROM及应用7.10RS-232C和RS-485/422通信接口第七章单片机外部扩展资源及应用

116单片机外部扩展资源包含有:外部RAM/ROM、键盘、显示、A/D、D/A、I/O扩展、中断扩展、串行通信、总线驱动、电源监控、看门狗等一些最基本的模块,它们都是大多数单片机应用系统必不可少的关键部分。单片机系统是指以单片机为核心,根据其应用目标扩展相关的外围电路所构成的硬件系统,外部扩展是和应用紧密联系的。7.1外部扩展资源和扩展编址技术概述117单片机系统扩展结构与编址技术7.1外部扩展资源和扩展编址技术概述118图7.1AT89C52单片机通过三总线的扩展系统结构图7.1.2单片机系统扩展结构与编址技术译码器产生地址译码信号,在任一时刻其输出的有效片选信号使得单片机只能访问RAM、I/O和CLOCK其中之一,避免了总线竞争现象。7.1外部扩展资源和扩展编址技术概述1198255内部结构如图所示。7.2并行I/O口扩展1208255初始化工作方式选择字8255工作方式选择字共8位,存放在8255控制寄存器中。1表示控制寄存器中存放的是工作方式选择字,0表示控制寄存器中存放的是C口置位/复位控制字。

7.2并行I/O口扩展1218255应用举例【例7.2】

用8255C口的PC3引脚向外输出连续的正方波信号,频率为500Hz。解:(1)软件延时方式实现将C口设置为基本I/O输出方式,先从PC3引脚输出高电平1,间隔1ms后向PC3输出低电平0,再间隔1ms后向PC3输出高电平1,周而复始,则可实现从PC3输出频率为500Hz正方波的目的。7.2并行I/O口扩展1227.2并行I/O口扩展123【例7.2】源程序。/*采用软件延时实现*/#include"common.h"definePA8255XBYTE[0xe000]; /*定义8255A口地址*/definePB8255XBYTE[0xe001]; /*定义8255B口地址*/definePC8255XBYTE[0xe002]; /*定义8255C口地址*/defineCOM8255XBYTE[0xe003]; /*定义8255控制寄存器地址*/voidinit8255(void){COM8255=0x80;/*工作方式选择字送入8255控制寄存器,设置A、B、C口为基本I/O输出方式*//***********main函数************/voidmain(void){init8255();while(TRUE){COM8255=0x07;/*PC3置1*/time(1);/*延时1ms*/COM8255=0x06;/*PC3清0*/time(1);/*延时1ms*/}}7.2并行I/O口扩展1247.4单片机系统中的键盘接口技术键盘是单片机应用系统最常用的输入设备,操作人员可以通过键盘向单片机系统输入指令、地址和数据,实现简单的人机通信。125独立式按键。7.4单片机系统中的键盘接口技术126【例7.4】源程序。127行列式键盘电路。7.4单片机系统中的键盘接口技术128【例7.5】按照下图的电路,使用两步扫描法,编写的键扫描程序。有键按下,扫描函数返回值为键值,若无键按下,返回值为0xff。要求每10ms定时检测一次按键,使用定时器中断实现定时。按键信息由printf输出到串口。7.4单片机系统中的键盘接口技术129【例7.5】源程序。1307.5单片机系统中的LED数码显示器7.5.1LED显示器的结构与原理131【例7.6】按照下图显示电路编写显示驱动程序。132【例7.6】按照图7.19显示电路编写显示驱动程序。133【例7.6】源程序。#include"common.h"voiddisplay(void);/*显示0,1,,7*//********main函数*********/voidmain(void){ SCON=0x00; /*串行口方式0工作*/ ES=0; /*禁止串行中断*/ for(;;){ display(); }}voiddisplay(void) /*显示0,1,,7*/{unsignedcharcodeLEDValue[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};unsignedchari;TI=0;for(i=1;i<=8;i++){/*8位数码管依次显示1,2,,8*/ SBUF=LEDValue[9-i]; while(TI==0);TI=0; time(1000);/*状态维持*/ }}134【例7.7】按照下图电路,编写在8个数码管依次显示0,1,…,7的程序。7.5单片机系统中的LED数码显示器135【例7.7】源程序。#include"common.h"voiddisplay(void);/*显示0,1,,7*//********main函数*********/voidmain(void)

温馨提示

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

评论

0/150

提交评论