深圳市华胄科技有限公司 >> MCU专题 >> 8051单片机


51单片机基础实验----定时器/计数器实验



提交者 阳光总在风雨后  在  2008-7-15 15:25:27 

上一篇 下一篇
实验内容及步骤


实验之前,我们先来复习下定时/计数器的相关知识。
1.定时器控制寄存器(TCON)


位地址 8F 8E 8D 8C 8B 8A 89 88
位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
TCON寄存器既参与中断控制又参与定时控制。


·IE0(IE1)—— 外中断请求标志位


当CPU采样到 -(P3.2)和 (P3.3)端出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。


·IT0(IT1)—— 外中断请求信号方式控制位


IT0(IT1)=1 脉冲方式(后沿负跳有效)


IT0(IT1)=0 电平方式(低电平有效)


·TF0(TF1)—— 计数溢出标志位


当计数器计数溢出(记满)时,该位置为1。使用查询方式时,此位作状态位供查询、但应注意查询有效后应以软件方法及时将该位清0;使用中断方式时,此位作中断标志位,在转向中断服务程序时由硬件启动清0。


TR0(TR1)—— 定时器运行控制位。


TR0(TR1)=0 停止定时器/计数器工作。


TR0(TR1)=1 启动定时器/计数器工作。


该位根据需要以软件方法使其置1或清0。


2.工作方式控制寄存器(TMOD)


TMOD寄存器是一个专用寄存器,用于控制两个定时器/计数器的工作方式。但TMOD寄存器不能位寻址,只能用字节传送指令设置内容。各位定义如下:


位序 B7 B6 B5 B4 B3 B2 B1 B0
位符号 GATE C/ M1 M0 GATE C/ M1 M0


从寄存器的位格式中可以看出,它的低半字节定义定时器/计数器0,高半字节定义定时器/计数器1,其中


·GATE——门控位


GATE=0 以运行控制位TP0(TP1)启动定时器。


GATE=1 以外中断请求信号(INT1或INT0)启动定时器


·C/ =0 定时工作方式


C/ =1 计数工作方式


·M1M0——工作方式选择位


M1M0=00 方式0:是13位计数结构的工作方式,其计数器由TH全部8位和TL的低5位构成。


M1M0=01 方式1:是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。


M1M0=10 方式2:自动装入8位计数器。


M1M0=11 方式3:定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以计数使用,又可以定时使用,定时器/计数器0的各控制位和引脚信号全归它使用。


3.中断允许寄存器(IE)

IE寄存器的详细内容见中断系统实验。


程序1:通过定时器1来定时产生中断控制P1.0线上的脉冲输出,并经三极管驱动扬声器,发出音调信号。


实验原理图





图1


实验源程序一:


ORG OOOOH


LJMP MAIN


ORG OO1BH ;中断入口地址


CPL P1.0 ;取反


RETI


ORG 1000H


MAIN:MOV R1,#00 ;清0


MOV R0,#23H ;置R0初值


MOV TMOD,#20H ;定时器1工作方式2


MOV IE,#88H ;定时器1允许中断


L1:MOV DPTR,#3FFFH ;


MOV A,R0 ;取数


INC RO ;修改地址指针


MOVC A,@A+PC ;查表


JZ MAIN ;


MOV R1,A


MOV A ,#0FFH


CLR C ;计算计数初值


SUBB A,R1


RL A


MOV TH1,A ;置计数初值


SETB TR1 ;开始定时


L2: CLR C ;C清0


MOV A,DPL


SUBB A,#O1


MOV DPL,A


MOV A,DPH ;延时


SUBB A,#00


MOV DPH,A


ORL A,DPL


JNZ L2


CLR TR1


SJMP L1


END


输入以上程序后,使用E命令,从1031单元开始输入以下一组定时器的时间常数,该常数可产生歌曲“送别”的曲调。


