99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

STC單片機學習積累

1

51單片機的data,xdata,code

dATa: 固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼也最小。

idATa:固定指前面0x00-0xff的256個RAM,其中前128和dATa的128完全相同,只是因為訪問的方式不同。idATa是用類似C中的指針方式訪問的。匯編中的語句為:mox ACC,@Rx.(不重要的補充:c中idATa做指針式的訪問效果很好)

xdATa: 外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

pdATa: 外部擴展RAM的低256個字節,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG, 建議少用。但也有他的優點,具體用法屬于中級問題,這里不提。

全部回復(5)
正序查看
倒序查看
dulai1985
LV.10
2
2013-11-01 15:48

const用法詳解                              另外一個解釋

0
回復
dulai1985
LV.10
3
2013-11-01 17:01
@dulai1985
const用法詳解                另外一個解釋

在單片機學習、開發和應用中,IO口的配置對功能的實現起著重要的作用,下面介紹常見的四種配置,而現在很多單片機都兼有這四種配置,可供選擇。

一.準雙向口配置

如下圖,當IO輸出為高電平時,其驅動能力很弱,外部負載很容易將其拉至低電平。當IO輸出為低電平時,其驅動能力很強,可吸收相當大的電流。

準雙向口有三個上拉晶體管,一個“極弱上拉”,當端鎖存器為邏輯“1”時打開,當端口懸空時,“極弱上拉”將端口上拉至高電平。

第二個上拉晶體管為“弱上拉”,當端口鎖存器為邏輯“1”且端口本身也為“1”時打開,此上拉提供的電流,使準雙向口輸出為“1”。如果此時端口被外部裝置拉到邏輯“0”時,通過施密特觸發器,控制“弱上拉”關閉,而“極弱上拉”維持開狀態,為了把這個端口拉低,外部裝置必須有足夠的灌電流能力,使管腳上的電壓,降到門檻電以下。

第三個上拉晶體管為“強上拉”,當端口鎖存器由“0”跳變到“1”時,這個上拉用來加快端口由邏輯“0”到邏輯“1”的轉換速度。

準雙向口做為輸入時,通個一個施密特觸如器和一個非門,用以干擾和濾波。

準雙向口用作輸入時,可對地接按鍵,如下圖1,當然也可以去掉R1直接接按鍵,當按鍵閉合時,端口被拉至低電平,當按鍵松開時,端口被內部“極弱上拉”晶體管拉至高電平。當端口作為輸出時,不應對地外接LED如圖形控制,這樣端口的驅動能力很弱,LED只能發很微弱的光,如果要驅動LED,要采用圖3的方法,這樣準雙向口在輸出為低時,可吸收20mA的電流,故能驅動LED。圖4的方法也可以,不過LED不發光時,端口要吸收收很大電流。

二.開漏輸出配置

這種配置,關閉所有上拉晶體管,只驅動下拉晶體管,下拉與準雙向口下拉配置相同,因此只能輸出低電平(吸收電流),和高阻狀態。不能輸出高電平(輸也電流)。如果要作為邏輯輸出,必須接上拉電阻到VCC。這種配置也可以通過上圖3和圖4來驅動LED。

三.推挽輸出配置

這種配置的下拉與準雙向口和開漏配置相同,具有較強的拉電流能力,不同的是,具有持續的強上拉。因此可以用上圖2的方法來驅動LED。

四.僅為輸入配置(高阻配置)

這種配置不能輸出電流,也不能有收電流,只能作為輸入數據使用。

以上四種配置各有其特點,在使用中應根據其特點靈活運用。

準雙向口的最大特點是既可以作為輸入,也可以作為輸出,不需要通過控制切換。

推挽輸出的特點是,無論輸也高電平還是低電平都有較大的驅動能力,在輸也高電平時,也能直接點亮LED,這在準雙向口中是不能辦到的。這種配置不宜作為輸入,因為這需要外部設備有很強的拉電流的能胃。

僅為輸入配置的特點是端口只能作為輸入使用,可以獲得很高的輸入阻抗,在有模擬比較器或ADC的端口中用得較多。

開漏輸出配置與準又向口相似,但內部沒有上拉電阻。有很好的電氣兼容性,外部接上拉電阻到3V電源,就能和3V邏輯器件連接。外部接上拉電阻到5V電源,就要以和5V器件連接。

