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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STC8A單片機(jī)串口發(fā)送數(shù)據(jù)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:613800 發(fā)表于 2019-9-28 17:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
上手了一塊STC8A8K64S4A12,STC公司推出的最新的單片機(jī),性能比51單片機(jī)要好非常多。詳細(xì)的芯片信息可以在官網(wǎng)搜到。

  目前還沒使用到高級(jí)的功能,只使用了串口功能,上手感覺和51沒太大差別。邏輯一致,需要注意的是里面一些寄存器的配置,跟51有些區(qū)別,可以在stc-isp下載器那里查詢相關(guān)的程序,直接套用即可。

  使用串口之前要先看看相關(guān)的寄存器配置,直接套用網(wǎng)上的例程可能會(huì)出錯(cuò)。我本次使用了兩個(gè)定時(shí)器,定時(shí)器1作為串口1的波特率發(fā)送器,另開定時(shí)器2作為計(jì)時(shí)使用。使用定時(shí)器要考慮寄存器的賦值問題,剛開始使用我在兩個(gè)定時(shí)器的初始化函數(shù)里面都對(duì)AUXR寄存器進(jìn)行了賦值,導(dǎo)致跑程序時(shí)AUXR的值在兩個(gè)初始化函數(shù)里面切來切去,整個(gè)功能都無法實(shí)現(xiàn)。

單片機(jī)源程序如下:
/***************************************************/


void UartInit(void)        //9600bps@24.000MHz
{
    PCON &= 0x7F;        //波特率不倍速
    SCON = 0x50;        //8位數(shù)據(jù),可變波特率
    AUXR |= 0x40;        //定時(shí)器1時(shí)鐘為Fosc,即1T
    AUXR &= 0xFE;        //串口1選擇定時(shí)器1為波特率發(fā)生器
    TMOD |= 0x20;        //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
    TL1 = 0xB2;            //設(shè)定定時(shí)初值
    TH1 = 0xB2;            //設(shè)定定時(shí)器重裝值
    //ET1 = 0;            //禁止定時(shí)器1中斷
    EA = 1;             //開總中斷
    TR1 = 1;            //啟動(dòng)定時(shí)器1
    ES=1;                //開串口中斷
    SBUF='B';           //先往串口數(shù)據(jù)緩存器里面塞東西
}


注意里面AUXR寄存器的配置,搞清楚&=和|=的區(qū)別。


例如    0x40=0100 0000;  AUXR|=0x40;就是保證第2位(上圖B6位)為1,而其他7位的數(shù)值不受影響;


           0xFE=1111 1110;AUXR &= 0xFE; 就是確保最后一位(上圖B0)為0,其他7位的數(shù)值不受影響;


簡(jiǎn)單來說|=是為了把某個(gè)位 置1,而&=是為了把某個(gè)位 置0 ;


void usart_isr() interrupt 4  //串口1中斷服務(wù)函數(shù)
{
  if(TI)          //判斷發(fā)送
  {
    P22=!P22;
    TI=0;
  }
  if(RI)        //判斷接收
  {
    P55=!P55;
    RI=0;
  }
}


void Send_string(uint dat)      //串口發(fā)送數(shù)據(jù)
{
  SBUF=dat;
  while(TI==0);


//while(!TI)    //另一種方式
   TI=0;
}


需要注意SBUF,這是51單片機(jī)的串口數(shù)據(jù)緩存器——兩個(gè)緩沖寄存器,一個(gè)是發(fā)送寄存器,一個(gè)是接收寄存器,在物理結(jié)構(gòu)上是完全獨(dú)立的,但地址是重疊的。


當(dāng)SBUF='a',說明往發(fā)送緩存器送了字符a,意味著發(fā)送。


當(dāng)b=SBUF,說明b變量被賦了SBUF里面的數(shù)值,意味著接收。


/********************************************/