33 33 3D 33 26 26 26 26 2D 2D 26 2D 33 33 33 33 33 33 4D 45 4D 45 45 45 45 45 45 45 45 33 33 3D 33 26 26 26 28 2D 2D 26 26 33 33 33 33 45 3D 39 39 39 52 4D 4D 4D 4D 4D 4D 4D 4D 2D 2D 26 26 26 26 26 26 28 28 2D 28 26 26 26 26 2D 28 26 2D 2D 33 3D 4D 45 45 45 45 45 45 45 45 33 33 3D 33 26 26 26 28 2D 2D 26 2D 33 33 33 33 33 33 45 3D 39 39 39 52 4D 4D 4D 4D 4D 4D 4D 4D 00 00


实验源程序二:


将定时器/计数器1设为计数器,计数容量为10,计数后产生中断,中断服务产生一个方波由P1.1输出(计数脉冲从T1输入)。





图2


实验程序如下:


ORG OOOOH


LJMP MAIN


ORG OO1BH


L1: CPL P1.1


SJMP L1


ORG 1000H


MAIN: MOV TL1,#0F6H


MOV TH1,#0FFH


MOV TMOD,#50H


MOV TCON,#40H


MOV IE,#88H


L2: SJMP L2


END
如果有条件的朋友,可以运行程序,用示波器观察P1.1线,当按开关K十次后,示波器上应能看到有脉冲信号输出。




单片机教程,五系列(55讲)电子书全集下载

论坛精选:
单片机教程,MCS51单片机从零开始 第一讲:初识单片机
http://bbs.huazhoucn.com/Topic.aspx?id=2539
单片机教程,MCS51单片机从零开始 第二讲:MCS-51单片机简述
http://bbs.huazhoucn.com/Topic.aspx?id=2540
单片机教程,MCS51单片机从零开始 第三讲:单片机相关常用名词解释
http://bbs.huazhoucn.com/Topic.aspx?id=2541
单片机教程,MCS51单片机从零开始 第四讲:计算机中数的表示及运算
http://bbs.huazhoucn.com/Topic.aspx?id=2542
单片机教程,MCS51单片机从零开始 第五讲:常用逻辑电路
http://bbs.huazhoucn.com/Topic.aspx?id=2544
单片机教程,MCS51单片机从零开始 第六讲:51单片机的结构及其组成
http://bbs.huazhoucn.com/Topic.aspx?id=2545
单片机教程,MCS51单片机从零开始 第七讲:51单片机的引脚
http://bbs.huazhoucn.com/Topic.aspx?id=2546
单片机教程,MCS51单片机从零开始 第八讲:8051单片机I/O引脚工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2547
单片机教程,MCS51单片机从零开始 第九讲:8051单片机的存储器结构
http://bbs.huazhoucn.com/Topic.aspx?id=2548
单片机教程,MCS51单片机从零开始 第十讲:编码及译码器工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2549
单片机教程,MCS51单片机从零开始 第十一讲:存储器的存储原理
http://bbs.huazhoucn.com/Topic.aspx?id=2550
单片机教程,MCS51单片机从零开始 第十二讲:51单片机的特殊功能寄存器
http://bbs.huazhoucn.com/Topic.aspx?id=2551
单片机教程,MCS51单片机从零开始 第十三讲:51单片机CPU的内部结构
http://bbs.huazhoucn.com/Topic.aspx?id=2552
单片机教程,MCS51单片机从零开始 第十四讲:定时器/计数器的基本结构及工作原理
http://bbs.huazhoucn.com/Topic.aspx?id=2553
单片机教程,MCS51单片机从零开始 第十五讲:51单片机的中断系统
http://bbs.huazhoucn.com/Topic.aspx?id=2554
单片机教程,MCS51单片机从零开始 第十六讲:51单片机的复位
http://bbs.huazhoucn.com/Topic.aspx?id=2555
单片机教程,MCS51单片机从零开始 第十七讲:51单片机执行指令的过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第十八讲:51单片机的延时及时序分析
http://bbs.huazhoucn.com/Topic.aspx?id=2557
单片机教程,MCS51单片机从零开始 第十九讲:汇编语言基础
http://bbs.huazhoucn.com/Topic.aspx?id=2558
单片机教程,MCS51单片机从零开始 第二十讲:汇编语言及汇编过程
http://bbs.huazhoucn.com/Topic.aspx?id=2556
单片机教程,MCS51单片机从零开始 第二十一讲:汇编程序的基本结构
http://bbs.huazhoucn.com/Topic.aspx?id=2560
单片机教程,MCS51单片机从零开始 第二十二讲:51单片机的寻址方式
http://bbs.huazhoucn.com/Topic.aspx?id=2561
单片机教程,MCS51单片机从零开始 第二十三讲:数据传送类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2562
单片机教程,MCS51单片机从零开始 第二十四讲:算术运算类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2563
单片机教程,MCS51单片机从零开始 第二十五讲:逻辑运算及移位指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2564
单片机教程,MCS51单片机从零开始 第二十六讲:控制转移类指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2565
单片机教程,MCS51单片机从零开始 第二十七讲:布尔变量操作指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2566
单片机教程,MCS51单片机从零开始 第二十八讲:伪指令分析
http://bbs.huazhoucn.com/Topic.aspx?id=2567

