52单片机定时器2使用C语言程序

52单片机定时器2使用C语言程序
52单片机定时器2使用C语言程序

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?

***************************************************** ****

002程序功能:52系列单片机定时器计数器2使用

003程序设计:燕山大学鲁信琼

晶振选择:24MHz,如果晶振不匹配,请修改延时函数参数;P2A6 口接数

004

码管段选控制位;P2A7 口接数码管位选控制位;P1A7 口作为测试指示灯

005本实验注意事项:

006 1.定时器2的中断使能为归八6位,也就是ET2;中断服务程序标号为5。

2. 定时器2工作在16为自动重装模式下,不需要在中断服务程序中重新赋

007初值,在程序初始化的时候我们应该给RCAP2L和RCAP2H赋值,TH2和

TL2将会在中断产生时自动使TH2=RCAP2H ,TL2=RCAP2L。

3. 定时器2的中断标志位TF2不能够由硬件清零,所以要在中断服务程序

008中将其清零,为了使定时尽量准确,我们常在终端服务程序中第一步就使TF2=0。

4. 使定时器2产生中断的有两个中断源,如果EXEN2(定时器2外部使能

标志)置1的话,使定时器2进入中断的有可能是定时器2计数溢出,也可009

能是捕获到T2EX(单片机P1A1 口)有负跳变,所以需要在中断服务程序中判断EXF2是否为1。

010

承接51单片机、PIC单片机程序、VB/VC++上位机程序、电子产品软硬件

011

设计开发工作

012

013 EMail: xqlu(at)ysu. net.c n QQ: 9790335

014 ***********************************************************/

015

016 #i nclude

017 #i nclude

018 #defi ne uchar un sig ned char

019 #defi ne uint un sig ned int

020 #defi ne LED_DATA P0

021 sbit DULA=P2A6;

022 sbit WELA=P2A7;

023 sbit LED=PM7;

024 uchar timer2_ctr, num;

uchar code table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 025 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x40, 0};

026

027 〃24MHz 晶振延时x毫秒函数

028 void delay_ms(ui nt xms)

029 {

030 uint x,y;

031 for(x=xms; x>0; x--)

032 for(y=248; y>0; y--);

}

033

034

035 //初始化主函数

036 void ini t_mai n()

037 {

038 DULA=0; //关闭数码管显示

039 WELA=0;

040

041 RCAP2H=(0xFFFF-50000)/256;

RCAP2L=(0xFFFF-50000)%256; 〃24MHz 晶振下定时25ms ,自动重042

043 TH2=RCAP2H;

044 TL2=RCAP2L; //定时器2赋初值

T2CON=0; //配置定时器2控制寄存器,这里其实不用配置, 045

T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置

T2MOD=0; //配置定时器2工作模式寄存器,这里其实不用配046

置,T2MOD上电默认就是0,这里赋值只是为了演示这个寄存器的配置

IE=0xA0; //1010 0000 开总中断,开外定时器2中断,可按位047

操作:EA=1; ET2=1;

048 TR2=1; //启动定时器2

}

049

050

051 //数码管显示3位数:0-255

052 void display(uchar num)

053 {

054 uchar gw,sw,bw;

相关文档
最新文档