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

標(biāo)題: 單片機(jī)定時器不工作 [打印本頁]

作者: ynzsc001    時間: 2020-2-1 11:26
標(biāo)題: 單片機(jī)定時器不工作
單片機(jī):STC12C5A60S2      晶振:22.1184 MHz
1、使用單片機(jī)的 串口 2 接收GPS模塊信息;
2、使用定時器 1  來控制 P3 口 輸出高電平;

現(xiàn)在的問題是:
1、我在主函數(shù)的while循環(huán)里面先將  P3 口輸出低電平, (有動作)
2、在定時器 1 的中斷函數(shù)里面將 P3 口輸出高電平,(不會動作)

以下是代碼:
1、主函數(shù)循環(huán)
        while(1)
        {
                P3=0;  // 測試用
                GPS_JieXi();
                  ......        

2、波特率、定時器 初值設(shè)置
void Uart2_Init()                // 第二串口,9600bps、22.1184MHz
{
        AUXR &= 0xF7;                //波特率不倍速
        S2CON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR |= 0x04;                //獨(dú)立波特率發(fā)生器時鐘為Fosc,即1T
        BRT          = 0xB8;                //設(shè)定獨(dú)立波特率發(fā)生器重裝值
        AUXR |= 0x10;                //啟動獨(dú)立波特率發(fā)生器
        IE2         = 0x01;   //打開串行口中斷
//---------------------------------------------------------------
        AUXR |= 0x40;                //定時器時鐘1T模式
        TMOD &= 0x0F;                //設(shè)置定時器模式
        TL1 = 0x9A;                //設(shè)置定時初值
        TH1 = 0xA9;                //設(shè)置定時初值
        TF1 = 0;                //清除TF1標(biāo)志
        TR1 = 1;                //定時器1開始計時
        ET1 = 1;
//----------------------------------------------------------------        
        EA   = 1;                     //打開全局中斷控制
               
}


3、定時器 1  中斷函數(shù),定時100 毫秒
void Timer() interrupt 3
        {        

                Time++;
                        if(Time==100)
                                {
                                        Time=0;                        
                                        P3=1;
                                }
        }

        




作者: csmyldl    時間: 2020-2-1 12:36
你所控制的P3=0 P3=1剛好是P30這一根口線,這根口線又是串行口的通信線,建議控制P1口試試
作者: wulin    時間: 2020-2-1 13:06
P3=0;沒有什么問題:00000000,P3=1;問題就來了:00000001。P3只有最低位是高電平。
要用16進(jìn)制寫:P3=0x00; P3=0xff;
作者: xuyaqi    時間: 2020-2-1 13:48
P3口是8位,P3=1;相當(dāng)于P3=0x01;你P3=0xff試試。
作者: lele5211314    時間: 2020-2-1 14:54
你這個程序都沒有設(shè)置定時器1的工作模式
作者: ynzsc001    時間: 2020-2-1 23:22
wulin 發(fā)表于 2020-2-1 13:06
P3=0;沒有什么問題:00000000,P3=1;問題就來了:00000001。P3只有最低位是高電平。
要用16進(jìn)制寫:P3=0x0 ...

真的是這樣啊。謝謝
作者: ynzsc001    時間: 2020-2-1 23:23
xuyaqi 發(fā)表于 2020-2-1 13:48
P3口是8位,P3=1;相當(dāng)于P3=0x01;你P3=0xff試試。

真的是這樣啊。這個知識真的是現(xiàn)在才知道的。謝謝
作者: ynzsc001    時間: 2020-2-1 23:24
lele5211314 發(fā)表于 2020-2-1 14:54
你這個程序都沒有設(shè)置定時器1的工作模式

已經(jīng)設(shè)置了。現(xiàn)在已經(jīng)可以工作了。設(shè)置為P3=0X00,0XFF  之后就可以工作了。
作者: ynzsc001    時間: 2020-2-1 23:25
csmyldl 發(fā)表于 2020-2-1 12:36
你所控制的P3=0 P3=1剛好是P30這一根口線,這根口線又是串行口的通信線,建議控制P1口試試

也倒是不影響,因?yàn)槲业腉PS是接在第二個串口上(P1.2)
作者: ynzsc001    時間: 2020-2-1 23:27
wulin 發(fā)表于 2020-2-1 13:06
P3=0;沒有什么問題:00000000,P3=1;問題就來了:00000001。P3只有最低位是高電平。
要用16進(jìn)制寫:P3=0x0 ...

經(jīng)過你的指點(diǎn),改了之后OK,會動作了。
作者: lucheng77    時間: 2020-2-1 23:37
ynzsc001 發(fā)表于 2020-2-1 23:22
真的是這樣啊。謝謝

你也可以寫P3=255也是對的。




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