51单片机超详细教程PPT(超赞).ppt

上传人:wj 文档编号:2308898 上传时间:2023-05-03 格式:PPT 页数:244 大小:4.53MB
下载 相关 举报
51单片机超详细教程PPT(超赞).ppt_第1页
第1页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第2页
第2页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第3页
第3页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第4页
第4页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第5页
第5页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第6页
第6页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第7页
第7页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第8页
第8页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第9页
第9页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第10页
第10页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第11页
第11页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第12页
第12页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第13页
第13页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第14页
第14页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第15页
第15页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第16页
第16页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第17页
第17页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第18页
第18页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第19页
第19页 / 共244页
51单片机超详细教程PPT(超赞).ppt_第20页
第20页 / 共244页
亲,该文档总共244页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

51单片机超详细教程PPT(超赞).ppt

《51单片机超详细教程PPT(超赞).ppt》由会员分享,可在线阅读,更多相关《51单片机超详细教程PPT(超赞).ppt(244页珍藏版)》请在冰点文库上搜索。

51单片机超详细教程PPT(超赞).ppt

全国高职高专规划教材精品与示范系列,单片机应用技术(C语言版),王静霞主编,本章内容什么是单片机MCS-51内部组成及信号引脚单片机最小系统电路MCS-51存储器结构,第1章单片机硬件系统,什么是单片机,单片微型计算机(SingleChipMicrocomputer)简称单片机,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU(CentralProcessingUnit)、存储器(memory)、基本输入/输出(Input/Output,简称I/O)接口电路、定时/计数器和中断系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。

单片机内部基本结构如图1.7所示。

由于它的结构与指令功能都是按照工业控制要求设计的,故又称为微控制器(Micro-ControllerUnit,简称MCU)。

什么是单片机,单片机应用系统,单片机应用系统由硬件和软件组成,硬件是应用系统的基础,软件是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可,单片机种类,目前8位单片机仍是单片机的主流机型;,生产厂商:

单片机的发展经历了由4位机到8位机,再到16位机的发展过程,美国微芯片公司:

PIC16C系列、PIC17C系列、PIC1400系列,美国英特尔公司的MCS-48和MCS-51系列,美国摩托罗拉公司的MC68HC05系列和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个),时钟电路:

可产生时钟脉冲序列,允许晶振频率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单片机信号引脚简介,P3口线的第二功能,VCC,VSS,XTAL2XTAL1,RST,P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7,P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7,P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0,ALE,P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7,2、振荡电路:

XTAL1、XTAL2,3、复位引脚:

RST,4、并行口:

P0、P1、P2、P3,7、ALE:

地址锁存控制信号,1、电源线:

VCC(+5V)、VSS(地),时钟电路与复位电路

(1)时钟振荡电路,时序,关于MCS-51系列单片机的时序概念有4个,可用定时单位来说明,从小到大依次是:

节拍、状态、机器周期和指令周期,下面分别加以说明。

1)节拍与状态把振荡脉冲的周期定义为节拍,用P表示,也就是晶振的振荡频率fosc。

2)状态振荡脉冲fosc经过二分频后,就是单片机时钟信号的周期,定义为状态,用S表示。

一个状态包含两个节拍,其前半周期对应的节拍叫P1,后半周期对应的节拍叫P2。

3)机器周期MCS-51系列单片机采用定时控制方式,有固定的机器周期。

规定一个机器周期的宽度为6个状态,即12个振荡脉冲周期,因此机器周期就是振荡脉冲的十二分频。

小提示当振荡脉冲频率为12MHz时,一个机器周期为1s;当振荡脉冲频率为6MHz时,一个机器周期为2s。

(2)复位电路,单片机复位条件:

必须使RST引脚持续2微秒高电平(外部时钟12MHz),存储器,80318751805189C51,256B(字节),4K,

(1)程序存储器,程序存储器,内部,外部,(PC),程序存储器资源分布,中断入口地址,在单片机C语言程序设计中,用户无需考虑程序的存放地址,编译程序会在编译过程中按照上述规定,自动安排程序的存放地址。

例如:

C语言是从main()函数开始执行的,编译程序会在程序存储器的0000H处自动存放一条转移指令,跳转到main()函数存放的地址;中断函数也会按照中断类型号,自动由编译程序安排存放在程序存储器相应的地址中。

因此,读者只需了解程序存储器的结构就可以了。

内部,外部,

(2)数据存储器,数据存储器,RAM,专用寄存器,内部RAM存储器,工作寄存器区选择位RS0、RS1,注意:

一个单元地址对应有8个位地址MSBMostSignificantBit(最高有效位)LSBLeastSignificantBit(最低有效位),RAM位寻址区位地址表,高128个单元,离散分布有21个特殊功能寄存器SFR。

11个可以进行位寻址。

特别提示:

对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。

在单片机的C语言程序设计中,可以通过关键字sfr来定义所有特殊功能寄存器,从而在程序中直接访问它们,例如:

sfrP1=0x90;/特殊功能寄存器P1的地址是90H,对应P1口的8个I/O引脚在程序中就可以直接使用P1这个特殊功能寄存器了,下面语句是合法的:

P1=0x00;/将P1口的8位I/O口全部清0C语言中,还可以通过关键字sbit来定义特殊功能寄存器中的可寻址位,在程序ex1_1.c中,采用了下面语句定义P1口的第0位:

sbitP1_0=P10;通常情况下,这些特殊功能寄存器已经在头文件reg51.h中定义了,只要在程序中包含了该头文件,就可以直接使用已定义的特殊功能寄存器。

如果没有头文件reg51.h,或者该文件中只定义了部分特殊功能寄存器和位,用户也可以在程序中自行定义。

AVR,单片机,C语言,C51,编程基础,实例,好资料,AVR,单片机,C语言,C51,编程基础,实例,好资料,本章内容单片机开发系统及功能KeilC51软件的使用,第2章单片机开发系统,单片机开发系统及功能,单片机开发系统是单片机应用系统设计的必需工具,包括计算机、单片机在线仿真器、工具软件、编程器等。

在线仿真功能调试功能1)运行控制功能2)目标系统状态的读出修改功能辅助设计功能1)程序设计语言2)程序编译程序固化功能,KeilC51软件的使用,KeilC51启动窗口,KeilC51软件的使用,建立工程文件,KeilC51软件的使用,选择目标CPU,KeilC51软件的使用,图2.17文本编缉窗口,KeilC51软件的使用,增加文件到组中,KeilC51软件的使用,选择文件类型,KeilC51软件的使用,目标属性,KeilC51软件的使用,产生执行文件,KeilC51软件的使用,选择仿真方式,KeilC51软件的使用,KeilC51内建了一个仿真CPU来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真器的情况下进行程序的调试。

不过,软件模拟与真实的硬件执行程序还是有区别的,其中最明显的就是时序,具体表现在程序执行的速度和用户使用的计算机有关,计算机性能越好,运行速度越快。

本章内容单片机开发系统及功能KeilC51软件的使用,第2章单片机开发系统,单片机开发系统及功能,单片机开发系统是单片机应用系统设计的必需工具,包括计算机、单片机在线仿真器、工具软件、编程器等。

在线仿真功能调试功能1)运行控制功能2)目标系统状态的读出修改功能辅助设计功能1)程序设计语言2)程序编译程序固化功能,KeilC51软件的使用,KeilC51启动窗口,KeilC51软件的使用,建立工程文件,KeilC51软件的使用,选择目标CPU,KeilC51软件的使用,图2.17文本编缉窗口,KeilC51软件的使用,增加文件到组中,KeilC51软件的使用,选择文件类型,KeilC51软件的使用,目标属性,KeilC51软件的使用,产生执行文件,KeilC51软件的使用,选择仿真方式,KeilC51软件的使用,KeilC51内建了一个仿真CPU来模拟执行程序,该仿真CPU功能强大,可以在没有硬件和仿真器的情况下进行程序的调试。

不过,软件模拟与真实的硬件执行程序还是有区别的,其中最明显的就是时序,具体表现在程序执行的速度和用户使用的计算机有关,计算机性能越好,运行速度越快。

本章内容并行I/O口电路结构认识C语言C语言的基本语句C语言数据与运算数组的概念,第3章单片机并行I/O口应用,并行I/O口电路结构,MCS-51系列单片机共有四个8位并行I/O口,分别用P0、P1、P2、P3表示。

每个I/O口既可以按位操作使用单个引脚,也可以按字节操作使用8个引脚。

P0口的结构,P0口逻辑电路,当P0口作为输出口使用时,内部总线将数据送入锁存器,内部的写脉冲加在锁存器时钟端CP上,锁存数据到Q、端。

经过MUX,T2反相后正好是内部总线的数据,送到P0口引脚输出。

当P0口作为输入口使用时,应区分读引脚和读端口两种情况,所谓读引脚,就是读芯片引脚的状态,这时使用下方的数据缓冲器,由“读引脚”信号把缓冲器打开,把端口引脚上的数据从缓冲器通过内部总线读进来。

读端口是指通过上面的缓冲器读锁存器Q端的状态。

读端口是为了适应对I/O口进行“读-修改-写”操作语句的需要。

例如下面的C51语句:

P0=P0/将P0口的低4位引脚清0输出,P0口的结构,除了I/O功能以外,在进行单片机系统扩展时,P0口是作为单片机系统的地址/数据线使用的,一般称为地址/数据分时复用引脚。

当输出地址或数据时,由内部发出控制信号,使“控制”端为高电平,打开与门,并使多路开关MUX处于内部地址/数据线与驱动场效应管栅极反相接通状态。

此时,输出驱动电路由于两个FET处于反相,形成推拉式电路结构,使负载能力大为提高。

输入数据时,数据信号直接从引脚通过输入缓冲器进入内部总线。

P0口的结构,P1口的结构,P1口逻辑电路,P1口是准双向口,只能作为通用I/O口使用。

P1口作为输出口使用时,无需再外接上拉电阻。

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口使用,但其他未被使用的端口仍可作为通用I/O口使用。

P3口作为通用I/O的输出口使用时,不用外接上拉电阻。

P3口的结构,认识C语言,C语言程序以函数形式组织程序结构,C程序中的函数与其他语言中所描述的“子程序”或“过程”的概念是一样的。

C程序基本结构,认识C语言,一个C语言源程序是由一个或若干个函数组成,每一个函数完成相对独立的功能。

每个C程序都必须有(且仅有)一个主函数main(),程序的执行总是从主函数开始,调用其他函数后返回主函数main(),不管函数的排列顺序如何,最后在主函数中结束整个程序。

C语言程序中可以有预处理命令,预处理命令通常放在源程序的最前面。

C语言程序使用“;”作为语句的结束符,一条语句可以多行书写,也可以一行书写多条语句。

认识C语言,结构化语言丰富的数据类型便于维护管理与汇编语言相比,C语言的优点如下:

不要求编程者详细了解单片机的指令系统,但需了解单片机的存储器结构;寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;结构清晰,程序可读性强;编译器提供了很多标准库函数,具有较强的数据处理能力。

C语言的基本语句,语言程序的执行部分由语句组成。

C语言提供了丰富的程序控制语句,按照结构化程序设计的基本结构:

顺序结构、选择结构和循环结构,组成各种复杂程序。

这些语句主要包括表达式语句、复合语句、选择语句和循环语句等。

表达式语句和复合语句,表达式语句是最基本的C语言语句。

表达式语句由表达式加上分号“;”组成,其一般形式如下:

表达式;执行表达式语句就是计算表达式的值。

在C语言中有一个特殊的表达式语句,称为空语句。

空语句中只有一个分号“;”,程序执行空语句时需要占用一条指令的执行时间,但是什么也不做。

在C51程序中常常把空语句作为循环体,用于消耗CPU时间等待事件发生的场合。

表达式语句和复合语句,把多个语句用大括号括起来,组合在一起形成具有一定功能的模块,这种由若干条语句组合而成的语句块称为复合语句。

在程序中应把复合语句看成是单条语句,而不是多条语句。

复合语句在程序运行时,中的各行单语句是依次顺序执行的。

在C语言的函数中,函数体就是一个复合语句。

选择语句,基本if语句的格式如下:

if(表达式)语句组;if语句执行过程:

当“表达式”的结果为“真”时,执行其后的“语句组”,否则跳过该语句组,继续执行下面的语句。

选择语句,if语句中的“表达式”通常为逻辑表达式或关系表达式,也可以是任何其他的表达式或类型数据,只要表达式的值非0即为“真”。

以下语句都是合法的:

if(3)if(x=8)if(P3_0)在if语句中,“表达式”必须用括号括起来。

在if语句中,花括号“”里面的语句组如果只有一条语句,可以省略花括号。

如“if(P3_0=0)P1_0=0;”语句,但是为了提高程序的可读性和防止程序书写错误,建议读者在任何情况下,都加上花括号。

选择语句,if-else语句的一般格式如下:

if(表达式)语句组1;else语句组2;if-else语句执行过程:

当“表达式”的结果为“真”时,执行其后的“语句组1”,否则执行“语句组2”,选择语句,if-else-if语句是由ifelse语句组成的嵌套,用来实现多个条件分支的选择,其一般格式如下:

if(表达式1)语句组1;elseif(表达式2)语句组2;elseif(表达式n)语句组n;else语句组n+1;,选择语句,选择语句,多分支选择的switch语句,其一般形式如下:

switch(表达式)case常量表达式1:

语句组1;break;case常量表达式2:

语句组2;break;case常量表达式n:

语句组n;break;default:

语句组n+1;该语句的执行过程是:

首先计算表达式的值,并逐个与case后的常量表达式的值相比较,当表达式的值与某个常量表达式的值相等时,则执行对应该常量表达式后的语句组,再执行break语句,跳出switch语句的执行,继续执行下一条语句。

如果表达式的值与所有case后的常量表达式均不相同,则执行default后的语句组。

while语句用来实现“当型”循环,执行过程:

首先判断表达式,当表达式的值为真(非0)时,反复执行循环体。

为假(0)时执行循环体外面的语句。

循环体,格式:

while(循环继续的条件表达式)语句组;,花括号不能丢掉!

请问:

下述程序实现了什么功能?

main()inti,sum=0;while(i=10)sum=sum+i;i+;,循环语句,do-while语句用来实现“直到型”循环执行过程:

先无条件执行一次循环体,然后判断条件表达式,当表达式的值为真(非0)时,返回执行循环体直到条件表达式为假(0)为止。

绝对不能少分号!

循环体,格式:

do循环体语句组;while(循环继续条件);,花括号不能丢掉!

请问:

下述程序实现了什么功能?

main()inti,sum=0;dosum=sum+i;i+;while(i=100);,循环语句,总循环次数已确定的情况下,可采用for语句形式为:

for语句的一般形式:

for(循环变量赋初值;循环继续条件;循环变量增值)循环体语句组;,分隔符为分号,请问:

下述程序实现了什么功能?

main()inti,y=0;for(i=1;i=10;i+)y=y+i;,循环语句,for语句循环执行过程,for(循环变量赋初值;循环继续条件;循环变量增值)循环体语句组;,分隔符为分号,C语言数据与运算,1.赋值运算符2.算术运算符和算术表达式3.关系运算符和关系表达4.逻辑运算符和逻辑表达式,赋值运算符,赋值语句的作用是把某个常量或变量或表达式的值赋值给另一个变量。

符号为=。

这里并不是等于的意思,只是赋值,等于用=表示。

赋值语句左边必须是变量或寄存器,且必须先定义。

常量不能出现左边。

赋值运算符和赋值表达式,简单的赋值运算符:

复合的赋值运算符,=,+=、-=、*=、%=、/=,i+=2等价于i=i+2a*=b+5等价于a=a*(b+5)x%=3等价于x=x%3,算术运算符,(加法运算)(减法运算)*(乘法运算符)(除法运算符)%(求余运算符,或称模运算符)如:

4%20+(变量自加1)-(变量自减1),注意两个整数相除结果为整数,如8/5的结果为1,舍去小数部分。

如果参加运算的两个数中有一个数为实数,则结果是实型。

求余运算要求%两侧都是整型数据。

自增、自减运算,实战演练:

请说明程序运行完后x,y,z,m,n的值分别是多少?

main()intx=6,y,z,m,n;y=+x;z=x-;m=y/z;n=y%z;,自增运算符(+)和自减运算符(-):

(1)前置运算变量、变量即先增减、后运算。

(2)后置运算变量、变量即先运算、后增减。

关系运算符,关系运算符优先级,=,=!

=,低,高,关系表达式,用关系运算符将两个表达式(可以是算术表达式、关系表达式、赋值表达式或逻辑表达式)连接起来的式子,称为关系表达式。

关系表达式的值为逻辑值“真”或“假”,以1代表“真”,以0代表“假”。

例如:

(1)关系表达式“8=4”的值为,表达式的值为。

(2)关系表达式“50”的值为,表达式的值为。

逻辑运算符及其优先级,逻辑运算符优先级!

(逻辑非)&(逻辑与)|(逻辑或)注意:

逻辑运算符与位操作运算符的区别。

逻辑表达式,用逻辑运算符将一个或多个表达式连接起来,进行逻辑运算的式子。

逻辑量的真判断非0逻辑量的假判断0,若a=1,b=2,c=3,x=4,y=3,写出下各个表达式的值:

(1)a+bc&b=c

(2)!

ab&b!

=c|x+y=3(3)!

(x=a)&(y=b)&0,0,0,0,例如:

(1)xc等效于(!

a)&(bc),位运算,与操作按位与操作符:

主要用途:

取(或保留)1个数的某(些)位,其余各位置0。

位运算,或操作按位或操作符:

|格式:

x|y规则:

对应位均为0时才为0,否则为1例如,i=i|0x0f;等同于i|=0x0f;主要用途:

