📄 main.h
字号:
/*------------------------------------------------------------------------------------------------*-
MAIN.H (V1.1)
项目头文件 (Project Header)
-*------------------------------------------------------------------------------------------------*/
/*
* Copyright (c) 2008,
* All rights reserved
*
* 文件名称: main.h
* 文件标识: 项目头文件(Project Header)
* 摘 要: 包含控制器类型,振荡器的频率,执行一条指令
* 所需要的振荡器的周期数,公共的数据类型,
* 及定义中断向量值.
*
* 当前版本: 1.1 * 取代版本:
* 作 者: wsl * 原作者 : Michael J.Pont
* 完成日期: 2008-02-17 * 完成日期:
-*------------------------------------------------------------------------------------------------*/
#ifndef _MAIM_H //防止main.h被重复引用
#define _MAIN_H
#include<intrins.h>
#include <string.h>
#ifndef NULL
#define NULL ((void *) 0L) /*Stdlib.h and String.h already include NULL */
#endif
// cpu 是Big endian(大端)
#define _BIG_ENDIAN_
#ifdef _BIG_ENDIAN_
#define LOW 1
#define HIGH 0
#endif
// CPU 是Little endian(小端)
//#define _LITTLE_ENDIAN_
#ifdef _LITTLE_ENDIAN_
#define LOW 0
#define HIGH 1
#endif
/*------------------------------------------------------------------------------------------------*-
每个项目都要修改这一段
-*------------------------------------------------------------------------------------------------*/
// 控制器类型
#include "reg52.H"
/*------------------------------------------------------------------------------------------------*/
// 单片机执行一条指令所需要的时钟周期数 (6或12)
// 在此使用的是AT89C52芯片,每个机器周期=12*时钟周期
#define OSC_PER_INST (12)
// 晶体为11.0592M或22.1184M
#define OSC_FREQ (11059200UL)
//#define OSC_FREQ (22118400UL)
// 创建可移植的硬件定时溢出
// 此处定时溢出(TIMEROUT必须等于5或是5的倍数)
#define TIMEROUT (10) // 单位是毫秒(最小基数是5)
#define PRELOAD_mS (65536 - (TIMEROUT * OSC_FREQ) / (OSC_PER_INST * 1000))
// 当晶体是11.0592M或是其倍数是,定时器低位自动装载
#define PRELOAD_mS_H (PRELOAD_mS /256)
#define OS_ENTER_CRITICAL() do{EA = 0;}while(0) // 关中断
#define OS_EXIT_CRITICAL() do{EA = 1;}while(0) // 开中断
/*------------------------------------------------------------------------------------------------*/
// 以下部分不需要修改
// 杂项宏定义
#ifndef TRUE
#define FALSE 0
#define TRUE (!FALSE)
#endif
// 数据类型
typedef bit bool;
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef signed int int16_t;
typedef unsigned int uint16_t;
typedef signed long int32_t;
typedef unsigned long uint32_t;
/* IP */
#define _PT2 5
#define _PS 4
#define _PT1 3
#define _PX1 2
#define _PT0 1
#define _PX0 0
#endif
/*--------------------------------NED OF FILE---------------------------------------------------*
字符常数表示
能用符号表示的字符可直接用单引号括起来表示, 如'a', '9', 'Z', 也可用
该字符的ASCII码值表示, 例如十进制数85表示大写字母'U', 十六进制数0x5d表示
']', 八进制数0102表示大写字母'B'。
一些不能用符号表示的控制符, 只能用ASCII码值来表示, 如十进制数10 表示
换行, 下六进制数0x0d表示回车, 八进制数033表示Esc。Turbo C2.0中也有另外一
种表示表示方法, 如'\033'表示Esc, 这里'\ 0' 符号后面的数字表示十六进制的
ASCII值当然这种表示方法也适用于可睦接用符号表示的字符。
另外, Turbo C2.0中有些常用的字符用以下特殊规定来表示:
规定符 等价于 含义
'\f' '\X0C' 换页
'\r' '\X0D' 回车
'\t' '\X09' 制表键
'\n' '\X0A' 换行
'\\' '\X5C' \符
'\'' '\X27' '符
'\"' '\X22' "符
对于字符串常量, 一般用双引号括起来表示, 如"Hello Turbo C2.0"。
/*--------------------------------------------------------------------------------------------------------
0ooo
ooo0 ( )
( ) ) /
\ ( (_/
\_)
--------------------------------------------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -