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

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

QQ登錄

只需一步,快速開始

搜索
查看: 2938|回復(fù): 17
收起左側(cè)

我想把一個(gè)寄存器的一個(gè)位,引出了,但是出錯(cuò)了

  [復(fù)制鏈接]
ID:1004248 發(fā)表于 2022-8-9 19:11 | 顯示全部樓層 |閱讀模式
這個(gè)RI是頭文件定義的,S3RI是我自己加的
51hei圖片20220809191025.png
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-8-9 19:28 | 顯示全部樓層
不是所有的 寄存器 都能未尋址的,S3CON 恰好屬于不能位尋址的寄存器。
你需要補(bǔ)一下基礎(chǔ)知識(shí)啊。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-8-9 19:49 | 顯示全部樓層
哪里有S3RI?
回復(fù)

使用道具 舉報(bào)

ID:893997 發(fā)表于 2022-8-9 20:10 | 顯示全部樓層
這個(gè)地址無(wú)效
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2022-8-9 20:13 | 顯示全部樓層
本帖最后由 wulin 于 2022-8-9 21:00 編輯

注意:寄存器地址能夠被8整除的才可以進(jìn)行位操作,不能夠被8整除的不可以進(jìn)行位操作
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-8-9 21:18 | 顯示全部樓層
錯(cuò)誤出在229、230行,你把216~226行貼出來(lái)是什么意思?
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-8-9 21:24 | 顯示全部樓層

截圖就截了錯(cuò)誤頁(yè)面
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-8-9 21:31 | 顯示全部樓層
8051的寄存器只有1/8能位尋址
寄存器地址的低位為0和8的可以位尋址
除此之外,都不能位操作
回復(fù)

使用道具 舉報(bào)

ID:879348 發(fā)表于 2022-8-10 08:33 | 顯示全部樓層
在標(biāo)準(zhǔn)C中,位操作是通過(guò)或與等邏輯運(yùn)算進(jìn)行的,要習(xí)慣這種寫法,因?yàn)榇蟛糠謫纹瑱C(jī)都不支持位操作
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2022-8-10 13:04 | 顯示全部樓層
wulin 發(fā)表于 2022-8-9 20:13
注意:寄存器地址能夠被8整除的才可以進(jìn)行位操作,不能夠被8整除的不可以進(jìn)行位操作

