实用标准文案
52 单片机定时器 2 使用 (C 语言程序 )
水寒 8051 1,128 views 0 Comments 发表评论
本文是关于 52 单片机定时器计数器 2 做为普通的 16 位自动重装定时器使
用,类似于定时器计数器 0 和定时器计数器 1 工作在方式 1 下。以下程序在 Keil
2 和 Keil 3 下调时通过,下载在本校的实验板上达到预期效果。 AT89C52 及其
以上、AT89S52 及其以上、 STC89C52 及其以上测试正常运行。
源代码:
view source
print?
00
/***********************************************************
1
00
程序功能: 52 系列单片机定时器计数器 2 使用
2
00
程序设计:燕山大学 鲁信琼
3
00 晶振选择: 24MHz, 如果晶振不匹配,请修改延时函数参数; P2^6 口接数
4 码管段选控制位 ; P2^7 口接数码管位选控制位 ; P1^7 口作为测试指示灯
00
本实验注意事项:
5
精彩文档
实用标准文案
00
1. 定时器 2 的中断使能为 IE^6 位,也就是 ET2; 中断服务程序标号为 5 。
6
2. 定时器 2 工作在 16 为自动重装模式下, 不需要在中断服务程序中重新赋
00
初值,在程序初始化的时候我们应该给 RCAP2L 和 RCAP2H 赋值,TH2 和
7
TL2 将会在中断产生时自动使 TH2=RCAP2H ,TL2=RCAP2L 。
3. 定时器 2 的中断标志位 TF2 不能够由硬件清零,所以要在中断服务程序
00
中将其清零,为了使定时尽量准确,我们常在终端服务程序中第一步就使
8
TF2=0 。
4. 使定时器 2 产生中断的有两个中断源, 如果 EXEN2( 定时器 2 外部使能标
00 志)置 1 的话,使定时器 2 进入中断的有可能是定时器 2 计数溢出,也可能
9 是捕获到 T2EX(单片机 P1^1 口)有负跳变,所以需要在中断服务程序中判断
EXF2 是否为 1。
01
0
01 承接 51 单片机、 PIC 单片机程序、 VB/VC++ 上位机程序、电子产品软硬件
1 设计开发工作
01
2
01
EMail: xqlu(at)ysu.net.cn QQ: 9790335
3
01 ***********************************************************/
精彩文档
实用标准文案
4
01
5
01 #includ
6 e
01
#include
7
01 #define uchar unsigned
8 char
01
#define uint unsigned int
9
02
#define LED_DATA P0
0
02 sbit
1 DULA=P2^6;
02 sbit
2 WELA=P2^7;
02
sbit LED=P1^7;
3
02
uchar timer2_ctr,num;
4
精彩文档