1.在MCU中都是以二進(jìn)制的形式進(jìn)行計(jì)算的。
2.在編程時,我們通常用到的有十進(jìn)制的數(shù)值形式和十六進(jìn)制的數(shù)值形式,如52,0xfe;
3.數(shù)值的大小由數(shù)據(jù)的類型來決定。
4.常用的有“unsigned int”和“unsigned char”。
“unsigned char”的范圍是“0-255”, 與單片機(jī)端口的8位的最大值(0xff)相對應(yīng)。
“unsigned int”的范圍是“0-65535”,與之對應(yīng)的是“0xffff”。
5.數(shù)值的寫入:
在51單片機(jī)中,寫入的數(shù)值可以是十進(jìn)制和十六進(jìn)制,但不能是二進(jìn)制。
比如:P1=4; P1=0X04;
當(dāng)寫語句“P1=4;”時
P1^0——P1^7的電平依次為 “0010 0000”
當(dāng)寫語句“P1=65;”時
P1^0——P1^7的電平依次為 “1000 0010”; 65的十六進(jìn)制碼為:0x41
從以上兩個數(shù)值可以發(fā)現(xiàn),端口的低位對應(yīng)的是數(shù)值的低位,端口的高位對應(yīng)的是數(shù)值的高位。
6.在用數(shù)碼管顯示數(shù)字的時候,是一個位數(shù)字,一位數(shù)字的寫入,比如說26,先寫2,再寫6.
以用數(shù)碼管寫2為例:將數(shù)碼管的斷選abcdefgdp分別接到P1^0,P1^1……P1^7;
若要顯示2,則要求abcdefgdp依次為:1101 1010
如果按照端口的對應(yīng),寫P1=0xda,那就錯了。
二進(jìn)制也是高位在前,低位在后,所以端口寫數(shù)據(jù)時也要低對低,高對高,所以要將“1101 1010”為
“0101 1011”
所以數(shù)碼管顯示2的十六進(jìn)制碼為“P1=0x5b”
同理可算出“0-9”的十六進(jìn)制碼依次為“0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f”