表2-1是在芯片手冊里截取出來的,比如SCON這個寄存器它的地址是98h,那么可以從reg52.h頭文件中找到“sfr SCON =0x98;”,用一個SCON的符號與0x98這個地址掛鉤,在51單片機的源代碼中直接操作SCON,就等于操作0x98這個地址,再對應一下手冊,0x98就是98h這個地址,也就是單片機內(nèi)部真正的SCON寄存器的地址。表2-1 STC89C51RC/RD+ 系列 8051單片機 串行口特殊功能寄存器 Serial I/O Port SRFs
所以說,98h、99h、B9h、A9h等都是單片機的內(nèi)部地址,而“Reset Value”這一列都是該寄存器復位后的默認值,比如98h的復位后默認值是0000 0000。
還有更多的關聯(lián)和掛鉤的。截取reg52.h文件中的部分代碼如下:
表 2-2 8051單片機特殊功能寄存器
那么如果要訪問P0.0和P0.1這兩個引腳該怎么處理呢?只需要使用sbit關鍵詞和符號“^”就可以,例如:
Sbit aa = P0^0;
Sbit bb = P0^1;
可以使得aa代表P0.0引腳,而bb代表P0.1管腳,并且可以看到通過這個sbit的定義,訪問到80h這個寄存器P0里的任何一位,如表2-3所列。
表 2-3 訪問P0口寄存器
51單片機就是這樣,可以用代碼控制所有的寄存器。
評論