📄 timer.c
字号:
#include "reg58.h"
#define _TIMER_C_
#include "timer.h"
#include "clock.h"
#include "setup.h"
#include "sram.h"
unsigned char data timerl,timerh,timeruh;
unsigned char data datetime[8],seconds;
bit secondsflag;
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
void init_timer()
{
unsigned char tempdata;
TMOD=0X22; //timer0:8bits reload ,timer1:8bits reload
TCON=0X50; //start timer0 and timer1
TH0=31;
//SCON=0X70; //seted in rxd.c //10bits asynchronous variable
//SCON1=0X70; //seted in rxd.c //10bits asynchronous variable
T2CON=0X34; //serial port 0 using timer2 as timebase
T2MOD=0;
SMOD1=1;
RCAP2H=0XFF;
RCAP2L=0XB8; //set uart0 baudrate 9600
tempdata=readbaudrate();
TH1=baudratetimer[tempdata]; //set baudrate of uart1
getdatetime();
IE=0X52; //enable uart1,uart0,timer0
PCON=0X80;
//IE=0X12;
EA=1;
}
void timer0() interrupt 1 using 1
{
timerl++;
if(!timerl)
{
timerh++;
if(!(timerh&0x1f))
{
secondsflag=1;
seconds++;
}
if(!timerh)
{
timeruh++;
}
}
}
void timer1() interrupt 3 using 1
{
}
void timer2() interrupt 5 using 1
{
}
void delayTimerl(unsigned char delaytime)
{
unsigned char temptimer;
temptimer=timerl;
while((timerl-temptimer)<delaytime);
}
void delaytimerh(unsigned char delaytime)
{
unsigned char temptimer;
temptimer=timerh;
while((timerh-temptimer)<delaytime);
}
void delay50us()
{
unsigned char i=100;
for(;i;i--);
}
void delay500ms()
{
unsigned char i,j;
for(i=0;i<100;i++)
{
for(j=0;j<100;j++)
{
delay50us();
}
}
}
/*void delaytimeruh(unsigned char delaytime)
{
unsigned char temptimer;
temptimer=timeruh;
while((timeruh-temptimer)<delaytime);
}*/
//void delay(unsigned char delaytime)
//{
// unsigned char temptimer;
//
// temptimer=timerl;
// while((timerl-temptimer)<delaytime);
//
//}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -