📄 fun.h
字号:
#include "reg52.h"
#ifndef _FUN_H_
#define _FUN_H_
typedef unsigned char uchar;
typedef unsigned int uint;
typedef unsigned long ulong;
#define FALSE 0
#define TRUE ~FALSE
#define nop _nop_()
/*****************24WCXX.C***********************/
#define I2C_24WCXX_WR 0xA0 /*定义24WC02的器件地址SLA和方向位W*/
#define I2C_24WCXX_RD 0xA1 /*定义24WC02的器件地址SLA和方向位R*/
/******************SD2300API.C*******************/
#define I2C_SD2300API_WR 0x64 /*定义SD2300API的器件地址SLA和方向位W*/
#define I2C_SD2300API_RD 0x65 /*定义SD2300API的器件地址SLA和方向位R*/
#define ADJUST 0x00
#define MINUTE_A 0x00 //ALARM-A
#define HOUR_A 0x18 //18点00分
#define WEEK_A 0x7F //每天
#define MINUTE_B 0x00
#define HOUR_B 0x18
#define WEEK_B 0x7F
//AALE=1,ALARM-A使能;BALE=0,ALARM-B禁止;
//SL2,SL1=00,ALARM-A,ALARM-B,周期中断从INTRA输出
//TEST=0,正常工作模式
//CT2,CT1,CT0=100,电平模式,每秒周期中断
#define CONTROL1 0x04
//12_/24=1,24小时制
//ADJ(XSTP)=0,正常工作
//CLEN_=1,禁止32KHZ脉冲输出
//CTFG,AAFG,BAFG=000,分别为周期中断,ALARM-A,ALARM-B中断标志位,写0终止中断
#define CONTROL2 0x28
#define ADDR_SECOND 0x00
#define ADDR_MINUTE 0x10
#define ADDR_HOUR 0x20
#define ADDR_WEEK 0x30
#define ADDR_DAY 0x40
#define ADDR_MONTH 0x50
#define ADDR_YEAR 0x60
#define ADDR_ADJUST 0x70
#define ADDR_MINUTE_A 0x80
#define ADDR_HOUR_A 0x90
#define ADDR_WEEK_A 0xA0
#define ADDR_MINUTE_B 0xB0
#define ADDR_HOUR_B 0xC0
#define ADDR_WEEK_B 0xD0
#define ADDR_CONTROL1 0xe0
#define ADDR_CONTROL2 0xf0
/******************BC728X.C*******************/
#define A_ModReg 0x12 //工作模式控制寄存器
#define D_ModReg 0x88 //SCN=1,扫描使能 MOD=0,164模式
#define A_BCDReg 0x14 //BCD译码寄存器
#define A_HEXReg 0x15 //HEX译码寄存器
#define A_Seg1Reg 0x16 //光柱一译码寄存器
#define A_Seg2Reg 0x17 //光柱二译码寄存器
#define D_SegBright 0x40 //全亮
#define D_SegDark 0x00 //全灭
#define A_DPReg 0x18 //段寻址寄存器
#define I2C_BC728X_WR 0xA0 /*定义BC728X的器件地址SLA和方向位W*/
#define I2C_BC728X_RD 0xA1 /*定义BC728X的器件地址SLA和方向位R*/
/*************KEY.C*****************/
#define KEY_ID1 0X04AA
#define KEY_ID2 0X052A
#define KEY_1 0XAAAD
#define KEY_2 0XAAB3
#define KEY_3 0XAAB5
#define KEY_4 0XAACB
#define KEY_5 0XAACD
#define KEY_6 0XAAD3
#define KEY_7 0XAAD5
#define KEY_8 0XAB2B
#define KEY_9 0XAB2D
#define KEY_0 0XAAAB
#define KEY_POINT 0XAB33
#define KEY_SPACE 0XAD53
#define KEY_UP 0XACAB
#define KEY_DOWN 0XACAD
#define KEY_B1 0XB32D
#define KEY_B2 0XAB53
#define KEY_ADJUST 0XAB55
#define KEY_FUNCTION 0XB2D3
#define UP 1
#define DOWN 2
#define RIGHT 3
#define LEFT 4
/*******************************/
void delay(uint i);
void kmg(void);
void timejudge(void);
void datejudge(void);
void yesterday(struct binary *p);
void nextday(uchar);
void nextdays(uchar);
void bcd1_binary_time(void);
void binary_bcd1_time(void);
void binary_bcd2_time(void);
void bcd2_binary_time(void);
void binary_bcd(void);
void bcd_binary(void);
//void init_int0(void);
void init_t0(void);
void init_t1(void);
void disp1(uchar hp);
void disp2(uchar hp);
void disptime(void);
void dispall(void);
void dispone(uchar hp,uchar lp,uchar value);
void dispstop(uchar hp,uchar lp);
void dispflicker(uchar hp,uchar lp);
void keychange(void);
void keyin(void);
void keyout(void);
void keynum(uchar value);
void keydirection(uchar value);
void key(void);
void send_byte(uchar out_byte);
uchar receive_byte(void);
void init_bc728x(void);
void wr_bc728x(uchar reg_add,uchar reg_data);
uchar rd_bc728x(uchar reg_add);
bit init_sd2300api(void);
bit rd_date(void);
bit wr_date(void);
//uchar rd_control2(void);
uchar wr_control2(void);
bit wr_24wcxx(uchar address);
bit rd_24wcxx(uchar address);
/********************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -