📄 test.c
字号:
/*********************************************************************************************/
/* SED1520 */
/*********************************************************************************************/
#include <reg52.h>
/*===========================================================================================*/
#define uchar unsigned char
#define uint unsigned int
/*-------------------------------------------------------------------------------------------*/
#define ctc0_tl 0xf8
#define ctc0_th 0x4b
#define ctc1_th 0xfa
/*===========================================================================================*/
sbit lamp=P3^5; //signal lamp
/*===========================================================================================*/
uchar status=0;
uchar count=0;
uchar idata date[6];
extern void reset_ds1302(void);
extern void read_ds1302(uchar *);
extern void write_ds1302(uchar *);
/*********************************************************************************************/
void send_data(uchar type) //send data to GSM
{
TI=0;
SBUF=type;
do
{}
while (TI==0);
TI=0;
}
/*========================================================================================================*/
void send_string(uchar *address) //send string to GSM
{
while ((*address>=0x0a)&&(*address<0x80))
{
send_data(*address);
address++;
}
send_data('\r');
send_data('\n');
}
/*========================================================================================================*/
void ctc0() interrupt 1 using 1 //50mS/loop(verified)
{
TR0=0;
TL0=ctc0_tl;
TH0=ctc0_th;
TR0=1;
/*==============================================================================*/
count++;
}
/*===========================================================================================*/
void cut_reset() //all interrupt reset
{
EA=0;
TMOD=0X21; //ctc1 is 9600bps,ctc0 is mod1(16bits)
TL0=ctc0_tl;
TH0=ctc0_th; //ctc0 start value(50mS)
TH1=ctc1_th; //9600bps(11.0592MHz)
TCON=0x50; //ctc0 and ctc1 start work,int0 is edge trigger
SCON=0x50; //UART is 8bits(mod1),receive allow.
PCON=0x80; //SMOD=1
ET0=1; //open ctc0 interrupt
EA=1; //open all interrupt
}
/*********************************************************************************************/
main()
{
uchar idata sum[20]="2000.12.18 21:16:37\0";
status=0;
reset_ds1302();
cut_reset();
date[0]=26;date[1]=59;date[2]=23;date[3]=31;date[4]=12;date[5]=9; //2009.12.31 23:59:26
write_ds1302(date);
/*========================================================================================*/
while(1)
{ uint ii;
if (count>=20)
{
read_ds1302(date);
sum[17]=date[0]/10+0x30;sum[18]=date[0]%10+0x30; //second
sum[14]=date[1]/10+0x30;sum[15]=date[1]%10+0x30; //minute
sum[11]=date[2]/10+0x30;sum[12]=date[2]%10+0x30; //hour
sum[8]=date[3]/10+0x30;sum[9]=date[3]%10+0x30; //day
sum[5]=date[4]/10+0x30;sum[6]=date[4]%10+0x30; //month
ii= date[5]+2000;
sum[0]=ii/1000+0x30;ii%=1000;
sum[1]=ii/100+0x30;ii%=100;
sum[2]=ii/10+0x30;ii%=10;
sum[3]=ii+0x30;
send_string(sum);
count=0;
lamp=~lamp;
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
}
}
/*********************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -