给你一个示例参考
//实验平台:TX-1C开发板(板子上是有源蜂鸣器,程序按无源编写的,不影响正常使用)
//K1键调整选择,K2键+,长按连+,K3键-,长按连-,K4键闹钟设置
//定时器初始化程序根据晶振频率选择
//用计数法代替软件延时,提高走时精度
//数码管采用分时动态显示,约2ms显示1位
#include
#define uint unsigned int
#define uchar unsigned char
#define key_S 300 //宏定义短按(约20ms)
#define key_L 6000 //宏定义长按(约2/3s)
#define key_M 3000 //宏定义长按(约1/3s)
sbit K1 = P3^4; //调整选择/退出
sbit K2 = P3^5; //++,长按连+
sbit K3 = P3^6; //--,长按连-
sbit K4 = P3^7; //调整时间
sbit dula=P2^6; //段选
sbit wela=P2^7; //位选
sbit allow=P2^5; //LED使能
sbit Buzzer=P2^3; //蜂鸣器
uchar code table[]={ //0~F数组
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uint Cnt200us; //定义200微秒变量
uchar hour=12,min=0,sec=0; //定义时、分、秒变量
uchar hour4=0,min4=0; //定义闹钟时、分变量
uchar Choice=0,Choice4=0; //调整走时的选择变量、设置闹钟的选择变量
bit Buzzer_sign; //蜂鸣器闹钟标志
bit Twinkle,second=1; //闪烁标志、秒标志
/**************************************
定时器0/1初始化程序 @12.000MHz
**************************************/
/*
void Timer0Init(void)
{
TMOD= 0x22; //设置定时器模式
TL0 = 0x38; //设置定时初值200微秒
TH0 = 0x38; //设置定时重载值200微秒
TL1 = 0x06; //设置定时初值250微秒
TH1 = 0x06; //设置定时初值250微秒
TR0 = 1; //定时器0开始计时
// TR1 = 1; //定时器1开始计时
EA=1; //开总中断
ET0=1; //开定时器1中断
ET1=1; //开定时器1中断
}
*/
/***************************************
定时器0/1初始化程序 @11.0592MHz
***************************************/
void Timer_Init()
{
TMOD = 0x22; //设置自动重载模式
TL0 = 0x48; //设置定时初值200微秒
TH0 = 0x48; //设置定时重载值200微秒
TL1 = 0x1A; //设置定时初值250微秒
TH1 = 0x1A; //设置定时重载值250微秒
TR0 = 1; //定时器0开始计时
// TR1 = 1;