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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教STC15系列單片機中的AUXR寄存器使用

  [復制鏈接]
回帖獎勵 25 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
AUXR = 0x14;                    //T2為1T模式, 并啟動定時器2
AUXR |= 0x01;                    //選擇定時器2為串口1的波特率發生器

這里面的AUXR明明是一個寄存器,為什么分開寫? 為什么第二個是   AUXR “|”這里面的 |是什么意思?
我是不是可以直接寫成:
AUXR = 0x14;  (既允許打開定時器2,定時器2是8051  12倍,不分頻。又可以直接選擇定時器2 位UART1的波特率發生器)?
兩個問題。




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

使用道具 舉報

沙發
ID:25310 發表于 2019-10-7 09:09 | 只看該作者
要合并就是  AUXR = 0x15;    第二句話是位操作,將0x01按位或到AUXR。
回復

使用道具 舉報

板凳
ID:25310 發表于 2019-10-7 09:11 | 只看該作者
合并后為: AUXR = 0x15;   
AUXR |= 0x01; 是按位或   0x01 到 AUXR 的意思
   
回復

使用道具 舉報

地板
ID:609989 發表于 2019-10-7 09:13 | 只看該作者
這句寫錯了:
是:我是不是可以直接寫成:AUXR = 0x15;  (既允許打開定時器2,定時器2是8051  12倍,不分頻。又可以直接選擇定時器2 位UART1的波特率發生器)?
回復

使用道具 舉報

5#
ID:25310 發表于 2019-10-7 09:13 | 只看該作者
合并后為: AUXR = 0x15;   
  |   是按位或 的意思
回復

使用道具 舉報

6#
ID:609989 發表于 2019-10-7 09:15 | 只看該作者
寫錯了一句:我是不是可以直接寫成:AUXR = 0x15;  (既允許打開定時器2,定時器2是8051  12倍,不分頻。又可以直接選擇定時器2 位UART1的波特率發生器)?
回復

使用道具 舉報

7#
ID:609989 發表于 2019-10-7 11:32 | 只看該作者
pcbboy 發表于 2019-10-7 09:11
合并后為: AUXR = 0x15;   
AUXR |= 0x01; 是按位或   0x01 到 AUXR 的意思

往往是最基本的容易疏忽,謝謝。之前一直用“||”(對應一個字節),沒用過單個“|”(對應字節中的某位)。
擴展了一個問題,如果我相對AUXR 第二位單獨操作,應該怎么寫? AUXR | = 0x02?;第三位單獨操作,應該
寫成: AUXR | = 0x04;。。。第8位“AUXR | = 0x80”.
回復

使用道具 舉報

8#
ID:390416 發表于 2019-10-7 12:36 來自手機 | 只看該作者
我們人人學會單片機的課程,就是這樣操作的,意思就是,你單獨控制某一位,而其他位則是保持不變。郭傻瓜得課程,就是直接賦值了,是不安全的寫法。
回復

使用道具 舉報

9#
ID:609989 發表于 2019-10-7 15:45 | 只看該作者
人人學會單片機 發表于 2019-10-7 12:36
我們人人學會單片機的課程,就是這樣操作的,意思就是,你單獨控制某一位,而其他位則是保持不變。郭傻瓜得 ...

1.他也是單獨控制寄存器的某一位,假如控制 SCON寄存器中的 REN(第5位),人家直接寫REN=1,不用就 REN=0,也挺好理解。
你的可以寫成:SCON | = 0x10。
你們 是一樣的 。
2.對于控制位還是控制字節,我感覺對于初學者不了解的,使用位控制,可以使他們充分理解寄存器功能。
對于比較熟練的,直接進行字節賦值,可以減少程序長度。
回復

使用道具 舉報

10#
ID:213173 發表于 2019-10-8 13:20 | 只看該作者
STC15系列單片機中的AUXR寄存器不支持位操作,這是一個特殊功能寄存器,并且各個位的功能甚至沒有直接關聯。因此對其中某一位或某幾位操作時不能隨意改變其它位的狀態,所以用按位與“&”和按位或“|”的方式操作其中某一位或某幾位就不會改變其它位的狀態。這個方法同樣適用于支持位操作的寄存器,可以使代碼簡潔高效。
回復

使用道具 舉報

11#
ID:881491 發表于 2021-2-4 11:09 | 只看該作者
AUXR |= 0x04;                //定時器時鐘1T模式
回復