需要說明的是以上四種配置均可以作為輸入,也就是都可以檢測端的邏輯狀態,但其特性不同,不是每種配置都可以直接接按鍵。

0
回復
dulai1985
LV.10
4
2013-11-05 15:20
@dulai1985
單片機的幾種IO口配置在單片機學習、開發和應用中,IO口的配置對功能的實現起著重要的作用,下面介紹常見的四種配置,而現在很多單片機都兼有這四種配置,可供選擇。一.準雙向口配置如下圖,當IO輸出為高電平時,其驅動能力很弱,外部負載很容易將其拉至低電平。當IO輸出為低電平時,其驅動能力很強,可吸收相當大的電流。準雙向口有三個上拉晶體管,一個“極弱上拉”,當端鎖存器為邏輯“1”時打開,當端口懸空時,“極弱上拉”將端口上拉至高電平。第二個上拉晶體管為“弱上拉”,當端口鎖存器為邏輯“1”且端口本身也為“1”時打開,此上拉提供的電流,使準雙向口輸出為“1”。如果此時端口被外部裝置拉到邏輯“0”時,通過施密特觸發器,控制“弱上拉”關閉,而“極弱上拉”維持開狀態,為了把這個端口拉低,外部裝置必須有足夠的灌電流能力,使管腳上的電壓,降到門檻電以下。第三個上拉晶體管為“強上拉”,當端口鎖存器由“0”跳變到“1”時,這個上拉用來加快端口由邏輯“0”到邏輯“1”的轉換速度。準雙向口做為輸入時,通個一個施密特觸如器和一個非門,用以干擾和濾波。[圖片]準雙向口用作輸入時,可對地接按鍵,如下圖1,當然也可以去掉R1直接接按鍵,當按鍵閉合時,端口被拉至低電平,當按鍵松開時,端口被內部“極弱上拉”晶體管拉至高電平。當端口作為輸出時,不應對地外接LED如圖形控制,這樣端口的驅動能力很弱,LED只能發很微弱的光,如果要驅動LED,要采用圖3的方法,這樣準雙向口在輸出為低時,可吸收20mA的電流,故能驅動LED。圖4的方法也可以,不過LED不發光時,端口要吸收收很大電流。[圖片]二.開漏輸出配置這種配置,關閉所有上拉晶體管,只驅動下拉晶體管,下拉與準雙向口下拉配置相同,因此只能輸出低電平(吸收電流),和高阻狀態。不能輸出高電平(輸也電流)。如果要作為邏輯輸出,必須接上拉電阻到VCC。這種配置也可以通過上圖3和圖4來驅動LED。[圖片]三.推挽輸出配置這種配置的下拉與準雙向口和開漏配置相同,具有較強的拉電流能力,不同的是,具有持續的強上拉。因此可以用上圖2的方法來驅動LED。[圖片]四.僅為輸入配置(高阻配置)這種配置不能輸出電流,也不能有收電流,只能作為輸入數據使用。[圖片]以上四種配置各有其特點,在使用中應根據其特點靈活運用。準雙向口的最大特點是既可以作為輸入,也可以作為輸出,不需要通過控制切換。推挽輸出的特點是,無論輸也高電平還是低電平都有較大的驅動能力,在輸也高電平時,也能直接點亮LED,這在準雙向口中是不能辦到的。這種配置不宜作為輸入,因為這需要外部設備有很強的拉電流的能胃。僅為輸入配置的特點是端口只能作為輸入使用,可以獲得很高的輸入阻抗,在有模擬比較器或ADC的端口中用得較多。開漏輸出配置與準又向口相似,但內部沒有上拉電阻。有很好的電氣兼容性,外部接上拉電阻到3V電源,就能和3V邏輯器件連接。外部接上拉電阻到5V電源,就要以和5V器件連接。需要說明的是以上四種配置均可以作為輸入,也就是都可以檢測端的邏輯狀態,但其特性不同,不是每種配置都可以直接接按鍵。
單片機IO口的使用對所有單片機玩家來說都是“家常便飯”,但是你真的了解IO口嗎?你真的能按你的需要配置IO口嗎?

    一、準雙向口輸出

        準雙向口輸出類型可用作輸出和輸入功能而不需重新配置口線輸出狀態。這是因為當口線輸出為1時驅動能力很弱,允許外部裝置將其拉低。當引腳輸出為低時,它的驅動能力很強,可吸收相當大的電流。(準雙向口有3個上拉晶體管適應不同的需要)

      準雙向口讀外部狀態前,要先鎖存為 ‘1’,才可讀到外部正確的狀態.

   二、強推挽輸出

         推挽輸出配置的下拉結構與開漏輸出以及準雙向口的下拉結構相同,但當鎖存器為1時提供持續的強上拉。推挽模式一般用于需要更大驅動電流的情況。

  三、僅為輸入(高阻)

     輸入口帶有一個施密特觸發輸入以及一個干擾抑制電路。

  四、開漏輸出配置(若外加上拉電阻,也可讀)

   當口線鎖存器為0時,開漏輸出關閉所有上拉晶體管。當作為一個邏輯輸出時,這種配置方式必須有外部上拉,一般通過電阻外接到Vcc。如果外部有上拉電阻,開漏的I/O口還可讀外部狀態,即此時被配置為開漏模式的I/O口還可作為輸入I/O口。這種方式的下拉與準雙向口相同。

   開漏端口帶有一個施密特觸發輸入以及一個干擾抑制電路。

