久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4567|回復: 3
打印 上一主題 下一主題
收起左側

STC15F104W和STC15W401AS單片機代碼可以通用嗎

[復制鏈接]
跳轉到指定樓層
樓主
ID:221879 發表于 2019-3-17 12:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近使用STC15F104W單片機做的定時器電路,時鐘誤差很大,現在想用外接晶振的方法解決問題。由于STC15F104W本身不支持外接晶振,所以查手冊得知STC15W401AS可以外接晶振,現在就是不知道STC15F104W和STC15W401AS代碼可以通用不,如果要修改要怎么改,先謝謝了。

使用芯片:STC15F104E
晶振:11.0592MHZ
波特率:9600
編譯環境:Keil
*********************************************************************/
/********************************************************************/

#include<reg52.h>                 //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int  //宏定義無符號整型
/********************************************************************
                            初始定義
*********************************************************************/
uint sec = 0; //定義計數值,每過1/10 秒,sec 加一
uint tcnt = 0; //鍵值判斷
uchar Start_Flag = 1;//定義一個全局變量,值初始化為1,用來判斷首次上電的
/********************************************************************
                            I/O定義
*********************************************************************/
sbit  OUT1=P3^3;//定義輸出口為P3.3口 用以控制繼電器
sbit  IN1=P3^5;        //定義輸入口為P3.5口 用以輸入信號

/********************************************************************
                            定時中斷服務函數
*********************************************************************/
void t0(void) interrupt 1 using 0 //定時中斷服務函數
{
        tcnt++;
        if(tcnt==4000)
        {
                tcnt=0;
                sec++;
                if(Start_Flag == 1)
                {
                        if(sec==10)
                        {
                        OUT1=1;
                        }
                        if(sec==20)
                        {
                        OUT1=0;
                        sec=0;
                        Start_Flag = 0;
                        }
                }
                else
                {
                        if(sec==30)
                        {
                        OUT1=1;
                        }
                        if(sec==40)
                        {
                        OUT1=0;
                        sec=0;
                        }
                }
        }
}

/********************************************************************
                            主函數
*********************************************************************/
void main()
{
        TMOD=0x02; //定時器工作在方式2
        TH0=0x06; //對TH0 TL0 賦值
        TL0=0x06;
        TR0=1; //開始定時
        ET0=1;
        EA=1;
        sec=0;
        OUT1=0;//模塊通電繼電器吸合
        while(1)
        {
         if(IN1==0){OUT1=1;while(!IN1);OUT1=0;}
        }
}               

        
/********************************************************************
                              結束
*********************************************************************/

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:644425 發表于 2020-4-9 23:32 來自手機 | 只看該作者
頭文件用 stc15.h
回復

使用道具 舉報

板凳
ID:644425 發表于 2020-4-9 23:44 來自手機 | 只看該作者
頭文件用 stc15.h , TMOD =0X00  16位自動重載。 然后,把定時中斷里的if,全拉到主程序來,定時中斷就留一個tcnt++, 時間就準了。另外,定時器中斷太頻繁了,建議控制在5ms一次中斷比較好,那么200次一秒,累加只需要用到uchar,而不需要用到uint,我用stc15f104至今,定時器誤差直局限于下載時調整晶振速率時那點差值,實際使用中連別人說的頻飄都沒遇到過。
回復

使用道具 舉報

地板
ID:213173 發表于 2020-4-10 05:56 | 只看該作者
就樓主這個簡單程序,只是使用了定時器0的模式2,沒有使用其它任何特殊功能,程序什么都不用改。STC的芯片都能直接用,當然包括STC15W401AS在內。不知樓主使用STC15F104W單片機做的定時器電路下載程序時選擇內部時鐘是多少頻率,從程序中看定時器設置是12MHz/250us。如果下載程序選擇內部時鐘默認11.0592MHz就會誤差很大。在實際應用中STC內部時鐘1小時誤差在10秒內。其實如果誤差比較穩定還可以通過修改if(tcnt==4000)的數值增減使誤差控制在每小時1秒內,沒有必要加外部晶振。其實TB賣的晶振也準不到那里去。
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级女毛片| 91精品国产综合久久久久久 | 日韩美香港a一级毛片免费 国产综合av | 日韩精品一区二区三区视频播放 | 亚洲精品区 | 青青久在线视频 | 国产成人一区二区三区精 | 久久久久久久国产 | 精品视频999 | 激情五月激情综合网 | 久久av一区| 国产精品视频免费播放 | 亚洲久视频 | 亚洲一区中文 | 一区二区日韩 | 日韩成人精品一区 | 夜夜骚视频 | 日韩视频三区 | 毛片一区二区 | 九色网址 | 成人av鲁丝片一区二区小说 | 成人免费一区二区三区视频网站 | 日韩一级黄色片 | 国产欧美在线视频 | 一区二区三区视频在线免费观看 | 美女久久久 | 日日射夜夜骑 | 国产精品久久久久久久久久久久午夜片 | 欧美一区二区 | 国产精品国产精品国产专区不卡 | 久久精品国产亚洲 | 欧产日产国产精品视频 | 欧美精品一| 日韩美香港a一级毛片免费 国产综合av | 日韩精品 电影一区 亚洲 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 国产在线资源 | 在线中文视频 | 国产免费一区二区三区 | 成人欧美一区二区三区1314 | 午夜精品一区二区三区在线观看 |