void Timer5Init(void)        //1毫秒@24.000MHz
{
     AUXR |= 0x44;        //定時(shí)器時(shí)鐘1T模式   當(dāng)時(shí)修改為0x44主要是怕對(duì)定時(shí)器1的配置造成干擾
    //AUXR |= 0x04;        //定時(shí)器時(shí)鐘1T模式  原版
    T2L = 0x40;            //設(shè)置定時(shí)初值
    T2H = 0xA2;            //設(shè)置定時(shí)初值
    AUXR |= 0x10;        //定時(shí)器2開始計(jì)時(shí)
    IE2 = ET2;          //使能定時(shí)器中斷
}
void TM2_Isr() interrupt 12 using 1
{
    count_flag++;
    if(count_flag==1000)
    {
     P24=!P24;
     count_flag=0;
     AUXINTIF &= ~T2IF; //清中斷標(biāo)志
    }                             
}


以上兩個(gè)函數(shù)均從STC-ISP下載器里面的例程復(fù)制過來的。好資源要懂得利用。


要注意開啟定時(shí)器的計(jì)時(shí)功能,要開啟中斷;之前忘了加進(jìn)去了,查了一個(gè)晚上,還以為是寄存器干擾問題。經(jīng)大佬指點(diǎn)才知道忘開中斷了。*************************************    IE2 = ET2;          //使能定時(shí)器2中斷

當(dāng)多個(gè)函數(shù)共同使用到同一個(gè)寄存器時(shí),要注意賦值問題,否則會(huì)出現(xiàn)多次重置寄存器的情況,導(dǎo)致程序跑飛。所以官網(wǎng)數(shù)據(jù)手冊(cè)尤為重要,要清楚知道一個(gè)位的功能和作用

鏈接:
游客,本帖隱藏的內(nèi)容需要積分高于 1 才可瀏覽,您當(dāng)前積分為 0

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:689044 發(fā)表于 2020-2-5 15:37 | 只看該作者
stc8官網(wǎng)數(shù)據(jù)手冊(cè)錯(cuò)誤好多,上了好多當(dāng)
回復(fù)

使用道具 舉報(bào)

板凳
ID:613800 發(fā)表于 2020-4-25 14:40 | 只看該作者
datianli 發(fā)表于 2020-2-5 15:37
stc8官網(wǎng)數(shù)據(jù)手冊(cè)錯(cuò)誤好多,上了好多當(dāng)

額,可能哪里細(xì)節(jié)沒注意到吧
回復(fù)

使用道具 舉報(bào)

地板
ID:675799 發(fā)表于 2020-5-2 17:17 來自觸屏版 | 只看該作者
datianli 發(fā)表于 2020-2-5 15:37
stc8官網(wǎng)數(shù)據(jù)手冊(cè)錯(cuò)誤好多,上了好多當(dāng)

都有什么錯(cuò)的地方
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人在线影院 | 日韩精品一区二区三区久久 | 国产资源视频 | 欧美成人激情视频 | 天天操综合网站 | 一区二区三区四区在线播放 | 久久婷婷香蕉热狠狠综合 | 99精品99 | 国产91成人 | 好姑娘影视在线观看高清 | 亚洲精品久久久久久国产精华液 | 国产高清免费视频 | 七七婷婷婷婷精品国产 | 亚洲一区二区视频 | 欧美一级黄 | 91影院| 91社区在线高清 | 一区二区三区四区在线 | 国产人免费人成免费视频 | 亚洲va欧美va天堂v国产综合 | 精品国产一区探花在线观看 | av网站在线看 | 欧美精品乱码久久久久久按摩 | 成人av免费播放 | 免费视频99| 国内自拍视频在线观看 | 国产精品免费一区二区三区四区 | 免费午夜剧场 | 欧美日韩中文字幕 | 特黄小视频 | 成人午夜视频在线观看 | 欧美日韩大片 | 神马影院一区二区三区 | 成人精品 | 一区二区三区在线电影 | 91综合在线观看 | 欧美成视频 | 久久亚洲国产精品 | 精品久久久久久亚洲精品 | 国产成人福利在线观看 | 亚洲精品黄色 |