2.示意圖
(1)開的時候是0,關的時候是1(從右到左二進制)。
(2)斷面選擇和位置選擇:
A.位置選擇:假設我們要控制8個數碼管,分別是1,2...8依次。我們要選擇控制哪個數碼管(比如控制第1位),這就是位選擇,位選擇就是選擇位置。
B.段選擇:然後我們要1數碼管顯示“1”。我們將控制第壹個數碼管“b=0,c=0,a=1,d=1,e=1,f=1,g=1(或b=1,或。
空顯示(空)
{
P2 =((P2 & amp;0x 1f)| 0x E0);//數碼管消隱
P0 = 0xff
P2 & amp;= 0x 1f;
P2 =((P2 & amp;0x 1f)| 0xc 0);//位置選擇控件
P0 = 1 & lt;& ltdspcom
P2 & amp;= 0x 1f;
P2 =((P2 & amp;0x 1f)| 0x E0);//段代碼輸入
P0 = tab[DSP buff[DSP com]];
P2 & amp;= 0x 1f;
if(++dspcom == 8){
DSP com = 0;
}
}
登錄後復制
3.結構圖
(1)高電平和低電平:
A.高電平:高電平是指相對於低電平的高電壓,這是電氣工程中的說法。在邏輯電平中,保證邏輯門的輸入為高電平時允許的最小輸入高電平,當輸入電平高於輸入高電壓(Vih)時,輸入電平被認為是高電平。
B.低電平:低電平(Vil)是指邏輯門的輸入保證為低電平時所允許的最大輸入低電平。當輸入電平低於Vil時,輸入電平被認為是低電平。它是相對於高電平的低電壓,這是電子工程中的說法。
(2)***陽極和**陰極:
A.***陽極數碼管是指8個數碼管的8個發光二極管的陽極(正極)全部連在壹起,陰極對應的壹段可以單獨控制。
B.***陰極數碼管是指八個數碼管的八個發光二極管的陰極(負極)全部連在壹起,對應的壹段陽極分別控制。
4.真值表
數字真值表
0 0xC0
1 0xF9
2個0xA4
3 0xB0
0x99
5 0x92
6 0x82
7 0xF8
8 0x80
9 0x90
溫馨提示:二進制:(前綴:0b/0B)(後綴:b/B)
八進制:(前綴:0)(後綴:o/O)
小數:(前綴:無,加+/-)(後綴d/D)
十六進制:(前綴:0x/0X)(後綴:h/H)
* *陽極數碼管* *用在這裏。
登錄後復制
5.特殊功能寄存器
專用功能寄存器是80C51單片機中各功能部件對應的寄存器,用於存儲相應功能部件的控制命令、狀態或數據。
(1)sbit是定義特殊功能寄存器的位變量。
例如:sbit led1 = P1^0
將led1連接到P1端口的0位端子,控制led1的開關。
* * *在C語言中,如果直接寫P1.0,C編譯器無法識別,P1.0不是合法的C語言變量名,所以要給它另起壹個名字。這裏的名字是P1_0,sbit有三種用法:
答:sbit位變量名=地址值
B: sbit位變量名=SFR名變量位地址值
C: sbit位變量名=SFR地址值變量位地址值
(2)sfr特殊功能寄存器:
Sfr也是壹種擴展數據類型,它使用壹個範圍為0 ~ 255的存儲單元。它可以用來訪問51單片機中的所有特殊功能寄存器。例如,如果使用語句sfr P1 = 0x90來指定P1作為P1端口的片內寄存器,我們將在下面的語句中使用諸如P1 = 255(將P1端口的所有引腳設置為高)之類的語句來操作特殊功能寄存器。sfr p 1 = 0x 90;//定義端口P1 I/O,端口P1的地址後面跟壹個要定義的名稱,可以隨意選擇,但是要符合標識符的命名規則。例如,端口P1可以以P1命名,這樣會使程序更容易閱讀。等號後面必須跟壹個常量,不允許帶運算符的表達式,常量必須在特殊函數寄存器的地址範圍內(80H-FFH)。Sfr是定義8位的特殊功能寄存器,而sfr16用於定義16位的特殊功能寄存器,比如8052的T2定時器,可以定義為:SFR 16 T2 = 0x cc;//8052這裏定義了定時器2,地址是T2L=CCH,T2H=CDH。