1 楼  提交者:阳光总在风雨后 在 2008-7-15 15:32:16
欢迎大家 浏览
2 楼  提交者:阳光总在风雨后 在 2008-7-15 15:39:28

3 楼  提交者:Guest 在 2008-7-17 16:39:22
老古开发网论坛
4 楼  提交者:Guest 在 2008-7-17 17:03:04
呵呵``还要回复啊`
5 楼  提交者:Guest 在 2008-7-18 11:22:04
我顶 我顶顶
6 楼  提交者:Guest 在 2008-7-18 21:41:55
晕死!!
7 楼  提交者:Guest 在 2008-7-19 11:10:11
太有才了
谢谢
8 楼  提交者:Guest 在 2008-7-19 15:28:01
牛B
9 楼  提交者:Guest 在 2008-7-19 17:45:52
weqrewwwwwwwwwwwwwwwwww
10 楼  提交者:月华星光 在 2008-7-20 10:55:44

11 楼  提交者:Guest 在 2008-7-21 10:51:32
niu x
12 楼  提交者:Guest 在 2008-7-22 9:46:12
ai
13 楼  提交者:Guest 在 2008-7-24 0:39:57
14 楼  提交者:Guest 在 2008-7-28 13:28:23
haihao
15 楼  提交者:Guest 在 2008-7-29 23:02:08
kkkkkkkkkk
16 楼  提交者:金麟 在 2008-7-30 17:00:47
wo yao kan
17 楼  提交者:十一 在 2008-7-30 22:39:30
18 楼  提交者:Guest 在 2008-7-31 8:57:10
dfg gerge
19 楼  提交者:Guest 在 2008-7-31 16:07:02
kk
20 楼  提交者:Guest 在 2008-8-1 9:58:42
oooooooo
21 楼  提交者:Guest 在 2008-8-25 16:18:32
呵呵
22 楼  提交者:dza00789 在 2008-8-29 0:51:37
kkkkkkkkk
23 楼  提交者:Guest 在 2008-9-8 16:23:50
hao
24 楼  提交者:Guest 在 2008-9-8 19:11:28
顶一下
25 楼  提交者:Guest 在 2008-9-11 12:21:06
大时代
26 楼  提交者:阿甘 在 2008-9-12 22:52:38
27 楼  提交者:Guest 在 2008-9-13 11:55:30
hO 
28 楼  提交者:Guest 在 2008-9-18 17:15:45
默默
29 楼  提交者:大学生 在 2008-9-25 12:13:13
H
30 楼  提交者:Guest 在 2008-11-5 22:16:10
真好
上一篇 下一篇
当前第〖1〗页 共有3页 转到第 1 2 3