標(biāo)題: STC15W204S單片機(jī)計(jì)時(shí)時(shí)間不對(duì) [打印本頁(yè)]

作者: aimaoju    時(shí)間: 2019-5-21 15:08
標(biāo)題: STC15W204S單片機(jī)計(jì)時(shí)時(shí)間不對(duì)
各位大神,以下程序在89C52芯片上運(yùn)行,是按0.45秒閃爍(12MHZ),但是下載到15W204S里,設(shè)定IRC頻率為12MHZ時(shí),閃爍很快,大概快了4倍,請(qǐng)問是哪里設(shè)定不對(duì)嗎?第一次用15系列,求解答,謝謝!

單片機(jī)源程序如下:
#include "reg52.h"               
typedef unsigned int u16;        
typedef unsigned char u8;

sbit led=P3^3;                 //將單片機(jī)的P3.3端口定義為led
void delay(u16 i)
{
        while(i--);        
}

void main()
{
        while(1)
        {
                led=0;        
                delay(50000); //大約延時(shí)450ms
                led=1;
                delay(50000);  //大約延時(shí)450ms        
        }               
}



作者: wc86110    時(shí)間: 2019-5-22 00:14
速度快改慢 4 倍不就行了么
作者: angmall    時(shí)間: 2019-5-22 06:47
延時(shí)函數(shù)不對(duì)

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);
}


作者: zhanghyg    時(shí)間: 2019-5-22 10:46
12T模式還是1T模式?
作者: wulin    時(shí)間: 2019-5-22 11:29
/*-------------------------
  15W系列ms延時(shí)程序(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--);       
}
作者: 笨笨兔    時(shí)間: 2019-5-22 13:07
資料看的不仔細(xì),造成的結(jié)果,解釋這樣
作者: aimaoju    時(shí)間: 2019-5-22 21:25
wc86110 發(fā)表于 2019-5-22 00:14
速度快改慢 4 倍不就行了么

我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
作者: aimaoju    時(shí)間: 2019-5-22 21:26
angmall 發(fā)表于 2019-5-22 06:47
延時(shí)函數(shù)不對(duì)

void Delay450ms()                //@12.000MHz

謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
作者: aimaoju    時(shí)間: 2019-5-22 21:26
wulin 發(fā)表于 2019-5-22 11:29
/*-------------------------
  15W系列ms延時(shí)程序(12MHz 1T)
-------------------------*/

謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
作者: wulin    時(shí)間: 2019-5-23 06:13
aimaoju 發(fā)表于 2019-5-22 21:26
謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問 ...

軟件都是基于硬件條件下編寫的,同一個(gè)程序在兩塊相同的芯片上使用不會(huì)有問題,如果在不同的芯片,甚至同一廠商的不同系列的芯片都不一定能正常運(yùn)行。STC15W204S是1T單片機(jī),運(yùn)行速度比STC89C52快得多,所以用軟件延時(shí)就要改數(shù)據(jù),否則延時(shí)時(shí)間會(huì)縮短許多。
作者: aking991    時(shí)間: 2019-5-23 08:32
這款單片機(jī)的運(yùn)行速度比老單片機(jī)快,所以定時(shí)器設(shè)定值要注意是12T還是1T,默認(rèn)都是1T的,所以這點(diǎn)沒有改就很容間造成時(shí)間變快,還有軟件硬延時(shí)都不一樣,請(qǐng)好好看兩種單片機(jī)的手冊(cè)
作者: 智蕓DIY    時(shí)間: 2019-5-23 09:41
15的本來就比他快啊,程序要修改,建議用定時(shí)器,更準(zhǔn)
作者: 曉風(fēng)殘?jiān)?124    時(shí)間: 2019-5-23 09:57
我感覺也有問題




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1