📄 chen.c
字号:
#include "chen.h"
#include "1602.c"
#include "PCF8563.C"
//------------------------------------------------------------------------------
void init(void) //单片机初始化程序
{
unsigned int i=0;
WDTCTL=WDTPW+WDTHOLD; //停止看门狗
BCSCTL1=0x14; //启动TX2,LFXT1工作在低频模式,ACLK为2分频
do
{
IFG1&=~OFIFG;
for (i=18000;i>0;i--);
}
while ((IFG1&OFIFG)); //延时一段时间让XT2稳定
BCSCTL2=0x88;//设置SMCLK和MCLK无分频,时钟源都是XT2
P1DIR=0xff; //设置为输出太
P1OUT=0x00;
P1SEL=0x00;
P2DIR=0x70;
P2OUT=0x00;
P2SEL=0x00;
P3DIR=0x04;
P3OUT=0;
P3SEL=0x00;
P4DIR=0x00;
P4OUT=0;
P4SEL=0x00;
P5DIR=0xe0;
P5OUT=0;
P5SEL=0x00;
P6DIR=0x00;
P6OUT=0x00;
P6SEL=0x00;
_BIS_SR(SCG0); //关闭DCO振荡器
_EINT(); //使能总中断
LVC_DIR=0; //默认为0
}
//------------------------------------------------------------------------------
void delay_s(unsigned char aa) //S延时程序
{
unsigned int bb=0;
unsigned char cc=0;
while(aa--)
{
bb=1000; //延时1S
while(bb--)
{
cc=180;
while(cc--); //1ms
}
}
}
//------------------------------------------------------------------------------
void delay_ms(unsigned char aa) //MS延时程序
{
unsigned char cc=0;
while(aa--)
{
cc=180;
while(cc--); //1ms
}
}
//------------------------------------------------------------------------------
void delay_us(unsigned char aa) //US延时程序
{
while(aa--)
{
_NOP(); //延时1US
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
_NOP();
}
}
//------------------------------------------------------------------------------
void shizhuanasc(void) //把提取的时间显示出来
{
unsigned char cc=0;
unsigned char bb=0;
unsigned char dd=0;
unsigned char ee=0,ff=0;
for(bb=0;bb<4;bb++) //显示日期
{
dd=bb*3;
cc=rdata[bb]>>4;
cc=cc+0x30;
display_char(0,dd+2,cc);
cc=rdata[bb]&0x0f;
cc=cc+0x30;
display_char(0,dd+3,cc);
if(bb!=3)
display_char(0,dd+4,'-');
}
for(bb=4;bb<7;bb++)//显示时间
{
ff=ee*3;
cc=rdata[bb]>>4;
cc=cc+0x30;
display_char(1,ff+3,cc);
cc=rdata[bb]&0x0f;
cc=cc+0x30;
display_char(1,ff+4,cc);
if(bb!=6)
display_char(1,ff+5,'-');
ee++;
}
}
//------------------------------------------------------------------------------
void main(void)
{
init();
lcd_reset(); //1602初始化
while(1)
{
delay_ms(200);
GetPCF8563();
shizhuanasc();
if((P4IN_bit.P4IN_1==0)&&(biao1==0))
{
c8563t_init(); //时钟芯片初始化
biao1=1;
}
if(P4IN_bit.P4IN_1==1) biao1=0;
}
}
//------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -