实验六单片机定时计数器实验优秀课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T C O N TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
位地址 8F 8E 8D 8C 8B 8A 89 88
TFx:
定时器启停和标志
外部中断标志和触发方式
0:无 Tx中断(硬件复位)
1:有 Tx溢出中断
TRx: 0:停 Tx计数 1:启 Tx计数
Hale Waihona Puke Baidu
3、定时器工作方式寄存器TMOD
C/T 1
C/T 0
四、实验内容 1、定时器实验1: 利用定时器T0实现P1.0输出周期为 250ms方波,让一个发光二极管闪烁。(课内) 2、定时器实验2: 在实验箱显示器上显示左移的数字 “8”,要求每过1秒“8”字左移一位,循环不断。(课内) 3、计数器实验1:CT0计数满3之后(即输入了3个外部脉 冲之后),使显示器上显示字符“8”左移一位。如此不断 重复。(课内) 4、程序移植实验
(6)、Proteus仿真 (课外完成)
➢仿真系统元器件参数:
器件名称 单片机 电容 电解电容
发光二极管 电阻 晶振 按键
英文名称 AT89C52
CAP CAP-ELEC LED-BLUE
RES CRYSTAL BUTTON
参数
30pF 22uF 10mA 10kΩ 12Mhz
备注
➢输入输出实验仿真图
左移“8”字一位,就必须进行定时时间扩展。
➢T0每隔100ms中断一次,中断10次即实现了1秒的定时。
T0采用定时方式1, ①计算定时初值:
初值X1 =65536-100*1000/2 =3CB0H
将移植到学习板程序下载到本系统运行,可以观察到L1闪烁
2、定时器实验2: 在实验箱显示器上显示 左移的数字“8”,要求每过1秒“8”字左移 一位,循环不断。
(1)寄存器设置及初值计算 (课内完成)
➢频率是6MHz,机器周期为2uS,16位的定时器最大定时
时间仅为Tmax=2×65536=131.072mS。如果要求每过1秒
TC= 216-100×103/2
=65536-50000=15536
=3CB0H
设置TMOD方式字:
对于T0来说:M1M0=01、 C / T = 0 、GATE=0。 由于T1不用,可任意设置,现取为全0。 所以: TMOD=0000,0001B=01H
89H TMOD GATE C/ T M1 M0 GATE C/ T M1 M0
定时方式的初值计算:
假设需要的需要的定时时间为T,则应装入的计数 初值为:
TC M T/T 计数
6、定时/计数器的初始化
可编程器件在使用之前需要进行初始化。对定时/计数器而言需:
第一要能正确写入控制字; 第二能进行计数初值的计算。
一般步骤
(1)确定工作方式,即对TMOD寄存器进行赋值。 (2)计算计数初值,并写入寄存器TH0、TL0或TH1、TL1中。 (3)根据需要,置位ETx允许T/C中断。 (4)置位EA使CPU开中断(需要时)。 (5)置位TRx启动计数。
修改程序,使用定时器T1实现125ms定时
(4)单片机输入输出C51程序设计与修改 (课外完成)
修改程序,使用定时器T1实现125ms定时
(5)修改汇编和C51程序,移植到学习板 (课内完成)
学习板发光二极管送0亮,实验箱送1 亮,因为要求闪烁,故而可以忽略此 处电路不同。
学习板晶振频率12Mhz,实验箱晶振 6Mhz,故而在初值相同情况下,学 习板上定时时间是62.5ms,直接下载 实验箱原程序led闪烁更快。
例: 若单片机的晶振频率为6MHz,要求定时/计数器 T0产生100ms的定时,试确定计数初值以及TMOD 寄存器的内容。
解: 当晶振频率为6MHz时,在不扩展计数器情况下产生 100ms的定时只能采用方式1(16位定时器)。
计数初值:TC=M-T/T计数
T计数=2μS
方式0时:Tmax=213×2μS=16.384 mS 方式1时:Tmax=216×2μS=131.072 mS 方式2、3 时:Tmax=28×2μS=0.512 mS
T0采用定时方式1, ①计算定时初值:
初值X1 =65536-125*1000/2 =0BDCH
② 确定TMOD方式字:
M1M0=01H、 C / T =0、GATE=0 TMOD=00000001B=01H
(2)、实验线路连接 (课内完成)
(3)单片机输入输出汇编程序设计与修改 (课内完成)
TMOD:用于设置T/C的工作方式。
89H
T MOD GATE C/ T M1 M0 GATE C/ T M1 M0
C/T 1
C/T 0
GATA:定时/计数器启动控制位。
C/ T =1时为计数方式 =0时为定时方式
M1M0:T/C工作方式定义位。
4、定时/计数器的工作方式
T MOD GATE C/ T M1 M0 GATE C/ T M1 M0
M1 M0 工作方式
方式说明
0
0
0
13位定时/计数器
0
1
1
16位定时/计数器
1
0
2
可自动重装入的8位定时/计数器
1
1
3
T0分为2个8定时器,T1无此方式
5、定时/计数初值的计算方法 计数方式的初值计算:
假设需要的计数值为N,则应装入的计数初值为:
X=M-N
(M :模数,为216、213、28、N :需要的计数值)
实验六单片机定时计数器实验
二、实验器材
1、计算机1台。 2、单片机实验箱1台 3、TKS仿真器 1台 4、串口通讯线 1根 5、单片机学习板 1块
三、实验原理 1、定时/计数器的结构
2、定时器控制寄存器TCON
TCON:用于控制定时器的启动与停止,中断标志。
88H
D7 D6 D5 D4 D3 D2 D1 D0
修改以上程序,移植到学习板(课内) 5、利用Proteus软件仿真以上三个实验(课外)
1、定时器实验1: 利用定时器T0实现P1.0输出 周期为250ms方波,让一个发光二极管闪烁。
(1)寄存器设置及初值计算 (课内完成)
➢若要产生周期为250ms的方波,只要每125ms将信号的幅 值由0变到1或由1变到0即可,可采用取反指令CPL来实现。 为了提高CPU的效率,可采用定时中断的方式,每125ms 产生一次中断,在中断服务程序中将输出信号取反即可。 ➢定时器T0的中断入口地址为000BH。 125ms 125ms ➢频率是6MHz,机器周期为2uS