找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 3918|回復(fù): 12
收起左側(cè)

STC15W204S單片機(jī)計(jì)時(shí)時(shí)間不對

[復(fù)制鏈接]
ID:442937 發(fā)表于 2019-5-21 15:08 | 顯示全部樓層 |閱讀模式
各位大神,以下程序在89C52芯片上運(yùn)行,是按0.45秒閃爍(12MHZ),但是下載到15W204S里,設(shè)定IRC頻率為12MHZ時(shí),閃爍很快,大概快了4倍,請問是哪里設(shè)定不對嗎?第一次用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        
        }               
}


回復(fù)

使用道具 舉報(bào)

ID:96682 發(fā)表于 2019-5-22 00:14 | 顯示全部樓層
速度快改慢 4 倍不就行了么
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 2019-5-22 06:47 | 顯示全部樓層
延時(shí)函數(shù)不對

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

回復(fù)

使用道具 舉報(bào)

ID:330198 發(fā)表于 2019-5-22 10:46 | 顯示全部樓層
12T模式還是1T模式?
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 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--);       
}
回復(fù)

使用道具 舉報(bào)

ID:158375 發(fā)表于 2019-5-22 13:07 | 顯示全部樓層
資料看的不仔細(xì),造成的結(jié)果,解釋這樣
回復(fù)

使用道具 舉報(bào)

ID:442937 發(fā)表于 2019-5-22 21:25 | 顯示全部樓層
wc86110 發(fā)表于 2019-5-22 00:14
速度快改慢 4 倍不就行了么

我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
回復(fù)

使用道具 舉報(bào)

ID:442937 發(fā)表于 2019-5-22 21:26 | 顯示全部樓層
angmall 發(fā)表于 2019-5-22 06:47
延時(shí)函數(shù)不對

void Delay450ms()                //@12.000MHz

謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
回復(fù)

使用道具 舉報(bào)

ID:442937 發(fā)表于 2019-5-22 21:26 | 顯示全部樓層
wulin 發(fā)表于 2019-5-22 11:29
/*-------------------------
  15W系列ms延時(shí)程序(12MHz 1T)
-------------------------*/

謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問題。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2019-5-23 06:13 | 顯示全部樓層
aimaoju 發(fā)表于 2019-5-22 21:26
謝謝大佬,這個(gè)我知道,還要加個(gè)頭文件,我的意思是同一個(gè)程序,在兩塊芯片上不一樣,理解不了是哪里有問 ...

軟件都是基于硬件條件下編寫的,同一個(gè)程序在兩塊相同的芯片上使用不會有問題,如果在不同的芯片,甚至同一廠商的不同系列的芯片都不一定能正常運(yùn)行。STC15W204S是1T單片機(jī),運(yùn)行速度比STC89C52快得多,所以用軟件延時(shí)就要改數(shù)據(jù),否則延時(shí)時(shí)間會縮短許多。
回復(fù)

使用道具 舉報(bào)

ID:65956 發(fā)表于 2019-5-23 08:32 | 顯示全部樓層
這款單片機(jī)的運(yùn)行速度比老單片機(jī)快,所以定時(shí)器設(shè)定值要注意是12T還是1T,默認(rèn)都是1T的,所以這點(diǎn)沒有改就很容間造成時(shí)間變快,還有軟件硬延時(shí)都不一樣,請好好看兩種單片機(jī)的手冊
回復(fù)

使用道具 舉報(bào)

ID:522839 發(fā)表于 2019-5-23 09:41 | 顯示全部樓層
15的本來就比他快啊,程序要修改,建議用定時(shí)器,更準(zhǔn)
回復(fù)

使用道具 舉報(bào)

ID:545321 發(fā)表于 2019-5-23 09:57 | 顯示全部樓層
我感覺也有問題
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表