实验内容及步骤
实验之前,我们先来复习下定时/计数器的相关知识。
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