📄 system.h
字号:
/*
+---------------------------------------------------+
| Project: SYSTEM with STC12CX052 |
| File: SYSTEM.H |
| Data: 2008-12-08 |
| Version: V 1.0 |
| Initial Editor: Li Jifeng |
+---------------------------------------------------+
| following environments are supported |
| Processor: STC12CX052 |
| 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\STC12CX052.H"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <intrins.h>
#include <math.h>
#include <ABSACC.H>
sbit CFE = P1^7; //u2270芯片工作使能端
sbit DIN = P1^6; //读卡器数据输出脚
sbit LED = P1^5; //接收到一个刷卡信号以后输出指示
sbit MCLK = P3^7; //输出=0,通知主CPU准备发送韦根数据
sbit SDA = P1^0; //时钟
sbit SCLK = P1^1; //数据
//sbit Ready = P3^7; //输出=0,通知主CPU准备发送韦根数据
//sbit SCLK = P1^0; //时钟
//sbit DT1 = P1^1; //数据
//sbit CFE = P3^7; //u2270芯片工作使能端
//sbit DIN = P1^0; //读卡器数据输出脚
//sbit LED = P1^1; //接收到一个刷卡信号以后输出指示
//sbit Ready = P3^3; //输出=0,通知主CPU准备发送韦根数据
//sbit SCLK = P3^4; //时钟
//sbit DT1 = P3^5; //数据
typedef unsigned char UINT8; //无符号8位
typedef unsigned int UINT16; //无符号16位
typedef unsigned long ULONG32; //无符号32位
typedef bit bool; //位
/*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 FOSC 12000000 //晶振11.0592M
/*定时器0,12T模式,T0x12=0,AUXR &= 0x7F;*/
/* 工作方式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
#define T0_VALUE (0x100-(FOSC/1200 * T0_TIME/10000)) //定时计算器0基数
#define TH0_VALUE (T0_VALUE&0x00FF) //将T0_VALUE给TH0_VALUE
#define TL0_VALUE (T0_VALUE&0x00FF) //将T0_VALUE给TL0_VALUE */
/* 工作方式3,8位定时器,晶振11.0592M,最大定时时间276uS
#define TMOD_VALUE0 0x03 //GATE=0,C/T=0,M1=1,M0=1;
#define T0_TIME0 250 //定时时间250uS
#define T0_VALUE0 (0x100-(FOSC/1200 * T0_TIME0/10000))//定时计算器0基数
#define TL0_VALUE (T0_VALUE0&0x00FF) //将T0_VALUE给TL0_VALUE
#define T0_TIME1 250 //定时时间250us
#define T0_VALUE1 (0x100-(FOSC/1200 * T0_TIME1/10000))//定时计算器0基数
#define TH0_VALUE (T0_VALUE1&0x00FF) //将T0_VALUE给TH0_VALUE */
/*定时器0,1T模式,T0x12=1,AUXR |= T0x12;*/
/* 工作方式0,13位定时器,晶振11.0592M,最大定时时间740.74uS
#define TMOD_VALUE0 0x00 //GATE=0,C/T=0,M1=0,M0=0;
#define T0_TIME 500 //定时时间500uS
#define T0_VALUE (0x2000-(FOSC/100 * T0_TIME/10000)) //定时计算器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,最大定时时间5.92mS
#define TMOD_VALUE0 0x01 //GATE=0,C/T=0,M1=0,M0=1;
#define T0_TIME 5 //定时时间5mS
#define T0_VALUE (0x10000-(FOSC * 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,最大定时时间23uS
#define TMOD_VALUE0 0x02 //GATE=0,C/T=0,M1=1,M0=0;
#define T0_TIME 20 //定时时间20uS
#define T0_VALUE (0x100-(FOSC/100 * T0_TIME/10000)) //定时计算器0基数
#define TH0_VALUE (T0_VALUE&0x00FF) //将T0_VALUE给TH0_VALUE
#define TL0_VALUE (T0_VALUE&0x00FF) //将T0_VALUE给TL0_VALUE */
/* 工作方式3,8位定时器,晶振11.0592M,最大定时时间23uS
#define TMOD_VALUE0 0x03 //GATE=0,C/T=0,M1=1,M0=1;
#define T0_TIME0 20 //定时时间20uS
#define T0_VALUE0 (0x100-(FOSC/100 * T0_TIME0/10000)) //定时计算器0基数
#define TL0_VALUE (T0_VALUE0&0x00FF) //将T0_VALUE给TL0_VALUE
#define T0_TIME1 20 //定时时间20us
#define T0_VALUE1 (0x100-(FOSC/100 * T0_TIME1/10000)) //定时计算器0基数
#define TH0_VALUE (T0_VALUE1&0x00FF) //将T0_VALUE给TH0_VALUE */
/*定时器1,12T模式,T1x12=0,AUXR &= 0xBF;*/
/* 工作方式1,13位定时器,晶振11.0592M,最大定时时间740.74uS
#define TMOD_VALUE1 0x00 //GATE=0,C/T=0,M1=0,M0=0;
#define T1_TIME 500 //定时时间500uS
#define T1_VALUE (0x2000-(FOSC/100 * T1_TIME/10000)) //定时计算器1基数
#define TH1_VALUE ((T1_VALUE>>5)&0x00FF) //右移五位,将T1_VALUE高八位给TH1_VALUE
#define TL1_VALUE ((T1_VALUE<<3)&0x00FF) //左移三位,将T1_VALUE低五位给TL1_VALUE*/
/* 工作方式1,16位定时器,晶振11.0592M,最大定时时间5.92mS
#define TMOD_VALUE1 0x10 //GATE=0,C/T=0,M1=0,M0=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -