#define STC_Y1 97560UL // 89C/LEXX、90C/LEXX #define STC_Y3 14050UL // 10F/Lxx、11F/Lxx 、12C/LExx、15F104E/L104E(A版)、15F204E/L204EA(A版) #define STC_Y5 13043UL // 15F/L/Wxx(Y3内核个别型号除外) #define Fosc 12000000UL // 主频频率 #define Core STC_Y5 // 内核型号 /** * 功能:延时t毫秒 * 入参:0~65535 */ void delay_ms(unsigned int t) { unsigned int i; do{ i = (unsigned int)(Fosc / Core); while(--i); }while(--t); }
取个最大值看看延时误差就行了,t = 65000 ,误差才几十us,较一般的延时准确度已经很高了。
至于最开始的宏定义,看似magic number,其实就是debug得到汇编代码,得到调用函数到返回函数执行的所有指令,然后根据各个内核的指令速度稍作修改就可以了。这几个数可以在一定范围内修改,因为
Fosc/Core是个浮点数,最后做了一下取整,好在这一套操作是在编译时期就解决了,对性能没有影响。
发文的时候STC已经出Y6内核了。不过手上没有STC的新片,估计以后也不会有了,手头这些STC15系列的还没怎么玩。况且还有一堆mega8/16 另外有几片msp430,stm8/32,下一步打算玩玩这些。
相关推荐
次代码是针对STC8系列的单片机的延时函数,使用 此代码可以直接添加调用,程序自动获取内部系统时 钟后初始化延时函数。只要是ISP软件默认的时钟频 率都可以应用(特殊频率除外) 该代码为初版,还存在很多缺陷,请...
// 描述: 延时函数。 // 参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. // 返回: none. // 版本: VER1.0 // 日期: 2013-4-1 // 备注: //==========================================================...
为了方便51单片机在不同晶振频率下,延时函数能正常使用而打包的延时函数。改变频率后只需改变一下宏定义即可。 delay.h #ifndef _DELAY_H #define _DELAY_H //注意时钟频率设置正确 //-------------------...
我在STC12C5410上写的一个很简单的延时程序,希望对刚学习STC的人工程帅有点帮助
最初级的软件延时,会让你CPU白白等待(俗称阻塞延时),适合初学者,简单省事,延时函数由stc官方提供,非常准确,内附详细教程。
本文档主要针对STC12系列单片机的调试延时的方法做简介
STC单片机+四相步进电机驱动程序 - 单四拍(延时函数)
STC单片机不同晶振时1MS精确延时程序
关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412系列12倍速的单片机,...
本文件包含STC32G GPIO、定时器、软硬件延时函数库、串口通信、ADC库函数(非官方库函数)源代码及ADC示例函数源代码,经简单的拷贝粘贴即可实现STC32G定时器设置、串口通信设置、数据接收及发送、ADC值获取及电压...
STC单片机+四相步进电机驱动程序- 双四拍(延时函数)
STC单片机+四相步进电机驱动程序 - 八拍(延时函数)
STC89C51单片机使用1-工程创建和Led闪烁灯 1、创建延时函数 2、LED灯程序闪烁
#include "delay.h" //延时函数 #include "spi.h" #include "flash.h" #include "uart.h" u8 scan[]={"STC8 FLASH test"}; //测试字符串 u8 buffer[19]; //接收数组 void main() { SP=0X80; ...
//延时函数 void delay(u8 n) { while(n--); } //关闭IAP void IapIdle() { IAP_CONTR=0; //关闭IAP功能 IAP_CMD =0; //清除命令寄存器 IAP_TRIG =0; //清楚触发寄存器 IAP_ADDRH=0X80; //将地址设置...
最全的51单片机函数库,实现STC12C5A系列大部分硬件的操作函数接口,方便快速应用到自己的项目中。包括Timer定时器、串口、DAC、PWM、delay软硬件延时,串口打印的printf函数等。绝对原创
关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412AD系列单片机12M的...
STC毫秒级和微秒级延时函数和对应代码分析,带计算的excel模板,可以根据自己的晶振频率修改参数获得更精确定时。计算方法基本和示波器显示一致。
相关资料请参考STC89C51RC.pdf第78页 -------------------------------------------------- 基于开发板ZS001编写 开发板购买地址: http://shop60591679.taobao.com/ QQ:284083167 Email:284083167@qq.com 对此程序有...