📄 system.h
字号:
/*
+---------------------------------------------------+
| Project: SYSTEM with STC89C5X |
| File: SYSTEM.H |
| Version: V 1.0 |
| Initial Editor: Li Jifeng |
+---------------------------------------------------+
| following environments are supported |
| Processor: STC89C5X |
| Compiler: WAVE V |
| hardware: JF-2008 |
+---------------------------------------------------+
| Copyright (C) JF Ltd, 2008 |
| All Rights reserved |
+---------------------------------------------------+
| 功能简介: the system header file |
+---------------------------------------------------+
*/
#ifndef SYSTEM_HEADER_FILE
#define SYSTEM_HEADER_FILE 1
#include "C:\comp51\Atmel\STC89C5X.H"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <intrins.h>
#include <math.h>
#include <ABSACC.H>
sbit TR = P2^2;
sbit MCLK = P1^2;
sbit SCLK = P1^0;
sbit SDA = P1^1;
sbit I2C_SCK = P2^0; //24c128 6脚
sbit I2C_SDA = P2^1; //24c128 5脚
//sbit ready = P1^2; //=0,读卡器CPU准备好通讯数据等待读取
//sbit dt1 = P1^0; //与读卡器CPU通讯用的数据线
//sbit dt0 = P1^1; //与读卡器CPU通讯用的时钟线
sbit DST_CLK = P3^5; //DS1302 --->7
sbit DST_IO = P3^6; //DS1302 --->6
sbit DST_RST = P3^7; //DS1302 --->5
sbit relay = P2^4;
sbit LED = P4^2; //LED
typedef unsigned char UINT8; //无符号8位
typedef unsigned int UINT16; //无符号16位
typedef unsigned long ULONG32; //无符号32位
typedef bit bool; //位
typedef union //定义2字节共用体
{
UINT8 whole[16];
struct
{
UINT8 card[5];
UINT8 ID[4];
UINT8 password[2];
UINT8 time_limit[4];
UINT8 purview;
}class;
}user;
typedef union
{
UINT8 whole[2];
UINT8 holiday[2];
}festa;
extern idata UINT8 sys_second; //系统时间 秒
extern idata UINT8 sys_min; //系统时间 分
extern idata UINT8 sys_hour; //系统时间 时
extern idata UINT8 sys_date; //系统时间 日
extern idata UINT8 sys_mon; //系统时间 月
extern idata UINT8 sys_week; //系统时间 星期
extern idata UINT8 sys_year; //系统时间 年
/*typedef union ll_buf //定义4字节共用体
{
UBYTE8 buf[4];
ULONG32 whole;
}ll_buf;
typedef union yy_buf //定义2字节共用体
{
UBYTE8 buf[2];
UWORD16 whole;
}yy_buf;
union TIMER_COUNTER
{
UWORD16 HWORD;
struct
{
UBYTE8 HI;
UBYTE8 LO;
}BYTES;
};
typedef union
{
unsigned int wd;
struct
{
UBYTE8 bh;
UBYTE8 bl;
}bytes;
}WordType;
typedef union
{
ULONG32 lwd;
struct
{
WordType wd1;
WordType wd0;
}words;
}Longtype;
typedef union
{
UWORD16 SPWM_DATA;
struct
{
UBYTE8 SP_addr; //地址
UBYTE8 SP_data; //数据
}SPWM_DATA_ADDR;
}Control_word;*/
//#define ENABLE 1 //使能为1
//#define DISABLE 0 //反之为0
//#define SET 1 //设置为1
//#define CLEAR 0 //清除为0
//#define TRUE 1 //真为1
//#define FALSE 0 //假为0
#define BOTTOM 0
#define MAXLEN 0x1FF
#define FOSC 11059200 //晶振11.0592M
/*定时器0*/
/* 工作方式0,13位定时器,晶振11.0592M,最大定时时间8.88mS
#define TMOD_VALUE0 0x00 //GATE=0,C/T=0,M1=0,M0=0;
#define T0_TIME 5 //定时时间5mS
#define T0_VALUE (0x2000-(FOSC/12 * T0_TIME/1000)) //定时计算器0基数
#define TH0_VALUE ((T0_VALUE>>5)&0x00FF) //右移五位,将T0_VALUE高八位给TH0_VALUE
#define TL0_VALUE ((T0_VALUE<<3)&0x00FF) //左移三位,将T0_VALUE低五位给TL0_VALUE*/
/* 工作方式1,16位定时器,晶振11.0592M,最大定时时间71.11mS */
#define TMOD_VALUE0 0x01 //GATE=0,C/T=0,M1=0,M0=1;
#define T0_TIME 50 //定时时间50mS
#define T0_VALUE (0x10000-(FOSC/12 * T0_TIME/1000)) //定时计算器0基数
#define TH0_VALUE ((T0_VALUE>>8)&0x00FF) //右移八位,将T0_VALUE高八位给TH0_VALUE
#define TL0_VALUE (T0_VALUE&0x00FF) //将T0_VALUE低八位给TL0_VALUE
/* 工作方式2,8位自动重装定时器,晶振11.0592M,最大定时时间276uS
#define TMOD_VALUE0 0x02 //GATE=0,C/T=0,M1=1,M0=0;
#define T0_TIME 250 //定时时间250uS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -