51单片机内部资源及编程 定时器等
时间:2025-05-15
时间:2025-05-15
第五章 MCS-51单片机内部资源及编程
第五章 MCS-51单片机内部资源及编程MCS-51单片机的内部资源主要有并行I/O口、定时器/计数器、串行 接口以及中断系统,MCS-51单片机的大部分功能就是通过对这些资 源的利用来实现的。下面分别对其介绍,并用汇编语言和C语言分别 给出相应例子。
5.1 并行输入/输出接口5.1.1 并行口应用与编程
【例5-1】 利用单片机的P0口接8个发光二极管,P1口接8个开关, 编程实现,当开关动作时,对应的发光二极管亮或灭。 只须把P0口的内容读出后,通过P1口输出即可。 汇编程序: ORG 0100H MOV P0,#0FFH LOOP: MOV A,P0 MOV P1,A SJMP LOOP
第五章 MCS-51单片机内部资源及编程
C51语言程序: #include <reg51.h> void main(void) { unsigned char i; P0=0xff; for(;;) { i=P0;P1=i; } }
第五章 MCS-51单片机内部资源及编程
5.2 定时/计数器接口5.2.1 定时/计数器的主要特性 1.MCS-51系列中51子系列有两个16位的可编程定时/计数器: 定时/计数器T0和定时/计数器T1,52子系列有三个,还有一个定时/ 计数器T2。 2.每个定时/计数器既可以对系统时钟计数实现定时,也可以对 外部信号计数实现计数功能,通过编程设定来实现。 3.每个定时/计数器都有多种工作方式,其中T0有四种工作方式; T1有三种工作方式,T2有三种工作方式。通过编程可设定工作于某 种方式。 4.每一个定时/计数器定时计数时间到时产生溢出,使相应的溢 出位置位,溢出可通过查询或中断方式处理。
第五章 MCS-51单片机内部资源及编程
5.2.1 定时/计数器T0、T1的结构及工作原理
Tcy
T1
T0
TH1
TL1
TH0
TL0
内部总线 启动 溢出 TCON 中断请求 溢出 启动 工作 方式 工作 方式
TMOD
第五章 MCS-51单片机内部资源及编程
加法计数器在使用时注意两个方面。第一,由于它是加法计数器,每来一个 计数脉冲,加法器中的内容加1个单位, 当由全1加到全0时计满溢出,因而,如果 要计N个单位,则首先应向计数器置初值 为X,且有: 初值X=最大计数值(满值)M-计数值 N 在不同的计数方式下,最大计数值 (满值)不一样,一般来说,当定时器/计 数器工作于R位计数方式时,它的最大计 数值(满值)为2的R次幂。
第五章 MCS-51单片机内部资源及编程
第二,当定时/计数器工作于计数方式时,对 芯片引脚T0(P3.4)或T1(P3.5)上的输 入脉冲计数,计数过程如下:在每一个机 器周期的S5P2时刻对T0(P3.4)或T1 (P3.5)上信号采样一次,如果上一个机 器周期采样到高电平,下一个机器周期采 样到低电平,则计数器在下一个机器周期 的S3P2时刻加1计数一次。因而需要两个 机器周期才能识别一个计数脉冲,所以外 部计
数脉冲的频率应小于振荡频率的1/24
第五章 MCS-51单片机内部资源及编程
5.2.2 定时/计数器的方式和控制寄存器 一.定时/计数器的方式寄存器TMODTMOD (89H) D7 GATE ← D6 C/T D5 M1 D4 M0 → D3 GATE ← D2 C/T 定时器0 D1 M1 D0 M0 →
定时器1
其中: M1、M0为工作方式选择位 ,用于对T0的四种工作方式,T1的三 种工作方式进行选择,选择情况如下M1 0 0 1 1 M0 0 1 0 1 工作方式 0 1 2 3 方式说明 13位定时/计数器 16位定时/计数器 8位自动重置定时/计数器 两个8位定时/计数器(只有T0有)
第五章 MCS-51单片机内部资源及编程
C/T:定时或计数方式选择位,当C/T=1时工作于计数方式;当C/T=0 时工作于定时方式。 GATE:门控位,用于控制定时/计数器的启动是否受外部中断请求信号 的影响。二.定时/计数器的控制寄存器TCON
TCON(88H)
D7TF1
D6TR1
D5TF0
D4TR0
D3IE1
D2IT1
D1IE0
D0IT0
其中: TF1:定时/计数器T1的溢出标志位,当定时/计数器T1计满时,由 硬件使它置位,如中断允许则触发T1中断。进入中断处理后由内部硬 件电路自动清除。 TR1:定时/计数器T1的启动位,可由软件置位或清零,当TR1=1时 启动;TR1=0时停止。
第五章 MCS-51单片机内部资源及编程
TF0:定时/计数器T0的溢出标志位,当定时/计数器T0计满时,由硬 件使它置位,如中断允许则触发T0中断。进入中断处理后由内部硬件 电路自动清除。 TR0:定时/计数器T0的启动位,可由软件置位或清零,当TR0=1时启 动;TR0=0时停止。5.2.3 定时/计数器的工作方式 一.方式0振荡器 12 Tcy S2 TLx THx (低5位) (高8位) 中断请 求 TFx
C/T S1Tx TRx GATE INTx 或
与
第五章 MCS-51单片机内部资源及编程
方式1是13位的定时/计数方式,因而最大计数值(满值)为2的13次 幂,等于8192。如计数值为N,则置入的初值X为: X=8192-N 如定时/计数器T0的计数值为1000,则初值为7192,转换成二进 制数为1110000011000B,则TH0=11100000B,TL0=00011000B。二.方式1 方式1的结构与方式0结构相同,只是把13位变成16位, 16位的加 法计数器被全部用上。
由于是16位的定时/计数方式,因而最大计数值(满值)为2的16 次幂,等于65536。如计数值为N,则置入的初值X为: X=65536-N 如定时/计数器T0的计数值为1000,则初值为655361000=64536,转换成二进制数为1111110000011000B,则 TH0=11111100B,TL0=00011000B。
第五章 MCS-51单片机内部资源及编程
三.方式2振荡器 12S1 Tx TRx GATE INTx 或 Tcy C/T
S2TLx (8位) 中断请 求 TFx 重装初值 8 THx (8位)
与
方式2下,16位的计数器只用了8位来计数,用的是TL0(或TL1) 的8位来进 …… 此处隐藏:2358字,全部文档内容请下载后查看。喜欢就下载吧 ……