📄 main.c
字号:
#include "f2407_c.h"
#include "user.h"
#include "I2C.c"
#include "eeprom.c"
interrupt void phantom(void)
{ return;
}
MainInit()
{
asm(" SETC INTM");
asm(" CLRC OVM");
asm(" CLRC CNF");
*SCSR1=0x81FF; /* 对系统时钟进行4倍频 */
//关看门狗
*WDCR=0xE8;
*IFR=0xFFFF; /* 清中断标志 */
*IMR=0x0; /* 使能中断INT5,INT4,INT3,INT2 */
WSGR=0x0FFF1;/*不使能所有的等待状态*/
}
I2C_init()
{ year_base=0x2004; //PCF8583的年份时基
*MCRC=*MCRC&0x03FF; //IOPF2:SCL;IOPF3:SDA;IOPF5:SCL;IOPF6:SDA;IOPF4:WP
*PFDATDIR=*PFDATDIR|0xFCFC; //SCL=SDA=1;IOPF2,IOPF3,IOPF4,IOPF5,IOPF6:OUTPUT;
}
main()
{ unsigned int k,data1,i;
MainInit(); /*调主程序初始化子程序*/
I2C_init();
// 写日历时钟程序
chtime[0]=0x2004; //2004年
chtime[1]=0x0106; //01月06日
chtime[2]=0x0220; //星期2 22点
chtime[3]=0x3450; //34分50秒
time_write();
/*k=byte_wr(0x21,0x0);
data1=byte_rd(0x21);
k=byte_wr(0x09,0x09);
data1=byte_rd(0x09);
k=byte_wr(0x6,0x89);
data1=byte_rd(0x6);
k=byte_wr(0x12,0x36);
data1=byte_rd(0x12);
k=byte_wr(0x26,0x20);
data1=byte_rd(0x26);*/
// 读日历时钟 //读出的参数放在time[5]数组中
time_read();
//eeprom
k=prom_byte_wr(0x21,0x3);
delay(580*10);
data1=prom_byte_rd(0x21);
delay(580);
k=prom_wr(0x30,source,6);
delay(580*10); //must add delay(580*3)between prom_wr and prom_rd!!!!!!!!
k=prom_rd(0x30,result,6);
i=1;
while(1)
{
time_read();
asm(" nop");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -