📄 main.c
字号:
#include "SPCE061A.h"
#include "CH451LS0811.h"
#define CMD_LENGTH_1302 8
#define RST 0x0400//0x0004//0x4000//0x8000//0x0020//0x0010//0x0008//0x0040//0x0080//
#define IO 0x0200//0x0002//0x2000//0x4000//0x0010//0x0008//0x0004//0x0020//0x0040//
#define CLK 0x0100//0x0001//0x1000//0x2000//0x0008//0x0004//0x0002//0x0010//0x0020//
#define IO_Data *P_IOA_Data
#define IO_Attrib *P_IOA_Attrib
#define IO_Dir *P_IOA_Dir
const int mask_1302[]={
0x0001,0x0002,0x0004,0x0008,
0x0010,0x0020,0x0040,0x0080
};
typedef enum {
YEAR=0,MONTH=1,DATE=2,DAY=3,
HOUR=4,MINUTE=5,SECOND=6,CONTROL=7,RAM0=8
} CLOCK;
int wrt[]={0x008c,0x0088,0x0086,0x008a,
0x0084,0x0082,0x0080,0x008e,0x00c0};//写时的寄存器地址
//
void write(CLOCK c,int data){
int i;
int out;
int t1;
IO_Dir=RST|IO|CLK;
IO_Attrib=RST|IO|CLK;
IO_Data=0x0000;
t1=wrt[c];
for(i=0;i<CMD_LENGTH_1302;i++){
out=RST;
if(mask_1302[i]&t1){
out|=IO;
}
IO_Data=out;
out|=CLK;
IO_Data=out;
}
t1=data;
for(i=0;i<CMD_LENGTH_1302;i++){
out=RST;
if(mask_1302[i]&t1){
out|=IO;
}
IO_Data=out;
out|=CLK;
IO_Data=out;
}
IO_Data=0x0000;
}
//
int read(CLOCK c){
int i;
int out;
int rslt=0;
int tmp;
int t1;
IO_Dir=RST|IO|CLK;
IO_Attrib=RST|IO|CLK;
IO_Data=0x0000;
t1=wrt[c]|0x0001;
for(i=0;i<CMD_LENGTH_1302;i++){
out=RST;
if(mask_1302[i]&t1){
out|=IO;
}
IO_Data=out;
out|=CLK;
IO_Data=out;
}
IO_Dir=RST|CLK;
IO_Attrib=RST|IO|CLK;
for(i=0;i<CMD_LENGTH_1302;i++){
out=RST;
IO_Data=out;
tmp=IO_Data;
if(tmp&IO){
rslt|=mask_1302[i];
}
out=RST|CLK;
IO_Data=out;
}
IO_Data=0x0000;
return rslt;
}
//
int main(){
int t1;
int t2;
init_61_with_A_out();
init_CH451LS();
write(CONTROL,0x00); //enable Write
//write(0x90,0xAA); //TCS=1010b DS=10b Rout=10b
write(YEAR,0x08); //year 2008
write(DAY,0x03); //day 3
write(MONTH,0x06); //month 06
write(DATE,0x14); //date 14
write(HOUR,0x24); //hour 14
write(MINUTE,0x58); //minute 58
write(SECOND,0x00); //seconds 00(and start Clk)
t2=SECOND;
while(1){
//for(t2=YEAR;t2<=CONTROL;t2++){
t1=read(t2);
wrt_digit(1,(t1>>4)&0x07);
wrt_digit(0,t1&0x0f);
*P_Watchdog_Clear=1;
// DELAY
//}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -