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