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

📄 main.h

📁 proteus电子钟(带闹钟数码管显示)
💻 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 + -