版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第四章第四章 51系列单片机系列单片机 的功能模块及应用的功能模块及应用主要掌握并行口、串行口、定主要掌握并行口、串行口、定时器的结构、工作原理及应用时器的结构、工作原理及应用24-1 并行口及其应用并行口及其应用51系列单片机的并行口,按特性可分类为:单一的准双向口(如89C52的P1.2P1.7)多功能复用的准双向口(如89C52的P1.0、P1.1,P3.0P3.7)可作地址总线输出口的准双向口(P2)可作地址/数据总线口的三态双向口(P0)3每个I/O线均由锁存器,输出电路和输入缓冲器组成。每一条口线可独立用作输入和输出。作输出时可锁存数据,输入时可缓冲数据。CPU对口的读操作有两种
2、:读修改写操作(读口锁存器状态)例:ANL P0,A ;(P0)(P0)(A) ORL P0,#data ;(P0)(P0)data DEC P0 ;(P0)(P0) -1读引脚操作(读口引脚上外部输入信息)例 MOV A,P1454-1-1 P0 口口 P0口是一个三态双向口,可作为地址口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用数据分时复用口,也可作为通用I/O接口。接口。 其其1位的结构原理如下图所示。位的结构原理如下图所示。P0口由口由8个这样的电路组成。个这样的电路组成。6P0.x地址 /数据 控制D Q锁存器CLK_QMUX&1V2V1读引脚内部总线读 锁存
3、器写锁存器VCC2134P0口口1位结构图位结构图起输出锁存作用,8个锁存器构成了SFRP0V1、V2组成输出驱动器,以增大带负载能力三态门1是引脚输入缓冲器读锁存器端口7 2地址/数据分时复用功能 当P0口作为地址/数据分时复用总线时,可分为两种情况:一种是从P0口输出地址或数据,另一种是从P0口输入数据。 P0.x地址 /数据 控制D Q锁存器CLK_QMUX&1V2V1读引脚内部总线读 锁存器写锁存器VCC21348在访问片外存储器而需从P0口输出地址或数据信号时,控制信号应为高电平“1”,使转换开关MUX把反相器4的输出端与V1接通,同时把与门3打开。1)当地址或数据为“1”时
4、,经反相器4使V1截止,而经与门3使V2导通,P0.x引脚上出现相应的高电平“1”; 2)当地址或数据为0时,经反相器4使V1导通而V2截止,引脚上出现相应的低电平0。这样就将地址/数据的信号输出。93通用I/O接口功能 当P0口作为通用I/O口使用,在CPU向端口输出数据时,对应的控制信号为0,转换开关把输出级与锁存器Q端接通,同时因与门3输出为0使V2截止,此时,输出级是漏极开路电路输出级是漏极开路电路。当写脉冲加在锁存器时钟端CLK上时,与内部总线相连的D端数据取反后出现在Q端,又经输出V1反相,在P0引脚上出现的数据正好是内部总线的数据。当要从P0口输入数据时,引脚信息仍经输入缓冲器进
5、入内部总线。10总之:一 P0口作为一般I/O口使用 1 P0口用作输出口:必须外接上拉电阻必须外接上拉电阻,才有高电平输出。2 P0口作输入口:先向端口锁存器写入写入“1”。二 P0口作为地址/数据总线使用1 以P0口引脚输出低8位地址或数据信息2 由P0口输入数据三 P0口可驱动8个LSTTL电路114-1-2 P1口(准双向口)口(准双向口)12P1.0、P1.1为多功能双向口, P1.2P1.7为单一功能准双向口。P1口的第一功能是准双向口,每一位可分别定义为输入线或输出线。输出驱动部分由场效应管V1与内部上拉电阻组成。当其某位输出高电平时,可以提供上拉电流负载。89C5289C52P
6、1.0K 0P0.0+5V10K K 013P1的某一位作为输入线输入线时,该位的口锁存器必须保持“1”。使输出场效应管截止。该引脚才可由内部拉高电路拉成高电平,或由外部电路拉成低电平。P1口具有驱动4个LSTTL负载的能力。14154-1-3 P2口(准双向口)口(准双向口)D Q锁存器CLK_Q1P2.xV1读引脚内部总线读锁存器写锁存器地址控制VCC内部上拉电阻MUX213图2.11 P2口1位结构图16 当作为准双向通用I/O口使用时: 控制信号使转换开关接向左侧,锁存器Q端经反相器3接V1,其工作原理与P1相同,也具有输入、输出、端口操作三种工作方式,负载能力也与P1相同。 171
7、系统中外接程序存储器时:P2口输出程序存储器的高8位地址,不作I/O口使用。2 系统中无外接程序存储器,而扩展有片外RAM的系统中: 片外RAM的容量256B:P2口仍做输入/输出口使用。使用R0或R1作地址指针。片外RAM的容量256B : P2口不能做输入/输出口,而做系统扩展的高8位地址总线口使用。使用DPTR、P2R0、P2R1作地址指针。 184-1-4 P3口(准双向口)口(准双向口)19 P3口是一多功能口,既做准双向口又做特殊输入输出口。1 做通用I/O口使用: P3口做输入使用,应由软件向口锁存器写“1”。202 做第二功能使用: 某位做第二功能使用该位D锁存器Q应被硬件自动
8、置“1”。 P3.0 RXD P3.5 T1 P3.1 TXD (出) P3.6 WR(出) P3.2 INT0 P3.7 RD(出) P3.3 INT1 P3.4 T03 P3口具有驱动4个LSTTL负载的能力。21I/OI/O端口的操作方式:端口的操作方式:(1 1)输出数据方式)输出数据方式:CPU通过一条数据传送指令就可以把输出通过一条数据传送指令就可以把输出数据写入数据写入P0P3的端口锁存器,然后通过输出驱动器送到的端口锁存器,然后通过输出驱动器送到端口引脚线。例如,下面的指令均可在端口引脚线。例如,下面的指令均可在P0口输出数据。口输出数据。 MOV P0, A ANL P0,
9、#data ORL P0, A(2 2)读端口数据方式:)读端口数据方式: CPU读入的这个数据并非端口引脚线上读入的这个数据并非端口引脚线上的数据。读端口数据可以直接读端口。例如,下面的指令均的数据。读端口数据可以直接读端口。例如,下面的指令均可以从可以从P1口输入数据。口输入数据。 MOV A, P1 MOV 20H, P1 MOV R0, P1 MOV R0, P122(3 3)读端口引脚方式:)读端口引脚方式:读端口引脚方式可以从端口引脚读端口引脚方式可以从端口引脚上读入信息。在这种方式下,上读入信息。在这种方式下,CPU首先必须使欲读端首先必须使欲读端口引脚所对应的锁存器口引脚所对应
10、的锁存器置置1,然后才能读端口引脚。,然后才能读端口引脚。因此,用户在读引脚时必须先因此,用户在读引脚时必须先置位置位锁存器后读,连续锁存器后读,连续使用两条指令。例如,下面的程序可以读使用两条指令。例如,下面的程序可以读P1引脚上的引脚上的低低4位信号。位信号。 MOV P1, #0FH ; 置位置位P1引脚的低引脚的低4位位 MOV A, P1 ; 读读P1引脚上的低引脚上的低4位信号送累加器位信号送累加器A234-1-5 并行口的应用并行口的应用1 外接蜂鸣器2 利用可控硅控制加热电路3 BCD码拨码盘的接口 BCD码拨码盘构造一个拨码盘可以输入1位十进制数据。拨码盘拨到某个位置时,控制
11、线分别与4位数据线中某几位接通。接通线定义为“1”,不通的线定义为“0”。244-2 定时器及其应用定时器及其应用定时器功能:定时器功能: 1 定时操作定时操作 2 测量外部输入信号测量外部输入信号 3 定时输出定时输出 4 监视系统正常工作监视系统正常工作254-2-1定时器的结构和工作原理定时器的结构和工作原理1 定时器由一个N位计数器、计数时钟源控制电路、状态和控制寄存器等组成。 2 计数脉冲有两个来源:外部的脉冲源系统的时钟振荡器。内部时钟外部时钟N位计数器TFTMOD TCON中断中断263 用作定时器时,每经过一个机器周期,计数用作定时器时,每经过一个机器周期,计数器自动加器自动加
12、1,直到计数溢出;用作计数器时,直到计数溢出;用作计数器时,外部时钟脉冲加在定时器的外输入端外部时钟脉冲加在定时器的外输入端T0(P3.4)或或T1(P3.5),每出现一次负跳变,每出现一次负跳变,计数器加计数器加1。4 两个模拟开关,左边决定定时两个模拟开关,左边决定定时/计数器的工计数器的工作状态,右边决定脉冲源是否加在计数器的作状态,右边决定脉冲源是否加在计数器的输入端。输入端。5 16位的计数器由两个位的计数器由两个8位位SFR TH和和TL组成组成。6定时器工作不占用定时器工作不占用CPUCPU时间,除非定时器时间,除非定时器/ /计计数器溢出,才能中断数器溢出,才能中断CPUCPU
13、的当前操作。的当前操作。27定时器定时器/计数器计数器T0、T1的结构框图的结构框图284-2-2 定时器定时器/计数器计数器T0和和T1一方式寄存器一方式寄存器TMOD(89H)1 不能进行位寻址,只能用字节寻址。复不能进行位寻址,只能用字节寻址。复位时,位时,TMOD所有位为所有位为02熟悉各位功能熟悉各位功能T1方式字段方式字段 T0方式字段方式字段GATEC/TM1 M GATEC/TM1M029 GATE门控位“1”:定时器的计数受外部引脚输入电平的控制“0”:定时器的计数不受外部引脚输入电平的控制 C/T功能选择位“1”:计数功能 “ 0”:定时功能 M1M0工作方式选择位30 适
14、于适于T0,两个,两个8位计数器位计数器M1M0工作方式工作方式方方 式式 说说 明明00013位定时器位定时器/计数器计数器01116位定时器位定时器/计数器计数器102具有自动重装初值的具有自动重装初值的8位定时器位定时器/计数器计数器113 31二二 控制寄存器控制寄存器TCON(88H)1 既可字节寻址又可位寻址。复位时,既可字节寻址又可位寻址。复位时,TCON各位为各位为0例:例:SETB TR1 ;启动定时器;启动定时器T1工作工作2熟悉各位功能熟悉各位功能D7 D6 D5 D4 D3 D2 D1 D08FH8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0
15、TR0 IE1IT1IE0IT032TF1定时器定时器/计数器计数器T1的溢出标志位的溢出标志位TR1定时器定时器/计数器计数器T1的运行控制位的运行控制位TF0定时器定时器/计数器计数器T0的溢出标志位的溢出标志位TR0定时器定时器/计数器计数器T0的运行控制位的运行控制位IE1外部中断外部中断1下降沿触发标志位下降沿触发标志位IE0外部中断外部中断0下降沿触发标志位下降沿触发标志位IT1外部中断外部中断1触发类型选择位触发类型选择位IT0外部中断外部中断0触发类型选择位触发类型选择位8FH8EH 8DH 8CH 8BH 8AH 89H 88HTF1TR1TF0 TR0 IE1IT1IE0I
16、T033三三 定时器定时器/计数器的初始化计数器的初始化 初始化即将控制字写入定时器初始化即将控制字写入定时器/计数器计数器的过程。的过程。初始化一般步骤初始化一般步骤:1 写入初值写入初值TH0、TL0或或TH1、TL12 对对TMOD赋值赋值3 对对IE赋值(有中断产生时)赋值(有中断产生时)4 若用软件启动,则仅把若用软件启动,则仅把TR0或或TR1置置“1”; 若用外中断引脚电平启动,则还需给外若用外中断引脚电平启动,则还需给外 引脚加启动电平。引脚加启动电平。34四四 定时器定时器/计数器的计数器的4种工作方式种工作方式1 方式方式035 方式方式0是一个是一个13位的定时器位的定时
17、器/计数器,计数器,由由TL0的低的低5位和位和TH0的的8位组成。位组成。 定时时间为定时时间为T=12*(213-a)/fosc s最大定时时间:最大定时时间:M=213=8192T36例例7:已知晶振频率:已知晶振频率fosc=6MHZ,若使用,若使用T0方式方式0产生产生10ms定时中断,试对定时中断,试对T0进行初进行初始化编程。始化编程。 MOV TH0,#63H MOV TL0,#18H SETB TR0 MOV IE ,#82H RET37例:例:T0工作于方式工作于方式0,要求在,要求在P1.0引脚上产生引脚上产生周期为周期为2ms的方波输出的方波输出(fosc=6MHZ)
18、ORG 0000H AJMP MAIN ORG 000BH AJMP INQP ORG 0030HMAIN: MOV TMOD, #00H MOV TH0, #0F0H MOV TL0, #0CH SETB TR0 ;启动;启动T0 SETB ET0 ;允许;允许T0中断中断 SETB EA ;开放;开放CPU中断中断 AJMP $ ;定时中断等待;定时中断等待38 ORG 4000H ;中断服务程序;中断服务程序INQP: MOV TH0, #0F0H ;重写定时常数;重写定时常数 MOV TL0, #0CH CPL P1.0 ;P1.0变反输出变反输出 RETI 392 方式方式1 方式方
19、式1是一个是一个16位定时器位定时器/计数器,结构计数器,结构和操作方式与方式和操作方式与方式0基本相同。定时时间为基本相同。定时时间为T=12*(216-a)/fosc s最大定时时间:最大定时时间:M=216=65536T40例:设例:设fosc=12MHz,T0工作于方式工作于方式1,产生,产生50ms定时中断,定时中断,TF0为高级中断源。试为高级中断源。试编写主程序中的初试化程序和中断服务程编写主程序中的初试化程序和中断服务程序,使序,使P1.0产生周期为产生周期为1秒的方波。秒的方波。MAIN:MOV SP, #EFH MOV TH0, #3CH MOV TL0, #0B0H MO
20、V TMOD , #1 MOV IP, #2 41 MOV IE, #82H SETB TR0 MOV 30H, #0AHPTF0:ORL TL0, #0B0H;中断服务程序中断服务程序 MOV TH0, #3CH DJNZ 30H, PTF0R MOV 30H, #0AH CPL P1.0PTF0R:RETI42用查询法:用查询法: MOV 30H, #0AH MOV TH0, #3CH MOV TL0, #0B0H MOV TMOD, #1 SETB TR0L2: JBC TF0, L1 SJMP L2L1: MOV TH0, #3CH MOV TL0, #0B0H43 DJNZ 30H,
21、 L2 MOV 30H, #0AH CPL P1.0 SJMP L2443 方式方式2 方式方式2是能重置初值的是能重置初值的8位定时器位定时器/计数器,计数器,TL0作为作为8位计数器,位计数器,TH0作为计数初值寄存器。适于用做较精作为计数初值寄存器。适于用做较精确的定时脉冲信号发生器。确的定时脉冲信号发生器。 定时时间定时时间 T=12*(28-a)/fosc s 最大定时时间:最大定时时间:M=28=256T45振荡器 12TLx (8 位)TFx& 11C/_TC/_Tfosc中断请求TxGATE_INTxTRxTHx(8 位 )4重装初值控制S1Tcy图 2.15 定时器/
22、计数器方式2的逻辑结构S2 定时器/计数器方式2的逻辑结构46 MOV TMOD, #60H ; 设置设置T1为方式为方式2计数计数 MOV TH1, #9CH ;赋初值;赋初值 MOV TL1, #9CH SETB TR1DE:JBC TF1, RE ;查询计数溢出;查询计数溢出 AJMP DERE: CPL P1.0 AJMP DE例:用定时器例:用定时器1在方式在方式2计数,要求每计满计数,要求每计满100次,将次,将P1.0端取反。端取反。外部计数信号由P3.5引入,每跳变一次计数器加1100=28-a ; a=156=9CH47保护现场赋计数初值到1s?(32H)加1(32H)=60
23、?(32H)清0(31H)加1(31H)=60?(31H)清0(30H)加1(30H)=24?(30H)清0恢复现场返回例例4.13(书(书111)aaNNNNYYYY图 中断服务程序流程图48例:当P3.4引脚上的电平发生负跳变时, 从P1.0输出一个500s的同步脉冲。请编程序实现该功能。查询方式,fosc=6MHz。49解:(1)模式选择 选T0为模式2,外部事件计数方式。 当P3.4引脚上的电平发生负跳变时,T0计数器加1,溢出标志TF0置1;然后改变T0为500s定时工作方式,并使P1.0输出由1变为0。T0定时到产生溢出,使P1.0输出恢复高电平,T0又恢复外部事件计数方式。 如
24、图所示。50(2)计算初值 T0工作在外部事件计数方式,当计数到28时,再加1计数器就会溢出。设计数初值为X,当再出现一次外部事件时,计数器溢出。 则: X+1=28 X= 28 1=11111111B=0FFH T0工作在定时工作方式,设晶振频率为6MHz,500s相当于250个机器周期。因此,初值X为 (28X)2s=500s X=6=06H51(3)程序清单START: MOV TMOD,#06H ;设置T0为模式2,外部计数方式 MOV TL0,#0FFH ;T0计数器初值 MOV TH0,#0FFH SETB TR0 ;启动T0计数 LOOP1:JBC TF0,PTFO1 ;查询T0
25、溢出标志, ;TF0=1时转,且清TF0=0 SJMP LOOP1 ; 52 PTFO1:CLR TR0 ;停止计数 MOV TMOD,#02H ;设置T0为模式2,定时方式 MOV TL0,#06H ;送初值,定时500s MOV TH0,#06H CLR P1.0 ; P1.0清0 SETB TR0 ;启动定时500s LOOP2 : JBC TF0,PTFO2 ;查询T0溢出标志, ;TF0=1时转,且清TF0=0 ; (第一个500s到否?) SJMP LOOP2 ;等待 PTFO2 : SETB P1.0 ; P1.0置1 CLR TR0 ;停止计数 SJMP START53振荡器
26、12TL0 (8位)& 11C/_TC/_Tfosc中断请求T0GATE_TR 0TH1(8位 )S2S1TF0TF1TR1TcyTcyINTx图 2.16定时器 /计数器方式3的逻辑结构S定时器定时器/计数器方式计数器方式3的逻辑结构的逻辑结构 4 方式方式3TH054 方式方式3只适用于只适用于T0,T0分为两个独立的分为两个独立的8位计数器位计数器TL0和和TH0。一般。一般T1用作串行口用作串行口波特率发生器。波特率发生器。 最大定时时间:最大定时时间:M=28=256T5556例例 用定时器用定时器T0,分别产生两个方波,一,分别产生两个方波,一个周期为个周期为200 s,另
27、一个周期为,另一个周期为400 s,该单片机同时使用串行口该单片机同时使用串行口,用定时器,用定时器/计数计数器作为波特率发生器。器作为波特率发生器。(fosc =9.216MHZ)。57解:定时初值计算解:定时初值计算TL0=28-9.216*106*100*10-6/12 =256-76.8 =179.2 转换十六进制为转换十六进制为0B3HTH0=28-9.216*106*200*10-6/12 =256-153.6 =102.4 转换十六进制为转换十六进制为66H58 ORG 0000H AJMP MAIN ORG 000BH ;TL0中断入口中断入口 AJMP ITL0 ORG 00
28、1BH ;TH0中断入口中断入口 AJMP ITH0 ORG 0100HMAIN:MOV SP, #60H MOV TMOD, #23H 59 MOV TL0, #0B3H MOV TH0, #66H MOV TL1,#data ;data是根据波特率是根据波特率 ;要求设置的常数(初值);要求设置的常数(初值) MOV TH1,#data SETB TR0 ;启动;启动TL0初值初值 SETB TR1 ;启动;启动TH0初值初值 SETB ET0 ;允许允许TL0中断中断 SETB ET1 ;允许允许TH0中断中断 SETB EA ;CPU中断开放中断开放 AJMP $ 60 ORG 020
29、0HITL0:MOV TL0, #0B3H CPL P1.0 ;输出方波输出方波200 s RETIITH0:MOV TH0, #66H CPL P1.1 ;输出方波输出方波400 s RETI61例:设某用户系统已使用了两个例:设某用户系统已使用了两个外部中断源,并置定时器外部中断源,并置定时器T1T1工作工作在模式在模式2 2,作串行口波特率发生,作串行口波特率发生器用。现要求再增加一个外部中器用。现要求再增加一个外部中断源,并由断源,并由P1.0P1.0引脚输出一个引脚输出一个5kHz5kHz的方波。的方波。Fosc=12MHz.Fosc=12MHz.62解:解:(1)工作模式)工作模式
30、 可设置可设置T0T0工作在模式工作在模式3 3计数器方式计数器方式,把,把T0T0的引脚的引脚作附加的外部中断输入端,作附加的外部中断输入端,TL0TL0的计数初值为的计数初值为FFHFFH,当检测到当检测到T0T0引脚电平出现由引脚电平出现由1 1至至0 0的负跳变时,的负跳变时,TL0TL0产生溢出,申请中断产生溢出,申请中断,相当于一个边沿触发的外部,相当于一个边沿触发的外部中断源中断源。 T0T0模式模式3 3下,下,TL0TL0作计数用,而作计数用,而TH0TH0用作用作8 8位的定位的定时器时器,定时控制,定时控制P1.0P1.0引脚输出引脚输出5kHz5kHz的方波信号。的方波
31、信号。 63(2)计算初值)计算初值TL0TL0的计数初值为的计数初值为FFHFFH。TH0TH0的计数初值的计数初值X X为:为: P1.0P1.0方波周期方波周期T=1/(5kHz)=0.2ms=200sT=1/(5kHz)=0.2ms=200s 用用TH0TH0作定时作定时100s100s时,时, X=256-100 X=256-100 12/12=15612/12=15664(3)程序清单)程序清单 MOV TMOD,#27H ;T0为模式为模式3,计数方式计数方式 ; T1为模式为模式2,定时方,定时方式式 MOV TL0,#0FFH ;TL0计数初值计数初值 MOV TH0,#15
32、6 ;TH0计数初值计数初值 MOV TL1,#data ;data是根据波特率是根据波特率 ;要求设置的常数(初值);要求设置的常数(初值) MOV TH1,#data MOV TCON,#55H ;外中断;外中断0,外中断,外中断1边沿触发,边沿触发, ;启动;启动T0,T1 MOV IE,#9FH ; 开放全部中断开放全部中断 65TL0溢出中断服务程序(由溢出中断服务程序(由000BH转来)转来)TL0INT:MOV TL0,#0FFH ;TL0重赋初值重赋初值 ;(中断处理);(中断处理) RETI TH0溢出中断服务程序(由溢出中断服务程序(由001BH转来)转来)TH0INT:M
33、OV TH0,#156 ;TH0重赋初值重赋初值 CPL P1.0 ;P1.0取反输出取反输出 RETI串行口及外部中断串行口及外部中断0,外部中断,外部中断1的服务程序略。的服务程序略。66设时钟频率为设时钟频率为6MHz6MHz。编写利用。编写利用T0T0产生产生1s1s定时的程序。定时的程序。67五五 门控位的应用门控位的应用GATE位是控制外部输入脉冲对定时计数器的位是控制外部输入脉冲对定时计数器的控制。当为控制。当为“1”时,允许外部输入电平控制时,允许外部输入电平控制启、停定时器。利用这个特性可测量外部输启、停定时器。利用这个特性可测量外部输入脉冲的宽度入脉冲的宽度。例:利用T0门
34、控位测试INT0引脚上出现的正脉冲的宽度,将所测得值高位存入片内71H单元,低位存入片内70H单元。(fosc=12MHz)测试时,应在/INT0为低电平时,设TR0为1;当/INT0变高时,启动计数;当/INT0再变低时,停止计数。该计数值即被测正脉冲宽度。68MOV TMOD , #09H;T0定时器方式,GATE=1MOV TL0, #00HMOV TH0, #00HMOV R0, #70HJB P3.2, $ ;等待P3.2变低SETB TR0 ;启动T0准备工作JNB P3.2, $ ;等待P3.2变高JB P3.2, $ ;等待P3.2再次变低CLR TR0 ;停止计数MOV R0
35、, TL0 ;存放计数低字节INC R0MOV R0, TH0 ;存放计数高字节SJMP $ 694-2-4 定时器定时器T2(简介)(简介)16位定时器位定时器/计数器,具有自动重装载和捕获能力计数器,具有自动重装载和捕获能力3种工作方式:种工作方式:l捕捉方式捕捉方式l常数自动再装入方式常数自动再装入方式l串行口的波特率发生器方式串行口的波特率发生器方式相关的专用寄存器相关的专用寄存器l控制寄存器控制寄存器T2CON(可位寻址)(可位寻址)l方式控制寄存器方式控制寄存器T2MOD(可位寻址)(可位寻址)l数据寄存器数据寄存器 TH2, TL2l捕获寄存器捕获寄存器 RCAP2H, RCAP
36、2L70控制寄存器控制寄存器T2CON 字节地址为字节地址为C8H,位寻址的地址为,位寻址的地址为C8HCFH, 如下:如下:71其中各位的意义如下:其中各位的意义如下:lTF2T2的溢出标志的溢出标志, 在在RCLK&TCLK=1时除外,时除外,需要需要软件清除软件清除lEXF2T2外部中断标志外部中断标志, 当当EXEN2=1时,时,T2EX引脚负跳变,置位标志,申请中断;需要引脚负跳变,置位标志,申请中断;需要软软件清除件清除lRCLK(TCLK) 串行接收串行接收(发送发送)时钟标志,时钟标志,“1”选选T2,”0”选选T1lEXEN2 T2外部允许标志外部允许标志lTR2 T
37、2计数控制位计数控制位lC/T2 定时或计数器方式选择位定时或计数器方式选择位, “1” 计计数,数,”0” 定时定时lCP/RL2 捕获重装载标志,捕获重装载标志, “1” 捕获功能捕获功能72方式控制寄存器方式控制寄存器T2MOD字节地址为字节地址为C9H,位寻址的地址为,位寻址的地址为D0HD6H, 如下:如下:T2OE 允许时钟信号输出到允许时钟信号输出到T2 (P1.0),高电平有效高电平有效DCEN为为1时。时。T2可构成加减计数器。可构成加减计数器。73T2工作方式: 3种详细的工作方式:课后自学RCLKTCLKCP/RL2 TR2工作方式工作方式001自动重装载方式自动重装载方
38、式011捕获方式捕获方式11波特率发生器方式波特率发生器方式0关闭关闭74T2工作方式一工作方式一: 自动重装载方式自动重装载方式75T2工作方式二工作方式二: 捕获方式捕获方式76T2工作方式三工作方式三: 波特率发生器波特率发生器774-3 串行接口串行接口UART一一 两种基本的通信方式两种基本的通信方式 0 1 0 0 1 0 0 1D0D1D2D3D4D5D6D7状态控制(选通)计算机计算机(或外设) 0 1 0 0 1 0 0 1(a)8T计算机计算机计算机(或外设)(b).(a) 并行通信;(b) 串行通信78二串行通信传输方式二串行通信传输方式ASSB(a)(b)(c)ABAB
39、(a) 单工方式;(b) 半双工方式;(c) 全双工方式79三串行通信两种基本方式三串行通信两种基本方式1异步通信异步通信异步通信中数据或字符是一帧一帧传送。异步通信中数据或字符是一帧一帧传送。帧即为一个字符的完整通信格式,又称帧格帧即为一个字符的完整通信格式,又称帧格式。在帧格式中,一个字符由式。在帧格式中,一个字符由4部分组成:起部分组成:起始位、数据位、奇偶校验位、停止位。始位、数据位、奇偶校验位、停止位。 串行异步传送的字符格式802 同步通信同步通信 数据或字符开始处是由一同步字符来指示,数据或字符开始处是由一同步字符来指示,并由时钟实现发送端和接收端同步。并由时钟实现发送端和接收端
40、同步。四四 波特率波特率(Baud rate) 波特率就是数据的传送速率,即每秒钟传波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位送的二进制位数,单位为位/秒。秒。 要求发送端与接收端的波特率必须一致。要求发送端与接收端的波特率必须一致。814-3-1 串行接口的组成和特性 51系列单片机的串行口是全双工异步串行系列单片机的串行口是全双工异步串行通信接口。通信接口。一一 串行口结构串行口结构1 波特率发生器波特率发生器 主要由主要由T1、T2及内部的一些控制开关和分频器及内部的一些控制开关和分频器组成。提供串行口的时钟信号即组成。提供串行口的时钟信号即TCLK、RCLK。82EA
41、ESSM0 SM1 SM2 REN TB8 RB8TIRI波波特特率率发发生生器器发送SBUFTI 串行口 (TX) RI 控制逻辑 (RX)接收SBUF串串行行口口中中断断T TX XC CL LK KR RX XC CL LK KT TX XD DR RX XD D内内部部总总线线I IE ES SC CO ON N串行口结构框图83注意注意:接收器是双缓冲结构,在前一个字节被从接收缓冲器接收器是双缓冲结构,在前一个字节被从接收缓冲器SBUF读读出之前,第二个字节即开始被接收(串行输入至移位寄存器),但出之前,第二个字节即开始被接收(串行输入至移位寄存器),但是,在第二个字节接收完毕而前一
42、个字节是,在第二个字节接收完毕而前一个字节CPU未读取时,会丢失前未读取时,会丢失前一个字节一个字节.842 串行口的内部包含串行口的内部包含串行数据缓冲寄存器串行数据缓冲寄存器SBUF数据接收缓冲器数据接收缓冲器(只读出不写入只读出不写入)和数据发送缓冲器和数据发送缓冲器(只写只写入不读出入不读出)。物理上隔离,共用一个地址。物理上隔离,共用一个地址( 99H )。当向当向SBUF发发“写写”命令时(执行命令时(执行MOV SBUF,A ),即),即从片内总线向发送从片内总线向发送SBUF写入数据写入数据,并开始由并开始由TXD引脚向引脚向外发送一帧数据,发送完使外发送一帧数据,发送完使TI
43、=1。在满足串行口接收中断标志位在满足串行口接收中断标志位RI(SCON.0)=0的条件的条件下,置允许接收位下,置允许接收位REN(SCON.4)=1就会接收一帧数就会接收一帧数据进入移位寄存器,并装载到接收据进入移位寄存器,并装载到接收SBUF中,同时使中,同时使RI=1。当发读。当发读SBUF命令时(执行命令时(执行MOV A,SBUF),便),便由接收由接收SBUF取出信息通过内部总线送取出信息通过内部总线送CPU。85串行口控制寄存器串行口控制寄存器串行数据输入串行数据输入/输出引脚输出引脚 接收方式下,串行数据从接收方式下,串行数据从RXD(P3.0)输入。输入。串行口内部在接收缓
44、冲器之前还有移位寄存串行口内部在接收缓冲器之前还有移位寄存器,构成串行接收双缓冲结构。避免数据接器,构成串行接收双缓冲结构。避免数据接收重叠。收重叠。 发送方式下,串行数据从发送方式下,串行数据从TXD(P3.1)输出。输出。串行口控制逻辑串行口控制逻辑86二串行口控制二串行口控制1 串行口控制寄存器串行口控制寄存器SCON(98H) SM0和和SM1SM0SM1 SM2 REN TB8 RB8TIRISM0 SM1工作方式功 能波特率0 0 0扩展移位寄存器 fosc/120 1 18位UART由定时器控制1 0 29位UARTfosc/32 fosc/641 1 39位UART由定时器控制
45、87SM2 方式方式2和方式和方式3的多机通信控制位的多机通信控制位方式方式0,SM2=0。方式方式1,若,若SM2=1,只有接收到有效停止位,接,只有接收到有效停止位,接收中断收中断RI才置才置1。方式方式2和方式和方式3中,如中,如SM2=1,则接收到的第,则接收到的第9位位数据数据(RB8)为为0时不启动接收中断标志时不启动接收中断标志RI(即即RI=0),并且将接收到的前并且将接收到的前8位数据丢弃;位数据丢弃;RB8为为1时,才时,才将接收到的前将接收到的前8位数据送入位数据送入SBUF,并置位,并置位RI,产生中断请求。当产生中断请求。当SM2=0时,则不论第时,则不论第9位数据位
46、数据为为0或或1,都将前,都将前8位数据装入位数据装入SBUF中,并产生中中,并产生中断请求。该功能用于多机通信中。断请求。该功能用于多机通信中。88REN 允许串行接收位允许串行接收位 1允许接收;允许接收;0禁止接收禁止接收 由软件置由软件置1或清或清0,相当于串行接收的开关。,相当于串行接收的开关。 在串行通信接收控制过程中,如果满足在串行通信接收控制过程中,如果满足RI0和和REN1(允许接收)的条件,就允许接收,一(允许接收)的条件,就允许接收,一帧数据就装载入接收帧数据就装载入接收SBUF中。中。TB8 发送数据发送数据D8位位 在方式在方式2和方式和方式3时,时,TB8为所要发送
47、的第为所要发送的第9位数据。位数据。在多机通信中,以在多机通信中,以TB8位的状态表示主机发送的位的状态表示主机发送的是地址还是数据:是地址还是数据:TB8=0为数据,为数据,TB8=1为地址;为地址;也可用作数据的奇偶校验位。该位由软件置位或也可用作数据的奇偶校验位。该位由软件置位或复位。复位。在方式在方式0或方式或方式1中,该位未用中,该位未用89RB8 接收数据接收数据D8位位 在方式在方式2和方式和方式3时,接收到的第时,接收到的第9位数据,可位数据,可作为奇偶校验位或地址帧或数据帧的标志。作为奇偶校验位或地址帧或数据帧的标志。方式方式1时,若时,若SM2=0,则,则RB8是接收到的停
48、止是接收到的停止位。在方式位。在方式0时,不使用时,不使用RB8位。位。TI 发送中断标志发送中断标志 在方式在方式0时,当发送数据第时,当发送数据第8位结束后,或在其位结束后,或在其它方式发送停止位后,由内部硬件使它方式发送停止位后,由内部硬件使TI置位置位,向向CPU请求中断。意味着向请求中断。意味着向CPU提供提供“发送发送缓冲器缓冲器SBUF已空已空”的信息,的信息,CPU可以准备发可以准备发送下一帧数据。送下一帧数据。CPU在响应中断后,必须用在响应中断后,必须用软件清零。此外,软件清零。此外,TI也可供查询使用。也可供查询使用。90RI接收中断标志位接收中断标志位 在方式在方式0时
49、,当接收数据的第时,当接收数据的第8位结束后,或在位结束后,或在其它方式接收到停止位的中间时由内部硬件其它方式接收到停止位的中间时由内部硬件使使RI置位,向置位,向CPU请求中断。表示一帧数据请求中断。表示一帧数据接收结束,并已装入接收接收结束,并已装入接收SBUF中,要求中,要求CPU取走数据。在取走数据。在CPU响应中断后,也必须用软响应中断后,也必须用软件清零。件清零。RI也可供查询使用。也可供查询使用。912 特殊功能寄存器特殊功能寄存器PCONSMOD位是串行口波特率系数控制位,为位是串行口波特率系数控制位,为1时时使波特率加倍。使波特率加倍。其余位是掉电方式控制位,其余位是掉电方式
50、控制位,与串行口无关与串行口无关。SMOD924-3-2串行接口的工作原理串行接口的工作原理一 方式方式01 方式方式0为同步移位寄存器输入为同步移位寄存器输入/输出方式,常输出方式,常用于扩展并行用于扩展并行I/O口。口。2 数据由数据由RXD串行输入串行输入/输出,输出,TXD输出移位脉输出移位脉冲。冲。3 数据传输波特率固定为数据传输波特率固定为fosc/12。4 接收接收/发送的是发送的是8位数据,传输时位数据,传输时低位在前低位在前。93输出:输出: 当执行写SBUF的指令时(MOV SBUF,A),启动串行数据发送。从低位开始串行输出。当完成一个字节的输出后就停止移位,并置位TI。
51、 输入:输入: 在REN=1,RI=0时启动串行口接收。当外部移位寄存器内容移入内部移位寄存器,并写入SBUF,则置位RI,停止移位,完成一个字节的输入。注意:每当发送或接收完8位数据时,由硬件将发送中断TI或接收中断RI标志置“1”;CPU响应TI或RI中断请求时,不会清除标志,必须由软件清“0”.94二 方式11 方式1时,串行口为10位通用异步接口。2 数据传输波特率由定时/计数器T1和T2的溢出决定,由程序设定。 当T2CON中RCLK和TCLK置位时,由T2作接收/发送的波特率发生器;当RCLK和TCLK都为0时,由T1作接收/发送的波特率发生器。3 数据从引脚TXD端输出,从引脚R
52、XD输入。95发送发送 当数据写入发送缓冲器时,启动发送器开始发送。8位数据发送完,置位TI=1,并申请中断,通知CPU可发送下一个数据。接收接收 在REN=1的前提下,确认是真正起始位“0”后,开始接收一帧数据。当RI=0且SM2=0时,数据被有效接收。将接收到的数据装入串行口的SBUF,并置位RI.96三 方式2和方式31 CPU向发送缓冲器写入数据就启动串行口发送。发送完毕,使TI=1。2 接收时,先置REN为“1”,将RI清“0”。再根据SM2状态和所接收到RB8状态决定串口在信息到来后是否会使RI=1,申请中断,接收数据。当SM2=0,不管RB8状态,将RI置1串口接收当SM2=1,
53、 RB8=1时,多机通信,接收信息为地 址,将RI置1串口接收 RB8=0时,接收信息为数据,但不发给本从机,此时RI不置1数据丢失974-3-3 波特率一 方式0:波特率=振荡器频率/12二 方式2:波特率=2SMOD*振荡器频率/64三 方式1、3(T1产生波特率):波特率=2SMOD*振荡器频率/32*12(256-(TH1)注:记住当振荡器频率选用11.0592MHZ时,对于常用波特率,能正确计算T1的初值。984-3-4 多机通信原理在主从式多机系统中: 1主机发出的信息有两类。一类为地址,用来确定需要和主机通信的从机,特征是串行传送的第9位数据为1;另一类是数据,特征是串行传送的第
54、9位数据为0。2对从机来说,在接收时,若RI=0,则只要SM2=0,接收总能实现;而若SM2=1,则发送的第9位TB8必须为1接收才能进行。991 主机首先发出要求通信的从机地址信号。此时,所有从机的SM2都为“1”,所有从机均收到地址信号。2 从机判断主机发出的地址信号是否与本从机号相符。相符的从机SM2“0”,反之为“1”。3 主机发送数据帧。仅SM2=0的从机可收到。1004-3-5 串行口的应用和编程一串行口应用同一印板内,两个单片机串行口可直接通信。单片机与PC机之间利用串行口通信,必须进行电平转换。二串行口编程串行口初始化编程: 选择串行口工作方式,波特率,允许串行口中断。即对SC
55、ON、PCON、TMOD、TCON、TH1、TL1、IE、IP、SBUF编程。101例1:编写程序,功能为对串行口初始化为方式1输入/输出,fosc=11.0592MHZ,波特率为9600,先在串行口上输出字符串“MCS-51”,接着读串行口上输入的字符,又将该字符从串行口上输出。 MOV TMOD, #20H MOV TH1, #0FDH MOV TL1, #0FDH SETB TR1 MOV SCON, #52H/50H MOV R4, #0 MOV DPTR, #TSAB102LP1: MOV A, R4 MOVC A, A+DPTR JZ LP6LP3: JBC TI, LP2 SJM
56、P LP3LP2: MOV SBUF, A INC R4 SJMP LP1LP6: JBC RI, LP5 SJMP LP6LP5: MOV A, SBUFLP8:JBC TI, LP7 SJMP LP8LP7:MOV SBUF, A SJMP LP6TSAB:DB MCS-51 DB 0AH,0DH,0 103例例2:89C52串行口按双工方式进行数据收发,要求波串行口按双工方式进行数据收发,要求波特率为特率为1200,串口工作在方式串口工作在方式1。编写有关的通信程。编写有关的通信程序。设发送数据区的首地址为序。设发送数据区的首地址为20H,接收数据区的,接收数据区的首地址为首地址为40H
57、,fosc为为11.0592MHz。解解:双工通信要求收、发能同时进行。实际上,收、发操作主要双工通信要求收、发能同时进行。实际上,收、发操作主要是在串行接口进行,是在串行接口进行,CPU只是把数据从接收缓冲器读出和把只是把数据从接收缓冲器读出和把数据写入发送缓冲器。数据写入发送缓冲器。 数据传送用中断方式进行,响应中断以后,通过检测是数据传送用中断方式进行,响应中断以后,通过检测是RI置置位还是位还是TI置位来决定置位来决定CPU是进行发送操作还是接收操作。发是进行发送操作还是接收操作。发送和接收都通过调用子程序来完成。送和接收都通过调用子程序来完成。104 主程序主程序 MOV TMOD
58、,#20H ;T1设为模式设为模式2 MOV TL1 , #0E8H ; MOV TH1 ,#0E8H ; SETB TR1 ;启动定时器启动定时器1 MOV SCON ,#50H ;设置为方式设置为方式1,REN=1 MOV R0 ,#20H ;发送数据区首址发送数据区首址 MOV R1 ,#40H ;接收数据区首址接收数据区首址 ACALL SOUT ;先输出一个字符先输出一个字符 SETB ES SETB EA 中断服务程序中断服务程序 ORG 0023H ;串行口中断入口串行口中断入口 AJMP SBR1 ;转至中断服务程序转至中断服务程序 ORG 0100H SBR1: JNB RI
59、 ,SEND ;TI=1,为发送中断为发送中断 ACALL SIN ;RI=1,为接收中断为接收中断 SJMP NEXT ;转至统一的出口转至统一的出口SEND: ACALL SOUT ;调用发送子程序调用发送子程序NEXT: RETI ;中断返回中断返回 105发送子程序发送子程序SOUT: CLR TI MOV A ,R0 ;取发送数据到取发送数据到A INC R0 ;修改发送数据指针修改发送数据指针 MOV SBUF ,A ;发送发送 RET ;返回返回接收子程序接收子程序 SIN: CLR RI MOV A ,SBUF ;读出接收缓冲区内容读出接收缓冲区内容 MOV R1 ,A ;读入
60、接收缓冲区读入接收缓冲区 INC R1 ;修改接收数据指针修改接收数据指针 RET ;返回返回106用串行口进行双机异步通信例3:将甲机片内RAM50H5FH单元中的数据块从串行口输出。定义在方式3下发送,TB8作奇偶校验位。采用定时器1方式2作波特率发生器,波特率为1200,fosc=11.0592MHz。 使乙机从甲机接收16个字节数据块,并存入片外3000H300FH单元。接收过程中要求判奇偶标志RB8。若出错则置F0标志为1,反之为0,然后返回。107甲机发送子程序 MOV TMOD,#20H MOV TL1, #0EBH MOV TH1, #0E8H SETB TR1 MOV SCON,#0C0H MOV R0, #5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年离职员工保密合同
- 2024年火锅店创业联盟协议书
- 冶金行业销售员工作报告
- 教育机构代理合同三篇
- 2024年综合性能源管理服务协议范本版B版
- 二零二五年度2025版个人承包体育赛事运营合同范本3篇
- 2025年度智能化办公空间租赁合同12篇
- 2024年餐饮业商用空间租赁合同范本版B版
- 酒店前台工作总结
- 制造业保安工作总结
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之21:“7支持-7.5成文信息”(雷泽佳编制-2025B0)
- 2024年度大数据支撑下的B2B电子商务购销服务合同3篇
- 广东省广州市2025届高三上学期12月调研测试语文试卷(含答案)
- 【9历期末】安徽省利辛县部分学校2023~2024学年九年级上学期期末考试历史试卷
- GB/T 44949-2024智能热冲压成形生产线
- 阜阳市重点中学2025届高考数学全真模拟密押卷含解析
- 房屋市政工程生产安全重大事故隐患判定标准(2024版)宣传海报
- 2024-2025学年统编版七年级语文上学期期末真题复习 专题01 古诗文名篇名句默写
- 2024-2030年中国企业大学建设行业转型升级模式及投资规划分析报告
- 医院培训课件:《病历书写基本规范(医疗核心制度)》
- 2024年“中银杯”安徽省职业院校技能大赛(高职组)花艺赛项竞赛规程
评论
0/150
提交评论