欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: AT89C52替換成STC12C5A60S2應該怎樣修改啊請大神指導抱歉粘貼不完 [打印本頁]

作者: 135808    時間: 2019-3-14 01:12
標題: AT89C52替換成STC12C5A60S2應該怎樣修改啊請大神指導抱歉粘貼不完
這是延時函數(shù)* 輸入 : q
* 輸出 : 無
***********************************************************************/
void delay_1ms(uint q)
{
        uint i,j;
        for(i=0;i<q;i++)
                for(j=0;j<110;j++);
}
這是定時函數(shù)
/*********************定時器0、定時器1初始化******************/
void time0_init()          
{
        TMOD = 0X11;          //定時器0、定時器1工作方式1
        ET0 = 1;                  //開定時器0中斷
        TR0 = 1;                  //允許定時器0定時
//        ET1 = 1;                  //開定時器1中斷
//        TR1 = 1;                  //允許定時器1定時       
}
這是中斷函數(shù)
/*********************定時器0中斷服務程序************************/
void time0_int() interrupt 1  
{                                                  
        static uchar value;                         //定時10ms中斷一次
        TH0 = 0x3c;
        TL0 = 0xb0;     //50ms
        value ++;
        flag_5m_value++;
        if(flag_5m_value % 10 == 0)
                flag_500ms = ~flag_500ms;
        if(value >= 20)
        {
                value = 0;
                flag_1s = 1;
        }
}
這是主函數(shù)
***********************************************************************/
void main()
{
        P0 = P1 = P2 = P3 = 0XFF;    //IO口全部輸出為1
        time0_init();
        dx_s = nb_time;          //南北時間
        while(1)
        {
                key();
                if(key_can < 20)
                        key_with();
                che_liuliang();         //車計流量程序
                if((menu_1 == 0) && (flag_jdgz == 0))
                        jiaotongdeng_dis();
                if(flag_che == 1)
                {
                        dis_smg[3] = smg_du[nb_che_value / 10 % 10] ;        //顯示為B
                        dis_smg[2] = smg_du[nb_che_value % 10] ;        //顯示為B
                        dis_smg[1] = smg_du[dx_che_value / 10% 10] ;                //顯示東?魃柚玫氖焙?
                        dis_smg[0] = smg_du[dx_che_value % 10 ] ;       
                }
                display();       
        }
}  

作者: gh001    時間: 2019-3-14 07:35
根據(jù)程序看,主要涉及到delay
stc12是1T,stc89是12T
stc12指令執(zhí)行要快,比如你的delay函數(shù)
作者: DIY電子    時間: 2019-3-14 08:04
12T 1T  延時少個10倍左右就可以了  你可以到宏晶官方網(wǎng)站看看  里面有例程 好像是DS18B20
作者: xuyaqi    時間: 2019-3-14 08:36
一般來說牽扯定時的部分要修改,方法,先完全移植,然后碰到什么問題解決什么問題,難度不小于從頭開發(fā)。
作者: ysandi    時間: 2019-3-14 08:41
沒用到12C5A60S的一些特殊功能的話,程序不用改變,可以直接換。我有一次使用STC89C52,因為程序有點大,裝不下。后面就直接用STC12C5A60S燒錄,完全正常運行。
作者: 天風情    時間: 2019-3-14 10:08
STC12的12T模式可以兼容STC89的,如果用此模式的話就不用修改。但這也就浪費了1T的功能
作者: zssssha    時間: 2019-3-14 10:15
用stc-isp的功能。添加12系列的頭文件。用stc-isp里面的延時計算器,直接替換掉源碼里面的延時函數(shù)。






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