授课日期 班次 授课时数 2
课题,任务九 单片机计数并显示教学目的:掌握 定时 /计数器的结构和工作方式熟悉 定时 /计数器的应用重点,定时 /计数器的工作方式难点,定时 /计数器的应用教具,多媒体作业,5.1 5.6
自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程:
由任务九:单片机计数并显示引入本次课内容
1.任务描述
2.硬件电路与工作原理
3.控制程序
4.相关知识(由单片机如何进行计数?引入)
1)单片机是如何进行计数的?(工作方式)
2)计数、定时程序的编制由任务九提出程序需完成的功能,引导学生进行程序编制,并分析程序的正确性与合理性,最后老师总结此类程序编制的方法
3) 定时 /计数器的使用技巧
5.课堂小结课后小结:
5,1 任务九 单片机计数并显示
5,1,1 硬件电路与工作原理任务描述,单片机对按键次数进行计数,并在发光二极管上实时显示
5,1 任务九 单片机计数并显示
5,1,2 控制程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN,MOV TMOD,#06H
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV P1,TL0
END
定时计数器 T0 初始化启动计数器 T0
开始计数值送 P1 口显示结束
5,1 任务九 单片机计数并显示
5,1,3 源程序的编辑、编译、下载打开“伟福”模拟仿真软件进行程序的编辑、编译。
1、正确选择单片机类型 8751或 8031
2、正确选择编译器-伟福编译器
3、选择模拟仿真功能
4、打开或新建文件进行编辑
5、编译打开,ISP下载软件”将目标文件下载到 ISP-4实验开发板上的
AT89S51单片机芯片,观察程序运行结果。
1、编译成功后打开下载软件
2、选择好单片机 89S51并测试
3、打开伟福 6000编译生成的,BIN或,HEX文件
4、选择自动写完成擦除、写、读、校验过程
5、观看运行结果
5,1 任务九 单片机计数并显示
5,1,4 相关知识
1,单片机如何进行计数?
MCS-51的单片机内有两个 16位可编程的定时 /计数器,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。
定时 /计数器的工作方式
MCS-51单片机内部的定时 /计数器的结构如图所示
5,1 任务九 单片机计数并显示
TMOD和 TCON这两个特殊功能寄存器的格式参见下表
TMOD寄存器结构
D7 D6 D5 D4 D3 D2 D1 D0
GATA M1 M0 GATA M1 M0
←T1 方式字段 → ←T0 方式字段 →
定时 /计数器的方式控制字 TMOD,字节地址为 89H,其格式如定时器控制积存器 TCON,字节地址为 88H,位地址为 88H— 8FH,其格式如
TCON结构
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
5,1 任务九 单片机计数并显示
MCS-51的定时 /计数器共有四种工作方式,我们逐个进行讨论工作方式 0
定时 /计数器 0的工作方式 0电路逻辑结构见图工作方式 0是 13位计数结构的工作方式,其计数器由 TH的全部 8位和 TL的低 5位构成,TL的高 3位没有使用。当 C/T=0时,多路开关接通振荡脉冲的 12分频输出,13位计数器以次进行计数。这就是定时工作方式。当
C/T=1时,多路开关接通计数引脚( To),外部计数脉冲由银南脚 To输入。当计数脉冲发生负跳变时,计数器加 1,这就是我们常称的计数工作方式
5,1 任务九 单片机计数并显示不管是哪种工作方式,当 TL的低 5位溢出时,都会向 TH进位,而全部 13位计数器溢出时,则会向计数器溢出标志位 TF0进位门控位 GATA的功能,
当 GATA=1时,由于 GATA信号封锁了与门,使引脚 INT0信号无效如果 TR0=1,则接通模拟开关,使计数器进行加法计数,即定时 /计数工作
TR0=0,则断开模拟开关,停止计数,定时 /计数不能工作当 GATA=0时,与门的输出端由 TR0和 INT0电平的状态确定如果 TR0=1,INT0=1与门输出为 1,允许定时 /计数器计数在这种情况下,运行控制由 TR0和 INT0两个条件共同控制,
TR0是确定定时 /计数器的运行控制位,由软件置位或清,0”
5,1 任务九 单片机计数并显示在工作方式 0下,计数器的计数值范围是:
1— 65536( 216)
当为定时工作方式 0时,定时时间的计算公式为:
( 213— 计数初值) ╳ 晶振周期 ╳ 12
或 ( 213— 计数初值) ╳ 机器周期如果单片机的晶振选为 6.000MHz,则最小定时时间为:
[213— ( 213— 1) ]╳ 1/6╳ 10-6╳ 12=2╳ 10-6(s)=2(us)
(213— 0)╳ 1/6╳ 10-6╳ 12=16384╳ 10-6(s)=16384(us)
其时间单位与晶振周期或机器周期相同
5,1 任务九 单片机计数并显示工作方式 1
当 M1,M0=01时,定时 /计数器处于工作方式 1,此时,定时 /及数器的等效电路如图所示可以看出,方式 0和方式 1的区别仅在于计数器的位数不同,方式 0为 13位,
方式 1则为 16位,由 TH0作为高 8位,TL0为低 8位,有关控制状态字与方式 0同
5,1 任务九 单片机计数并显示在工作方式 1下,计数器的计数值范围是:
1— 8192( 213)
当为定时工作方式 1时,定时时间的计算公式为:
( 216— 计数初值) ╳ 晶振周期 ╳ 12
或 ( 216— 计数初值) ╳ 机器周期如果单片机的晶振选为 6.000MHz,则最小定时时间为:
[213— ( 216— 1) ]╳ 1/6╳ 10-6╳ 12=2╳ 10-6(s)=2(us)
(216— 0)╳ 1/6╳ 10-6╳ 12=131072╳ 10-6(s)=131072(us)
其时间单位与晶振周期或机器周期相同
5,1 任务九 单片机计数并显示工作方式 2
当 M1,M0=10时,定时 /计数器处于工作方式 2,此时,定时 /及数器的等效电路如图所示具有自动重装载功能,即自动加载计数初值,在这种工作方式中,16位计数器分为两部分,以 TL0为计数器,以 TH0作为预置寄存器,当计数溢出时,TH以硬件方法自动给计数器 TL0重新加载
5,1 任务九 单片机计数并显示工作方式 3
当 M1,M0=11时,定时 /计数器处于工作方式 3,此时,定时 /及数器的等效电路如图所示
5,1 任务九 单片机计数并显示如果定时 /计数器 0工作于工作方式 3,那么定时 /计数器 1的工作方式就只能工作在方式 0、方式 1或方式 2下,等效电路参见图
5,1 任务九 单片机计数并显示计数、定时程序程序的编制 (定时、计数器初始化)
确定工作方式 —— 对 TMOD赋值;
如:任务中的 MOV TMOD,#06H指令,设定 T0为计数器工作方式 。
预置定时计数器中计数的初值 —— 直接写入 TH和 TL;
如:任务中的 MOV TH0,#00H 两条指令,设定计数初值 。
MOV TL0,#00H
根据需要开放定时器 /计数器的中断 —— 对 IE位赋值;
启动定时器 /计数器;
如:任务中的 SETB TR0 指令
5,1 任务九 单片机计数并显示
初值的计算方法
X=M-计数值
M是定时器的最大计数值 。 视工作方式不同而不同 。
工作方式 0,13位定时 /计数方式,因此,最多可以计到 2的 13次方,也就是
8192次。
工作方式 1,16位定时 /计数方式,因此,最多可以计到 2的 16次方,也就是
65536次。
工作方式 2和工作方式 3,都是 8位的定时 /计数方式,因此,最多可以计到 2的 8
次方,也说是 256次。
预置值计算,用最大计数量减去需要的计数次数即可。
计数,定时程序程序的编制举例
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#4CH
SETB TR0
以上程序是任务一中的定时程序段,它的初始化过程和计数方式类似。
课堂小结:
1、任务九的硬件电路与工作原理
2、主程序流程图
3、定时 /计数器的四种工作方式
4、怎样编制计数程序作业:
1、预习计数器实验实训项目,完成预习报告,编写控制程序
2,P134 5.1 5.6