C51全局初始化及精确延时程序,51单片机精确延时程序
关键字:单片机延时程序
/*********************************************************************************************************
* 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.
*
*********************************************************************************************************/
* 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_
#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
*
* Global macro definitions
*
*********************************************************************************************************/
#include
#include // Absolute address access
#include
#include
#include
#include
#include
#include
#define TRUE 1
#define FALSE 0
#define bool bit // Boolean variable
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#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_();
#define NOP _nop_();
/*********************************************************************************************************
*
* Accurate delay(5us,10us)
*
*********************************************************************************************************/
*
* Accurate delay(5us,10us)
*
*********************************************************************************************************/
void delay10us (void) // FOSC->12000000
{
NOP
NOP
NOP
NOP
NOP
NOP
}
{
NOP
NOP
NOP
NOP
NOP
NOP
}
void delay5us (void) // FOSC->12000000
{
NOP
}
{
NOP
}
/*********************************************************************************************************
*
* Accurate delay(1ms~255ms)
*
*********************************************************************************************************/
*
* Accurate delay(1ms~255ms)
*
*********************************************************************************************************/
#define WAITE_HI (FOSC / 2 / 12 / 1000 >> 8 )
#define WAITE_LOW (FOSC / 2 / 12 / 1000 & 0xFF)
#define WAITE_LOW (FOSC / 2 / 12 / 1000 & 0xFF)
void delayms (uchar time)
{
do
{
uchar j;
{
do
{
uchar j;
#if WAITE_HI != 0
j = 0;
{
uchar i;
for(i = WAITE_HI; i > 0; i--)
{
while (--j);
}
}
#endif
j = 0;
{
uchar i;
for(i = WAITE_HI; i > 0; i--)
{
while (--j);
}
}
#endif
#if WAITE_LOW != 0
j = WAITE_LOW;
while (--j);
#endif
j = WAITE_LOW;
while (--j);
#endif
}while (--time);
}
}
/*********************************************************************************************************
*
* Includes not repeat
*
*********************************************************************************************************/
*
* Includes not repeat
*
*********************************************************************************************************/
#endif
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
发布评论请先 登录
相关推荐
热点推荐
8XC51FX:高性能8位单片机的全方位解析
8XC51FX:高性能8位单片机的全方位解析 在单片机的世界里,8XC51FX系列以其卓越的性能和丰富的功能脱颖而出,成为众多电子工程师在设计项目时的热门选择。今天,我们就来深入探讨一
学习单片机快速方法
C51说起,首先得准备一本单片机教材,只要是C51核心的都可以。打开书看单片机的管脚各有什么功能,内部都有什么东西,用来干嘛。这本书你当成小说来看个一天就可以了。不要求你全部看懂。知道
发表于 01-14 07:42
单片机开发中常用的三种软件架构介绍
1.线性架构这是最简单的一种程序设计方法,也就是我们在入门时写的,下面是一个使用C语言编写的线性架构示例:
#include// 包含51系列单片机的寄存器定义//
发表于 11-26 08:05
Cortex-M内核中的精确延时的方法
)
#defineDWT_CR_CYCCNTENA (1 <<0)
/**
* @brief初始化时间戳
* @param无
* @retval 无
* @NOTE使用延时函数前,必须调用本
发表于 11-21 07:51
使用系统定时器SysTick来实现精确延时微秒和毫秒函数
*/return (0UL);/* Function successful */}通过后面的注释也可以看出,这是对SysTick定时器进行初始化,配置初始计数值,使能中断,使能定时器等。对应的中断函数为
发表于 11-20 07:12
C语言和单片机C语言有什么差异
区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。
3、单片机c语言编程是基于C语言的单片机编程。
发表于 11-14 07:55
单片机原理及应用
本书全面系统地介绍了 MCS-51 系列单片机的基本结构、工作原理及应用技术。主要内容包括:微型计算机的基础知识、MCS-51 单片机的基本结构、汇编语言和
发表于 06-16 16:58
单片机C语言入门指导(非常通俗易懂!)
, 显而易见的问题出来了: 我要选择那种语言为 单片机编写程序呢?
这个问题,困扰了我好久。具 体选择 C51 还是 A51 呢?汇编在我们大二之前并没有开过课, 虽然看着人家的讲
发表于 06-16 16:32
C51全局初始化及精确延时程序,51单片机精确延时程序
评论