找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3731|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)串口和定時器沖突了?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:370407 發(fā)表于 2020-3-7 17:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大俠們點撥一下 3Q

void Init_Timer0()        
{
TMOD=0x11;
TH0=(65536-1500)/256;
TL0=(65536-1500)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
PT0=1;
}
//---------------------------------------------
//串口初始化函
void UART_init(void)
{
         EA = 1;                                 
         ES = 1;                                    
         TMOD = 0x20;                           
         SCON = 0x50;                                
         TH1 = 0xF3;                                
         TL1 = 0xF3;                                                               
         PCON = 0x80;                                             
         TR1 = 1;                                   
         AUXR = 0x00;         
}

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

使用道具 舉報

來自 2#
ID:213173 發(fā)表于 2020-3-7 19:33 | 只看該作者
void Init_Timer0(void)        //1500微秒@12.000MHz
{
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TMOD |= 0x01;                //設(shè)置定時器模式
        TL0 = 0x24;                        //設(shè)置定時初值
        TH0 = 0xFA;                        //設(shè)置定時初值
        TF0 = 0;                        //清除TF0標(biāo)志
        TR0 = 1;                        //定時器0開始計時
        EA = 1;                                //開總中斷
        ET0 = 1;                        //開T0中斷
}

void UART_init(void)        //4800bps@12.000MHz
{
        PCON |= 0x80;                //使能波特率倍速位SMOD
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率
        AUXR &= 0xBF;                //定時器1時鐘為Fosc/12,即12T
        AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
        TMOD &= 0x0F;                //清除定時器1模式位
        TMOD |= 0x20;                //設(shè)定定時器1為8位自動重裝方式
        TL1 = 0xF3;                        //設(shè)定定時初值
        TH1 = 0xF3;                        //設(shè)定定時器重裝值
        ET1 = 0;                        //禁止定時器1中斷
        TR1 = 1;                        //啟動定時器1
//        EA = 1;                                //開總中斷
        ES = 1;                                //開串口中斷
}
回復(fù)

使用道具 舉報

板凳
ID:275826 發(fā)表于 2020-3-7 18:48 | 只看該作者
你要解決什么問題?
回復(fù)

使用道具 舉報

地板
ID:342451 發(fā)表于 2020-3-7 19:27 | 只看該作者
你同時打開多個中斷時  
TMOD |= 0x   
注意一定要加或,否則你配置另一個時候就把之前的改變了
回復(fù)

使用道具 舉報

5#
ID:6520 發(fā)表于 2020-3-7 19:51 | 只看該作者
先來好好學(xué)習(xí)
回復(fù)

使用道具 舉報

6#
ID:370407 發(fā)表于 2020-3-7 20:14 | 只看該作者
tyrl800 發(fā)表于 2020-3-7 18:48
你要解決什么問題?

我要用兩個定時器  一個用串口  一個用占空比
回復(fù)

使用道具 舉報

7#
ID:370407 發(fā)表于 2020-3-8 09:41 | 只看該作者
wulin 發(fā)表于 2020-3-7 19:33
void Init_Timer0(void)        //1500微秒@12.000MHz
{
        AUXR &= 0x7F;                //定時器時鐘12T模式

感謝大俠點撥相助
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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