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

📄 system.h

📁 125K曼彻斯特编码的只读ID卡读头程序
💻 H
📖 第 1 页 / 共 2 页
字号:
/*
+---------------------------------------------------+
| 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 + -