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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

用sbit定義可位尋址的特殊功能寄存器時(shí)的地址轉(zhuǎn)換-51單片機(jī)C編程

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年09月01日   【字體:

80C51單片機(jī)C編程時(shí)中,用sbit定義可位尋址的特殊功能寄存器的位變量(感覺說是常量更確切)時(shí),編譯器會(huì)進(jìn)行處理,把sbit 后面給的地址值 轉(zhuǎn)換成 相應(yīng)的可進(jìn)行位尋址的特殊功能寄存器 bit位 的位地址。轉(zhuǎn)換不了時(shí)uVision報(bào)錯(cuò),編譯不通過。

比如,在頭文件reg51.h中,定義了 sfr P0 = 0x80,該地址標(biāo)識的是51芯片的P0端口的8個(gè)引腳。(一個(gè)字節(jié))。
同時(shí)reg51.h中還定義了 sfr SP = 0x81。

如果自己定義 sbit TEST1 = 0x81;實(shí)驗(yàn)時(shí)會(huì)發(fā)現(xiàn):TEST1實(shí)際表示的是0x80標(biāo)識的8bits中的第二個(gè)bit位,表示成0x80.1。

 

按照一般的理解:TEST1應(yīng)該是地址0x81對應(yīng)的8bit的第一個(gè)bit位(0x81.0),但是事實(shí)不是這樣的;

如果定義 sbit TEST4 = 0x84,表示的是0x80.4;
sbit TEST7 = 0x87,表示的是0x80.7。

但是當(dāng)末尾大于7后,比如 sbit TEST8 = 0x88,表示的是0x88.0, 而不是0x81.0;
sbit TEST9 = 0x89;表示的是0x88.1; 依次類推到0x8f表示0x88.7。


開始是用實(shí)驗(yàn)板上的LED來檢查,后來在uVision里面軟調(diào)試,看Parallel Port0。看Memory是沒用的,特殊功能寄存器的地址和內(nèi)存空間地址是兩個(gè)東西;后來看Symbols,終于把sbit定義的控制位的實(shí)際地址看清楚,但是沒想明白,為甚么是這樣,規(guī)律是怎樣的。

查了一下資料,原來特殊功能寄存器中不是所有字節(jié)都可進(jìn)行位尋址,支持位尋址字節(jié)地址的是:
0x80,0x88,0x90, 0x98, 0xA0, 0xA0, 0xA8, 0xB0, 0xB8, 0xC0, 0xC8, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8
共16個(gè),這些地址不連是續(xù),能被8整除, 即字節(jié)地址是以8或0為尾數(shù)的

 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 成人午夜免费福利视频 | 日韩1区 | a级性视频| 久久久久久久久久久高潮一区二区 | 欧美一级在线观看 | 欧美一区二区三区在线观看 | 亚洲狠狠爱 | 在线成人 | 久色网 | 中文字幕精品一区 | 成人精品在线视频 | 亚洲一区二区av在线 | 日韩网站在线 | 中文字幕在线免费观看 | 国产精品一区二区三区久久久 | 欧美一区二区三区高清视频 | 亚洲欧美一区二区三区在线 | 日日干日日射 | 精品国产乱码久久久久久牛牛 | 亚洲视频免费观看 | 在线免费国产视频 | 玩丰满女领导对白露脸hd | 欧美日韩国产三级 | 在线成人精品视频 | 欧美理论 | 成人老司机 | 国产一区二区毛片 | 国产激情免费视频 | 国产在线视频在线观看 | 亚洲电影专区 | 看av网 | 综合久久99 | 91精品国产乱码久久久久久久 | 精品视频一区二区在线观看 | 国产一区91在线 | 欧美日韩在线一区二区 | 午夜精品久久 | 欧美成人精品欧美一级 | 日本午夜视频 | 一区在线视频 | 国产精品一区二区在线观看 |