使用道具 舉報

12#
ID:382454 發表于 2021-2-4 15:36 | 只看該作者
要多看看例程了,  AUXR “|”這里面的 |  是單單干寄存里的單單某一位,而其它的原封不動。
回復

使用道具 舉報

13#
ID:206350 發表于 2021-11-24 14:42 | 只看該作者
按照位或,學習了!!。
回復

使用道具 舉報

14#
ID:897866 發表于 2021-11-27 17:40 | 只看該作者
合并后就是  AUXR = 0x15;   
第二句應該是位操作,將0x01按位或到AUXR。
回復

使用道具 舉報

15#
ID:975054 發表于 2022-3-1 21:57 | 只看該作者
wulin 發表于 2019-10-8 13:20
STC15系列單片機中的AUXR寄存器不支持位操作,這是一個特殊功能寄存器,并且各個位的功能甚至沒有直接關聯 ...

厲害了我的哥! 手冊里 對PCON 、AUXR等寄存器的位功能描述比較分散,我也是看了又看才知道。
熟悉對的話兩種寫法都可以,不熟悉就分開確實安心些!
回復

使用道具 舉報

16#
ID:975054 發表于 2022-3-1 23:35 | 只看該作者
void Uart1Init()          //串口1初始化;
{
    SCON = 0x40;          //串口1模1: 0100: 010模式1,可變波特率8位數據方式,0禁收只發(關鍵:原來0X50可收,平時斷開只發不收0X40才能杜絕收發串擾!已驗證ok!);
    TMOD = 0x20;    //T1模2: 8位自動重載模式;PCON:未設定,復位值0011,0000默認SMOD=0波特率不加速!;
    TL1 = BRT;            //T1: BRT:相當于串口1使用獨立波特率發射器為波特率發生器; 也可前面不定義直接賦值(如:0xDC);
    TH1 = BRT;      //    計數寄存器高低各一個,8位自動重載模式周期計算公式:定時器周期=(256–TH1)/SYSclk (自動重載);
    TR1 = 1;          //    T1運行控制位:軟件置位和清零。TR1=1允許T1開始計數,TR1=0時禁止;
  //AUXR = 0x40;          //輔助寄存器(特殊,不可位尋址),建議分開寫成:AUXR |= 0x40;AUXR &= 0xFE;
    AUXR |= 0x40;   //    B6(T1x12):T1速度控制位,"1"選T1且1T模式不分頻FOSC/1;
    AUXR &= 0xFE;   //    B0(S1ST2):串口1波特率發射器選擇位,“0”選T1為波特率發射器);
  //bufferPtr = 0;  //只發不收可去掉!改0X00無變化;          
    Uart1Busy = 0;  //
    delay_ms(100);  //延時0.1S;
回復

使用道具 舉報

17#
ID:47286 發表于 2022-3-2 00:47 來自手機 | 只看該作者
不能位操作的寄存器就要整個賦值 你那么寫當然可以 但不如手冊上那么寫方便 也容易出錯
回復

使用道具 舉報

18#
ID:57657 發表于 2022-3-2 11:33 | 只看該作者
AUXR寄存器由8個功能不同的位寄存器組成,不可位尋址。
使用C語言的 &= ,|= 運算符按位配置。
回復

使用道具 舉報

19#
ID:983641 發表于 2022-3-2 15:57 | 只看該作者
AUXR寄存器講的太好了。
回復

使用道具 舉報

20#
ID:61261 發表于 2022-3-4 13:09 | 只看該作者
stm32搞多了,51的也忘差不多了
回復

使用道具 舉報

21#
ID:382454 發表于 2022-3-5 20:08 | 只看該作者
AUXR |= 0x01;         這個代表只動它的第一位,置1,其它的不會動。
回復

使用道具 舉報

22#
ID:983641 發表于 2022-3-5 21:54 | 只看該作者
AUXR寄存器 主要是什么作用?
回復

使用道具 舉報

23#
ID:624769 發表于 2022-3-5 22:12 | 只看該作者
youlinys 發表于 2022-3-5 21:54
AUXR寄存器 主要是什么作用?

你這問題問得…… , 名稱上來講,就是輔助寄存器。
不同的單片機,用處不同,

樓主貼的是 STC15 系列的,基本都是牽涉到定時器的設置
如果你看 STC89 的手冊,里面還有 控制 ALE 的開關。
如果你去看 STC12 的手冊, 里面還有 中斷開關。

所以,如果拋開型號不講,光說某個寄存器,壓根沒法泛泛回答。
回復

使用道具 舉報

24#
ID:1113460 發表于 2024-3-21 14:56 | 只看該作者
pcbboy 發表于 2019-10-7 09:09
要合并就是  AUXR = 0x15;    第二句話是位操作,將0x01按位或到AUXR。

確實如此,不過一般不合并吧,便于程序維護與修改。
回復

使用道具 舉報

25#
ID:517951 發表于 2024-3-24 10:35 | 只看該作者
=0x14; |=0x01; 兩條分開寫, 合并寫都是一樣的.
回復

使用道具 舉報

26#
ID:965189 發表于 2024-3-24 12:08 | 只看該作者
分開寫的好處是:不管之前打開了那些位,現在加上這一位。
回復

使用道具 舉報

27#
ID:1034262 發表于 2024-3-24 12:56 | 只看該作者
通常為了單獨控制某個位,就這樣操作的,也便于理解。
我常用方法:
AUXR = 0;
AUXR |= 0x04;   //T2 1T模式
AUXR |= 0x01;   //串口1選擇T2做波特率發生器
AUXR |= 0x10;   //啟動T2
回復

使用道具 舉報

28#
ID:419968 發表于 2024-3-24 15:38 | 只看該作者
AUXR |= 0x01;其實就是AUX = AUX | 0X1;
回復

使用道具 舉報

29#
ID:1069659 發表于 2024-3-25 17:54 | 只看該作者
AUXR |= 0x04;                //定時器時鐘1T模式
回復

使用道具 舉報

30#
ID:402383 發表于 2024-3-26 10:19 | 只看該作者
本帖最后由 fosu頑童 于 2024-3-26 10:24 編輯

1、AUXR |= 0x01等價于AUXR= AUXR|0X01 ,這是按位或運算,將AUXR的8位按高到低分別與0000 0001進行或運算。

2、兩語句可以合并寫,可以分開寫。
寫例程的人員是為了方便移植所以分開兩個語句寫出來,抑或是他想給讀者傳達的編程思路是先配置好定時器參數,最后再配置串口的設置。
回復

使用道具 舉報

31#
ID:1069659 發表于 2024-3-27 23:05 | 只看該作者
要合并:  AUXR = 0x15;   
第二句話是位操作,將0x01按位或到AUXR。
回復

使用道具 舉報

32#
ID:874002 發表于 2024-3-28 14:03 | 只看該作者
問問大佬:里面的EXTRAM位為1的話禁止訪問內部擴展ram,也就是說不能定義xdata的數據;但是上電的話EXTRAM默認是零嗎,如果默認為零的話是不是可以直接在程序中定義xdata數據。
回復

使用道具 舉報

33#
ID:993578 發表于 2024-3-29 10:51 | 只看該作者
合并后為: AUXR = 0x15;   
AUXR |= 0x01; 是按位或   0x01 到 AUXR 的意思
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 小草久久久久久久久爱六 | 最新黄色在线观看 | 精品国产一区二区三区免费 | www久久av| 九九热在线免费视频 | 成人免费淫片aa视频免费 | 视频一区二区三区四区五区 | 一级黄在线观看 | 精品一区二区在线观看 | 99热精品久久 | 亚洲成av人片在线观看 | 丁香五月网久久综合 | 国产在线精品区 | 国产在线观看网站 | 老头搡老女人毛片视频在线看 | 欧美综合在线视频 | 久久69精品久久久久久久电影好 | 噜啊噜在线 | 亚洲夜射 | 欧美成人精品一区二区男人看 | 国产一区二区久久久 | 免费的黄色片子 | 在线看黄免费 | 国产精品国产精品国产专区不卡 | 精品一区二区视频 | 欧美电影免费观看高清 | 久久毛片 | 美女久久| 欧美日韩视频在线第一区 | 亚洲在线视频 | 久久久婷 | 91资源在线 | 91精品久久久久久久久 | 亚洲网站在线观看 | 国产午夜精品视频 | 欧美久久免费观看 | 国产精品久久久久久久久免费高清 | 国产欧美综合在线 | 九九热这里只有精品6 | 中文字幕一区二区三区不卡 | 久久精品a级毛片 |