STC32 除xfr寄存器外,其余sfr寄存器0x80~0xFF都可以位尋址操作。
  1. #include "STC32G.H"
  2. sbit a = P3M0 ^ 0;
  3. sbit b = P3M1 ^ 0;
  4. sbit c= DPL ^ 0;
  5. sbit d = DPH ^ 4;
  6. sbit e = SBUF ^ 3;
  7. sbit f = SP ^ 5;
  8. sbit g = AUXR2 ^ 6;
  9. sbit h = IAP_CONTR ^ 4;

  10. void main() {
  11.         while (1);
  12. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-8-10 14:27 來(lái)自觸屏版 | 顯示全部樓層
npn 發(fā)表于 2022-8-10 13:04
STC32 除xfr寄存器外,其余sfr寄存器0x80~0xFF都可以位尋址操作。

樓主貼圖顯示,他用的stc8
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-8-10 14:56 | 顯示全部樓層
npn 發(fā)表于 2022-8-10 13:04
STC32 除xfr寄存器外,其余sfr寄存器0x80~0xFF都可以位尋址操作。

人家這是STC8單片機(jī),不是STC32G32位單片機(jī)
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-8-10 17:05 | 顯示全部樓層
51單片機(jī)中:
20-2FH可以直接位尋址。
高端特殊寄存器(80H - FFH)中,地址能被8整除的可以位尋址。
其它內(nèi)存,需要位尋址,只能間接進(jìn)行。如將它傳送到A中,再位尋址A。
回復(fù)

使用道具 舉報(bào)

ID:57657 發(fā)表于 2022-8-10 17:46 | 顯示全部樓層
頭文件里的內(nèi)容嚴(yán)禁亂改,不支持位尋址的寄存器用 &=、 |= 運(yùn)算符字節(jié)操作即可。
回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2022-8-11 10:05 | 顯示全部樓層
#define S3RI  0x01              //S3CON.0
#define S3TI  0x02              //S3CON.1
#define S3RB8 0x04              //S3CON.2
#define S3TB8 0x08              //S3CON.3

UART3 中斷服務(wù)程序
-----------------------------*/
void Uart3() interrupt 17 using 0
{
       
if( S3CON & S3RI)
    {
                       
    S3CON &= ~S3RI;
       
                }
               
         if ((S3CON & S3TI)!= 0) {S3CON &= ~S3TI;busy=0; }
  
}
回復(fù)

使用道具 舉報(bào)

ID:25310 發(fā)表于 2022-8-11 10:08 | 顯示全部樓層
多看看官方的頭文件,里面其實(shí)都做了不少直接能用的,只是我們沒去看沿用舊的方法而已。

#define                S3_MODE0()                        S3CON &= ~(1<<7)        /* 串口3模式0,8位UART,波特率 = 定時(shí)器的溢出率 / 4  */
#define                S3_MODE1()                        S3CON |=  (1<<7)        /* 串口3模式1,9位UART,波特率 = 定時(shí)器的溢出率 / 4  */
#define                S3_8bit()                        S3CON &= ~(1<<7)        /* 串口3模式0,8位UART,波特率 = 定時(shí)器的溢出率 / 4  */
#define                S3_9bit()                        S3CON |=  (1<<7)        /* 串口3模式1,9位UART,波特率 = 定時(shí)器的溢出率 / 4  */
#define                S3_RX_Enable()                S3CON |=  (1<<4)        /* 允許串3接收                                                                             */
#define                S3_RX_Disable()                S3CON &= ~(1<<4)        /* 禁止串3接收                                                                             */
#define                TI3                                        (S3CON & 2) != 0        /* 判斷TI3是否發(fā)送完成                                                                 */
#define                RI3                                        (S3CON & 1) != 0        /* 判斷RI3是否接收完成                                                                 */
#define                SET_TI3()                        S3CON |=  (1<<1)        /* 設(shè)置TI3(引起中斷)                                                                 */
#define                CLR_TI3()                        S3CON &= ~(1<<1)        /* 清除TI3                                                                                         */
#define                CLR_RI3()                        S3CON &= ~1                        /* 清除RI3                                                                                         */
#define                S3TB8_SET()                        S3CON |=  (1<<3)        /* 設(shè)置TB8                                                                                         */
#define                S3TB8_CLR()                        S3CON &= ~(1<<3)        /* 清除TB8                                                                                         */
#define                S3_Int_Enable()                IE2   |=  (1<<3)        /* 串口3允許中斷                                                                     */
#define                S3_Int_Disable()        IE2   &= ~(1<<3)        /* 串口3禁止中斷                                                                     */
#define         S3_BRT_UseTimer3()        S3CON |=  (1<<6)        /* BRT select Timer3                                                                 */
#define         S3_BRT_UseTimer2()        S3CON &= ~(1<<6)        /* BRT select Timer2                                                                 */
#define                S3_USE_P00P01()                P_SW2 &= ~2                        /* UART3 使用P0口        默認(rèn)                                                     */
#define                S3_USE_P50P51()                P_SW2 |=  2                        /* UART3 使用P5口                                                                     */
回復(fù)

使用道具 舉報(bào)

ID:401564 發(fā)表于 2022-8-12 07:04 | 顯示全部樓層
pcbboy 發(fā)表于 2022-8-11 10:08
多看看官方的頭文件,里面其實(shí)都做了不少直接能用的,只是我們沒去看沿用舊的方法而已。

#define                S3_MO ...

STC早就把數(shù)據(jù)手冊(cè)上的所有寄存器名稱和位都用頭文件定義了的
但并不是所有的都是以"位"來(lái)定義的,大多是unsigned char 變量定義的
樓主這是想要用bit的,這不是什么好習(xí)慣,并不是所有的單片機(jī)C語(yǔ)言都支持位的,到時(shí)候換一個(gè)單片機(jī)類型,移植起來(lái)不方便,用unsigned char要好很多
回復(fù)

使用道具 舉報(bào)

ID:286223 發(fā)表于 2022-8-12 15:05 | 顯示全部樓層
pcbboy 發(fā)表于 2022-8-11 10:08
多看看官方的頭文件,里面其實(shí)都做了不少直接能用的,只是我們沒去看沿用舊的方法而已。

#define                S3_MO ...

  強(qiáng)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲欧美另类一区二区三区 | 99国内精品| 天天夜碰日日摸日日澡 | 国产日韩欧美一区二区 | 国产成人精品午夜视频免费 | 一区二区三区视频在线观看 | 欧美一区二区另类 | 成人av免费在线观看 | 亚洲视频欧美视频 | 精品91久久 | 国产成人精品久久二区二区 | 亚洲综合在线视频 | 国产精品永久久久久久久www | 超碰97人人人人人蜜桃 | 亚洲影视在线 | 一级午夜aaa免费看三区 | 一级毛片视频 | 亚洲天堂男人的天堂 | 一区精品在线观看 | 在线欧美亚洲 | 少妇一区在线观看 | 日韩在线视频免费观看 | 久久一级 | 国产精品国产 | 欧美精品一区二区三区四区 在线 | 日韩一区二区不卡 | 女人一区 | 北条麻妃99精品青青久久主播 | 欧美视频1区 | 午夜av在线 | 中国一级特黄真人毛片 | 欧美日韩在线成人 | 国产精品免费观看 | 日韩一二三区视频 | 99免费精品视频 | 午夜免费在线观看 | 国产精品国产 | 欧美国产日韩在线 | 一级aaaaaa毛片免费同男同女 | 久久www免费人成看片高清 | 91社区在线观看高清 |