将1个数的某(些)位置1,其余各位不变,位运算,异或操作按位异或操作符:

格式:

xy规则:

对应位相同时为0,不同时为1例如,i=i0x0f;等同于i=0x0f;主要用途:

使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。

位运算,按位取反操作按位取反操作符:

格式:

x规则:

各位翻转,即原来为1的位变成0,原来为0的位变成1例如,i=i;主要用途:

间接地构造一个数,以增强程序的可移植性。

左移运算符“”的功能,是把“”左边的操作数的各二进制位全部右移若干位,移动的位数由“”右边的常数指定。

进行右移运算时,如果是无符号数,则总是在其左端补“0”,位运算,练习,1.若x=10,则!

X的值为真或假?

2.若a=3,b=2,则if(a&b)的值为真或假?

3.5&0|8的值为?

4.53&4|84的结果为?

分隔符为分号,数组的概念,数组属于常用的数据类型,数组中的元素有固定数目和相同类型,数组元素的数据类型就是该数组的基本类型。

例如,整型数据的有序集合称为整型数组,字符型数据的有序集合称为字符型数组。

数组还分为一维、二维、三维和多维数组等,常用的是一维、二维和字符数组。

数组的基本特点,构造类形数据:

由基本类型数据按照一定规则组成。

数组:

是有序数据的集合;数组中的每一个元素都属于同一个数据类型,用一个统一的数组名和下标来唯一地确定数组中的元素。

应用场合:

需要处理的数据为数量已知的若干相同类型的数据时。

注意:

先定义,后使用。

一维数组的定义和引用,一维数组的定义:

一般格式:

类型标识符数组名常量表达式;intarray10;unsignedcharnum7;说明:

数组名见名知意;数组名中存放的是一个地址常量,它代表整个数组的首地址。

同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。

方括弧而非圆括弧;常量表达式:

可以是常量或符号常量;表示数组元素的个数(也称数组长度)。

不允许对数组大小作动态定义。

数组元素下标从0开始。

array0,array1,array9;,遵循标识符命名规则,数组元素的表达形式:

数组名下标表达式Array4=100;array8=34;array10=56;注意:

数组下标不能越界!

一个数组元素具有和相同类型单个变量一样的属性,可以对它赋值和参与各种运算。

一维数组的引用,一般格式:

数据类型数组名常量表达式初值表1.定义时赋初值;intscore5=1,2,3,4,5;2.给一部分元素赋值;intscore5=1,2;3.使所有元素为0;intscore5=0;4.给全部数组元素赋初值时,可以不指定数组长度;intscore=1,2,3,4,5;,一维数组的初始化,本章内容定时/计数器C语言的函数中断系统,第4章定时与中断系统,定时/计数器,8051单片机内部有两个16位的可编程定时/计数器,称为T0(T0)和T1(T1),定时/计数器,8051定时器/计数器逻辑结构,定时/计数器,设置定时/计数器工作方式通过对方式寄存器TMOD的设置,确定相应的定时/计数器是定时功能还是计数功能,工作方式以及启动方法。

定时/计数器工作方式有四种:

方式0、方式1、方式2和方式3。

定时/计数器启动方式有两种:

软件启动和硬软件共同启动。

除了从控制寄存器TCON发出的软件启动信号外,还有外部启动信号引脚,这两个引脚也是单片机的外部中断输入引脚。

定时/计数器,设置计数初值T0、T1是16位加法计数器,分别由两个8位专用寄存器组成,T0由TH0和TL0组成,T1由TH1和TL1组成。

TL0、TL1、TH0、TH1的访问地址依次为8AH8DH,每个寄存器均可被单独访问,因此可以被设置为8位、13位或16位计数器使用。

在计数器允许的计数范围内,计数器可以从任何值开始计数,对于加1计数器,当计到最大值时(对于8位计数器,当计数值从255再加1时,计数值变为0),产生溢出。

定时/计数器允许用户编程设定开始计数的数值,称为赋初值。

初值不同,则计数器产生溢出时,计数个数也不同。

例如:

对于8位计数器,当初值设为100时,再加1计数156个,计数器就产生溢出;当初值设为200时,再加1计数56个,计数器产生溢出。

定时/计数器,启动定时/计数器根据设置的定时/计数器启动方式,启动定时/计数器。

如果采用软件启动,则需要把控制寄存器中的TR0或TR1置1;如果采用硬软共同启动方式,不仅需要把控制寄存器中的TR0或TR1置1,还需要相应外部启动信号为高电平。

定时器的方式寄存器TMOD,作用

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2