找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3569|回复: 12
打印 上一主题 下一主题
收起左侧

STC15W204S单片机计时时间不对

[复制链接]
跳转到指定楼层
楼主
ID:442937 发表于 2019-5-21 15:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大神,以下程序在89C52芯片上运行,是按0.45秒闪烁(12MHZ),但是下载到15W204S里,设定IRC频率为12MHZ时,闪烁很快,大概快了4倍,请问是哪里设定不对吗?第一次用15系列,求解答,谢谢!

单片机源程序如下:
#include "reg52.h"               
typedef unsigned int u16;        
typedef unsigned char u8;

sbit led=P3^3;                 //将单片机的P3.3端口定义为led
void delay(u16 i)
{
        while(i--);        
}

void main()
{
        while(1)
        {
                led=0;        
                delay(50000); //大约延时450ms
                led=1;
                delay(50000);  //大约延时450ms        
        }               
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2019-5-22 00:14 | 只看该作者
速度快改慢 4 倍不就行了么
回复

使用道具 举报

板凳
ID:155507 发表于 2019-5-22 06:47 | 只看该作者
延时函数不对

void Delay450ms()                //@12.000MHz
{
        unsigned char i, j, k;

        _nop_();
        _nop_();
        i = 21;
        j = 133;
        k = 210;
        do
        {
                do
                {
                        while (--k);
                } while (--j);
        } while (--i);
}

回复

使用道具 举报

地板
ID:330198 发表于 2019-5-22 10:46 | 只看该作者
12T模式还是1T模式?
回复

使用道具 举报

5#
ID:213173 发表于 2019-5-22 11:29 | 只看该作者
/*-------------------------
  15W系列ms延时程序(12MHz 1T)
-------------------------*/
void delay_ms(uint k)//T=1*k(ms)
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=892;j>0;j--);       
}
回复

使用道具 举报

6#
ID:158375 发表于 2019-5-22 13:07 | 只看该作者
资料看的不仔细,造成的结果,解释这样
回复

使用道具 举报

7#
ID:442937 发表于 2019-5-22 21:25 | 只看该作者
wc86110 发表于 2019-5-22 00:14
速度快改慢 4 倍不就行了么

我的意思是同一个程序,在两块芯片上不一样,理解不了是哪里有问题。
回复

使用道具 举报

8#
ID:442937 发表于 2019-5-22 21:26 | 只看该作者
angmall 发表于 2019-5-22 06:47
延时函数不对

void Delay450ms()                //@12.000MHz

谢谢大佬,这个我知道,还要加个头文件,我的意思是同一个程序,在两块芯片上不一样,理解不了是哪里有问题。
回复

使用道具 举报

9#
ID:442937 发表于 2019-5-22 21:26 | 只看该作者
wulin 发表于 2019-5-22 11:29
/*-------------------------
  15W系列ms延时程序(12MHz 1T)
-------------------------*/

谢谢大佬,这个我知道,还要加个头文件,我的意思是同一个程序,在两块芯片上不一样,理解不了是哪里有问题。
回复

使用道具 举报

10#
ID:213173 发表于 2019-5-23 06:13 | 只看该作者
aimaoju 发表于 2019-5-22 21:26
谢谢大佬,这个我知道,还要加个头文件,我的意思是同一个程序,在两块芯片上不一样,理解不了是哪里有问 ...

软件都是基于硬件条件下编写的,同一个程序在两块相同的芯片上使用不会有问题,如果在不同的芯片,甚至同一厂商的不同系列的芯片都不一定能正常运行。STC15W204S是1T单片机,运行速度比STC89C52快得多,所以用软件延时就要改数据,否则延时时间会缩短许多。
回复

使用道具 举报

11#
ID:65956 发表于 2019-5-23 08:32 | 只看该作者
这款单片机的运行速度比老单片机快,所以定时器设定值要注意是12T还是1T,默认都是1T的,所以这点没有改就很容间造成时间变快,还有软件硬延时都不一样,请好好看两种单片机的手册
回复

使用道具 举报

12#
ID:522839 发表于 2019-5-23 09:41 | 只看该作者
15的本来就比他快啊,程序要修改,建议用定时器,更准
回复

使用道具 举报

13#
ID:545321 发表于 2019-5-23 09:57 | 只看该作者
我感觉也有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表