⑴ 單片機左移為什麼要一位呢
(1)剛開始x=0;左移一位還是零,然後|SDA
假設sda=1;則x=0000 0001
for循環i=1;x再左移一位 x=0000 0010 再|sda 假設sda=1;則x=0000 0011
i循環8次,正好讀八次sda送入i
(2)因為是串列通信 一根數據線一次只能讀寫一位
⑵ 單片機計數初值的計算
呵呵 正確為你解答:
1 可以按定時時間的計算公式, 計算出定時器的時間常數X:
定時時間T=(2的N次方-X)12/單片機晶振頻率
2 N為定時器的工作方式:
方式0時,N=13
方式1時,N=16
方式2時,N=8
3 根據定時時間和工作方式,計算出時間常數X
把X轉換成二進制數,高8位送給TH1,低8位送給TL1,就可以啟動定時器開始定時了。
例如: 工作在方式1,定時時間為1000微秒 晶振頻率=12MHZ
則 定時時間T=(2的16次方-X)12/12MHZ=1000 解出 X=64536=FC18H
⑶ 單片機C語言編程中scon=0x50中的x是什麼意思
scon=0x50中,0x50是一個整體,這時C語言整型常量的一種表示方法。代表該值為16進制。
C語言中以0x開始,後續接若干個字元,字元范圍在0~9,A~F之內,不區分大小寫,這種情況為16進製表示,代表值為對應的16進制值。
0x50就是16進制的50,也就是二進制10010000, 10進制的80。