我用的stc89c52rc请问isp里生成的软件延时代码6t模式和12t模式是一样的吗
本帖最后由 xiehaiyuan 于 2023-5-8 23:40 编辑本帖最后由 STC32G12K128 于 2023-5-9 17:17 编辑
楼主,波特率计算器是辅助您写程序的,一个辅助开发工具。
硬件选项上的6T和12T,是芯片的机器周期,该选项是用于提高芯片的运行速度的。
STC89系列可以用例程,在定义里修改主频跟波特率:
STC32G12K128 发表于 2023-5-9 09:33
楼主,波特率计算器是辅助您写程序的,一个辅助开发工具。
硬件选项上的6T和12T,是芯片的机器周期,该选 ...
老哥不是波特率计算器,是软件延时计算器,我发现好像没有6t和12t的区分 下面的STC89的软件延时工具就是STC89的12T软件延时
神农鼎 发表于 2023-5-9 20:42
下面的STC89的软件延时工具就是STC89的12T软件延时
这个默认是12t的话,那6t就要自己写对吧 执行2次,或将主时钟当... 用这样的延时函数,比较简单。
/*********************************************
程序名称 :延时函数
*********************************************/
//#define MAIN_Fosc 48000000L //定义主时钟
//#define MAIN_Fosc 44236800L //定义主时钟
//#define MAIN_Fosc 40000000L //定义主时钟
//#define MAIN_Fosc 36864000L //定义主时钟
//#define MAIN_Fosc 35000000L //定义主时钟
//#define MAIN_Fosc 33177600L //定义主时钟
//#define MAIN_Fosc 30000000L //定义主时钟
//#define MAIN_Fosc 27000000L //定义主时钟
//#define MAIN_Fosc 24000000L //定义主时钟
//#define MAIN_Fosc 22118400L //定义主时钟
//#define MAIN_Fosc 20000000L //定义主时钟
//#define MAIN_Fosc 18432000L //定义主时钟
#define MAIN_Fosc 12000000L //定义主时钟
//#define MAIN_Fosc 11059200L //定义主时钟
//#define MAIN_Fosc 6000000L //定义主时钟
//#define MAIN_Fosc 5529600L //定义主时钟
//软件延时我都是由编译器帮我确定:
void Delay_ms(unsigned int ms) //注:ms_max=65536
{
unsigned int i;
do
{
// i=MAIN_Fosc/96000L; //STC89/90_12T
// i=MAIN_Fosc/48000L; //STC89/90_6T
// i=MAIN_Fosc/14000; //STC12
// i=MAIN_Fosc/13000; //STC15
i=MAIN_Fosc/10000; //STC8
// i=MAIN_Fosc/6030; //STC32
while(--i);
}
while(--ms);
}
页:
[1]