|
第1個(gè)問(wèn)題:相當(dāng)于將數(shù)組ld1_buffer整個(gè)向右移位1位,如ld1_buffer[9]變?yōu)閐1_buffer[8],d1_buffer[8]變?yōu)閐1_buffer[7],......,d1_buffer[1]變?yōu)閐1_buffer[0]。但是這段代碼并沒(méi)有處理d1_buffer[0],則d1_buffer[0]還是保持原值。運(yùn)行過(guò)這個(gè)for循環(huán)后,d1_buffer[1]和d1_buffer[0]會(huì)是同一個(gè)值,樓主需要注意。
第2個(gè)問(wèn)題:有些較大的數(shù)值如707(表示成二進(jìn)制位:10 1100 0011,則至少需要10個(gè)bit位來(lái)存儲(chǔ),在單片機(jī)中則是用2字節(jié)=16bit,存儲(chǔ)為:(0000 0010 1100 0011)。但51單片機(jī)是8位的,一個(gè)寄存器只有8位,對(duì)于這個(gè)707數(shù)值則需要兩個(gè)寄存器來(lái)存儲(chǔ),TH0存儲(chǔ)高8位(0000 0010),TL0用來(lái)存儲(chǔ)低8位(1100 0011)。在還原707這個(gè)數(shù)值時(shí)就需要將TH0左移8位,變成(0000 0010 0000 0000),“|”是按位或的符號(hào),再與TL0相或,得到(0000 0010 1100 0011)。樓主問(wèn)題中的TH0與TL0應(yīng)該是用來(lái)測(cè)量某個(gè)值得到的數(shù)值, (TH0<<8)|TL0就是將這個(gè)數(shù)值恢復(fù)成一個(gè)完整的數(shù)罷了。 |
評(píng)分
-
查看全部評(píng)分
|