關于I/O口應用注意事項:

     1.有些是I/O口由低變高讀外部狀態時,讀不對,實際沒有損壞,軟件處理一下即可。       因為1T的8051單片機速度太快了,軟件執行由低變高指令后立即讀外部狀態,此時由于實際輸出還沒有變高,就有可能讀不對,正確的方法是在軟件設置由低變高后加1到2個空操作指令延時,再讀就對了.

    有些實際沒有損壞,加上拉電阻就OK了有些是外圍接的是NPN三極管,沒有加上拉電阻,其實基極串多大電阻,I/O口就應該上拉多大的電阻,或者將該I/O口設置為強推挽輸出.

  2.驅動LED發光二極管沒有加限流電阻,建議加1K以上的限流電阻,至少也要加470歐姆以上

     做行列矩陣按鍵掃描電路時,實際工作時沒有加限流電阻,實際工作時可能出現2個I/O口均輸出為低,并且在按鍵按下時,短接在一起,我們知道一個CMOS電路的2個輸出腳不應該直接短接在一起,按鍵掃描電路中,此時一個口為了讀另外一個口的狀態,必須先置高才能讀另外一個口的狀態,而8051單?片機的弱上拉口在由0變為1時,會有2時鐘的強推挽高輸出電流輸出到另外一個輸出為低的I/O口,就有可能造成I/O口損壞.建議在其中的一側加1K限流電阻,或者在軟件處理上,不要出現按鍵兩端的I/O口同時為低.

一種典型三極管控制電路:

如果用弱上拉控制,建議加上拉電阻R1(3.3K~10K),如果不加上拉電阻R1(3.3K~10K),建議R2的值在15K以上,或用強推挽輸出。
 
典型發光二極管控制電路:
       推挽/強上拉口,用拉電流驅動發光二極管
    弱上拉/準雙向口,用灌電流驅動發光二極管限流電阻盡量大于1K,最小不要小于470Ω
 
混合電壓供電系統3V/5V器件I/O口互連
 
          5V單片機連接3.3V器件時,為防止3.3V器件承受不了5V,可將相應的5V單片機I/O口先串一個330Ω的限流電阻到3.3V器件I/O口,程序初始化時將5V器件的I/O口設置成開漏配置,斷開內部上拉電阻,相應的3.3V器件I/O口外部加10K上拉電阻到3.3V器件的Vcc,這樣高電平是3.3V,低電平是0V,輸入輸出一切正常。
 
 
 
         3V單片機連接5V器件時,為防3V器件承受不了5V,如果相應的I/O口是輸入,可在該I/O口上串接一個隔離二極管,隔離高壓部分。外部信號電壓高于單片機工作電壓時截止,I/O口因內部上拉到高電平,所以讀I/O口狀態是高電平;外部信號電壓為低時導通,I/O口被鉗位在0.7V,小于0.8V時單片機讀I/O口狀態是低電平。
 
 
 3V單片機連接5V器件時,為防止3V器件承受不了5V,如果相應的I/O口是輸出,可用一個NPN三極管隔離
 
 
 
如何讓I/O口上電復位時為低電平
   普通8051單片機上電復位時普通I/O口為弱上拉高電平輸出,而很多實際應用要求上電時某些I/O口為低電平輸出,否則所控制的系統(如馬達)就會誤動作,現STC12系列單片機由于既有弱上拉輸出又有強推挽輸出,就可以很輕松的解決此問題。
   現可在STC12系列單片機I/O口上加一個下拉電阻(1K/2K/3K),這樣上電復位時,雖然單片機內部I/O口是弱上拉/高電平輸出,但由于內部上拉能力有限,而外部下拉電阻又較小,無法將其拉高,所以該I/O口上電復位時外部為低電平。如果要將此I/O口驅動為高電平,可將此I/O口設置為強推挽輸出,而強推挽輸出時,I/O口驅動電流可達20mA,故肯定可以將該口驅動為高電平輸出。
 
PWM輸出時I/O口的狀態(針對STC系列)
0
回復
dulai1985
LV.10
5
2013-11-21 10:08
@dulai1985
單片機IO口的使用對所有單片機玩家來說都是“家常便飯”,但是你真的了解IO口嗎?你真的能按你的需要配置IO口嗎?    一、準雙向口輸出        準雙向口輸出類型可用作輸出和輸入功能而不需重新配置口線輸出狀態。這是因為當口線輸出為1時驅動能力很弱,允許外部裝置將其拉低。當引腳輸出為低時,它的驅動能力很強,可吸收相當大的電流。(準雙向口有3個上拉晶體管適應不同的需要)      準雙向口讀外部狀態前,要先鎖存為‘1’,才可讀到外部正確的狀態.   二、強推挽輸出         推挽輸出配置的下拉結構與開漏輸出以及準雙向口的下拉結構相同,但當鎖存器為1時提供持續的強上拉。推挽模式一般用于需要更大驅動電流的情況。  三、僅為輸入(高阻)     輸入口帶有一個施密特觸發輸入以及一個干擾抑制電路。  四、開漏輸出配置(若外加上拉電阻,也可讀)   當口線鎖存器為0時,開漏輸出關閉所有上拉晶體管。當作為一個邏輯輸出時,這種配置方式必須有外部上拉,一般通過電阻外接到Vcc。如果外部有上拉電阻,開漏的I/O口還可讀外部狀態,即此時被配置為開漏模式的I/O口還可作為輸入I/O口。這種方式的下拉與準雙向口相同。   開漏端口帶有一個施密特觸發輸入以及一個干擾抑制電路。關于I/O口應用注意事項:     1.有些是I/O口由低變高讀外部狀態時,讀不對,實際沒有損壞,軟件處理一下即可。       因為1T的8051單片機速度太快了,軟件執行由低變高指令后立即讀外部狀態,此時由于實際輸出還沒有變高,就有可能讀不對,正確的方法是在軟件設置由低變高后加1到2個空操作指令延時,再讀就對了.    有些實際沒有損壞,加上拉電阻就OK了有些是外圍接的是NPN三極管,沒有加上拉電阻,其實基極串多大電阻,I/O口就應該上拉多大的電阻,或者將該I/O口設置為強推挽輸出.  2.驅動LED發光二極管沒有加限流電阻,建議加1K以上的限流電阻,至少也要加470歐姆以上     做行列矩陣按鍵掃描電路時,實際工作時沒有加限流電阻,實際工作時可能出現2個I/O口均輸出為低,并且在按鍵按下時,短接在一起,我們知道一個CMOS電路的2個輸出腳不應該直接短接在一起,按鍵掃描電路中,此時一個口為了讀另外一個口的狀態,必須先置高才能讀另外一個口的狀態,而8051單?片機的弱上拉口在由0變為1時,會有2時鐘的強推挽高輸出電流輸出到另外一個輸出為低的I/O口,就有可能造成I/O口損壞.建議在其中的一側加1K限流電阻,或者在軟件處理上,不要出現按鍵兩端的I/O口同時為低.一種典型三極管控制電路:[圖片]如果用弱上拉控制,建議加上拉電阻R1(3.3K~10K),如果不加上拉電阻R1(3.3K~10K),建議R2的值在15K以上,或用強推挽輸出。 典型發光二極管控制電路:[圖片]       推挽/強上拉口,用拉電流驅動發光二極管[圖片]    弱上拉/準雙向口,用灌電流驅動發光二極管限流電阻盡量大于1K,最小不要小于470Ω 混合電壓供電系統3V/5V器件I/O口互連           5V單片機連接3.3V器件時,為防止3.3V器件承受不了5V,可將相應的5V單片機I/O口先串一個330Ω的限流電阻到3.3V器件I/O口,程序初始化時將5V器件的I/O口設置成開漏配置,斷開內部上拉電阻,相應的3.3V器件I/O口外部加10K上拉電阻到3.3V器件的Vcc,這樣高電平是3.3V,低電平是0V,輸入輸出一切正常。[圖片]            3V單片機連接5V器件時,為防3V器件承受不了5V,如果相應的I/O口是輸入,可在該I/O口上串接一個隔離二極管,隔離高壓部分。外部信號電壓高于單片機工作電壓時截止,I/O口因內部上拉到高電平,所以讀I/O口狀態是高電平;外部信號電壓為低時導通,I/O口被鉗位在0.7V,小于0.8V時單片機讀I/O口狀態是低電平。[圖片]   3V單片機連接5V器件時,為防止3V器件承受不了5V,如果相應的I/O口是輸出,可用一個NPN三極管隔離 [圖片]  如何讓I/O口上電復位時為低電平   普通8051單片機上電復位時普通I/O口為弱上拉高電平輸出,而很多實際應用要求上電時某些I/O口為低電平輸出,否則所控制的系統(如馬達)就會誤動作,現STC12系列單片機由于既有弱上拉輸出又有強推挽輸出,就可以很輕松的解決此問題。   現可在STC12系列單片機I/O口上加一個下拉電阻(1K/2K/3K),這樣上電復位時,雖然單片機內部I/O口是弱上拉/高電平輸出,但由于內部上拉能力有限,而外部下拉電阻又較小,無法將其拉高,所以該I/O口上電復位時外部為低電平。如果要將此I/O口驅動為高電平,可將此I/O口設置為強推挽輸出,而強推挽輸出時,I/O口驅動電流可達20mA,故肯定可以將該口驅動為高電平輸出。[圖片] PWM輸出時I/O口的狀態(針對STC系列)[圖片]

bdata就是可位尋址內部數據存儲區 允許位與字節混合訪問(16B) 盛群的單片機我沒有用過 單片機的原理應該和51的也差不多吧 

#define unsigned char uchar; 

uchar bdata sta; 

sbit RX-DR=sta^6;

0
回復
dulai1985
LV.10
6
2013-11-21 10:09
@dulai1985
bdata就是可位尋址內部數據存儲區允許位與字節混合訪問(16B)盛群的單片機我沒有用過單片機的原理應該和51的也差不多吧 #defineunsignedcharuchar; ucharbdatasta; sbitRX-DR=sta^6;
uchar bdata問題#define uchar unsigned charuchar DATA = 0x01;uchar bdata sta;sbit RX_DR = sta^6;sbit TX_DS = sta^5;sbit MAX_RT = sta^4;這什么意思呢,RX_DR=1;這樣的話, 對什么腳操作呢------解決方案--------------------uchar bdata sta;//在位尋址區定義一個變量sbit RX_DR = sta^6;//聲明RX_DR對應sta的位6RX_DR=1;//對sta的位6置1
0
回復
主站蜘蛛池模板: 精品欧美不卡一区二区在线观看 | 欧美日韩国产综合视频 | 他也色在线视频 | 97亚洲色欲色欲综合网 | 日韩爱爱小视频 | 亚洲区激情区无码区日韩区 | 在线观看免费网页欧美成 | 大地资源在线影视播放 | 国产精品久久久久无码 | 天天干网 | 99视频免费| 久久影院午夜片一区 | 野花在线观看免费 | av蜜臀| 国产精品日韩专区 | 国产欧美日韩精品一区 | 日本一二区在线观看 | 久99热 | 久久亚洲sm情趣捆绑调教 | 国产伦精品一区二区三区四区视频 | 91夜夜蜜桃臀一区二区三区 | 精品AV无码国产一区二区 | 国产精品一区二区三区视频网站 | 国产伦精品免费视频 | 日本一区二区三区免费软件 | 亚洲一区二区三区视频在线 | 国产麻豆 | 久久超乳爆乳中文字幕 | 肉岳疯狂69式激情的高潮 | 在线观看91精品国产入口 | 精品十八禁免费观看 | 国产日韩免费观看 | 日韩av有码在线 | 久久99视频精品 | 日韩一区二区三区福利视频 | 久久久久久久福利 | 麻豆精品国产 | 亚洲日本国产 | 在线观看青青草 | 色综合精品视频 | 四虎国产精品永久在线国在线 |