/*********************************************************************************************************
* Initialization Program
* QiZhao,2007
* All Rights Reserved
* File : initial.h
* By : QiZhao
* Contact :zq1987731@163.com
*
* Version : V2.1 γ
* Corrector : QiZhao
* Date : 2008.2.1 (Last modified)
*
* Remarks : Common set of macro definitions keyword, and by setting controlled
* crystal oscillator frequency precision delay subroutine.
*
*********************************************************************************************************/
#ifndef _initial_h_
#define _initial_h_
/*********************************************************************************************************
*
* Global macro definitions
*
*********************************************************************************************************/
#include // AT89S52
#include // Absolute address access
#include // Related to the string
#include // Related to Assembly Language
#include // Unicode conversion
#include // Mathematics functions packet
#include // Standard input or output
#include // Memory Management
#define TRUE 1
#define FALSE 0
#define bool bit // Boolean variable
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define FOSC 12000000UL // The frequency of crystal
#define NOP _nop_();
/*********************************************************************************************************
*
* Accurate delay(5us,10us)
*
*********************************************************************************************************/
void delay10us (void) // FOSC->12000000
{
NOP
NOP
NOP
NOP
NOP
NOP
}
void delay5us (void) // FOSC->12000000
{
NOP
}
/*********************************************************************************************************
*
* Accurate delay(1ms~255ms)
*
*********************************************************************************************************/
#define WAITE_HI (FOSC / 2 / 12 / 1000 >> 8 )
#define WAITE_LOW (FOSC / 2 / 12 / 1000 & 0xFF)
void delayms (uchar time)
{
do
{
uchar j;
#if WAITE_HI != 0
j = 0;
{
uchar i;
for(i = WAITE_HI; i > 0; i--)
{
while (--j);
}
}
#endif
#if WAITE_LOW != 0
j = WAITE_LOW;
while (--j);
#endif
}while (--time);
}
/*********************************************************************************************************
*
* Includes not repeat
*
*********************************************************************************************************/
#endif
上一篇:以单片机89C52为核心的火控系统语音报读电路设计
下一篇:基于AT89S51单片机实现多路信号源的系统设计
推荐阅读最新更新时间:2024-10-31 08:47
设计资源 培训 开发板 精华推荐
- NCS7101语音带滤波器典型应用电路
- Mini51
- 【训练营】一只会摆烂的狗子
- LM324DTBR2G 多反馈带通滤波器运算放大器的典型应用
- 具有外部偏置或同步功能的 CS51413 1.5 A、260 kHz 和 520 kHz 低压降压稳压器的典型应用电路
- NCP705 500 mA、超低静态电流、IQ 13 A、超低噪声、可调电压版本的 LDO 稳压器的典型应用
- LTC2296IUP 演示板,MUX 双路 ADC,VDD=+3.0V,25Msps,14Bit,1MHz < AIN< 70MHz
- 使用 Analog Devices 的 LT1372HVCN8 的参考设计
- 电磁V8发动机
- DC2089A-B,LTC3880EUJ/LTC3870EUFD DCR SENSE 演示板,7V = VIN = 14V,VOUT = 0.8V 至 1.8V,80A