⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fun.h

📁 这是铁路各工区
💻 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 + -