前面兩篇文章我鋪墊了IO輸出高低電平的方法:
sbit LED = P1^0;//給一個IO定義名字
LED = 1;//操作這個IO的高低電平
P1 = 0xFF;//直接修改一組IO寄存器的數據
我們知道,C51里一共有4組IO,分別是P0,P1,P2,P3
每一組有8位,分別是.0 ~ .7
單片機里面有特定的4個寄存器對應這四組IO,分別是
對應IO組 | P0 | P1 | P2 | P3 |
---|---|---|---|---|
寄存器地址 | 0x80 | 0x90 | 0xA0 | 0xB0 |
值得一提的是,在"reg52.h"中已經對這些寄存器進行了定義
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
有了這些在reg52.h的頭文件里的定義,我們就能直接用P0,P1,P2,P3這些關鍵字修改寄存器的數值了
P0 = 0xDF;
P1 = 0x3F;
P2 = 0xDE;
P4 = 0x58;
這些寄存器都是可位尋址的,具體的各個IO的地址和上面各組寄存器的地址我們先不用記住(因為我們基本上用不上)
但是我們要記住每一組IO中,各個IO對應的位:
IO | .7 | .6 | .5 | .4 | .3 | .2 | .1 | .0 |
---|---|---|---|---|---|---|---|---|
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
如果我們要讓7,5,4IO都是高電平,其他的都是低電平,對應的二進制:1011 0000(高位在前)
因為是可位尋址,所以我們可以用sbit,對特定的一個IO定義一個名字
比如說我們的LED接在P0.0
sbit LED = P0^0;
這篇文章先寫到這里,接下來我們介紹單片機的IO的簡單結果,至于后事如何,且聽下回分解
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
單片機
+關注
關注
6041文章
44615瀏覽量
637390 -
寄存器
+關注
關注
31文章
5363瀏覽量
120908 -
C51單片機
+關注
關注
12文章
164瀏覽量
34807 -
IO口
+關注
關注
3文章
170瀏覽量
24132
發布評論請先 登錄
相關推薦
51單片機如何讀寫AT29C040?51單片機讀寫AT29C040的c51程序免費下載
本文檔的主要內容介紹的是51單片機如何讀寫AT29C040?給大家介紹一個51
發表于 09-06 15:00
?27次下載
51單片機教程之80C51單片機的C語言程序設計資料概述
本文檔的主要內容詳細介紹的是51單片機教程之80C51單片機的C語言程序設計資料概述主要內容包括
發表于 12-05 11:53
?299次下載
評論