1樓:
晶振=6mhz----->時鐘週期=1/(6×10^6)秒,機器週期=12*時鐘週期=2us。
機器週期個數=0.1s/2us=100000us/2us=50000。顯然需要用定時器工作方式1,因為只有2^16=65535>50000,2^13和2^8都小於50000.
初值=2^16-50000=65536-50000=15536,th0=15536/256=60=0x3c,tl0=15536%256=176=0xb0.
tmod=0x01,ea=1,tr0=1,et0=1
2樓:胖大海君
晶體振盪器的頻率fosc = 6mhz,t0作為定時器,定時0.1秒,定時時間還是比較大的,只能選用定時計數器的工作方式1,即16位的計數器。
即tmod=01h
定時時間的計算公式:
定時時間=(2^16-x)12/fosc=0.1秒
(2^16-x)12/6mhz=0.1秒 即 (2^16-x)12/6*10^6=0.1秒
2(2^16-x)=0.1*10^6
2(2^16-x)=10^5 (2^16-x)=50000
x=2^16-50000=65536-50000=15536=3cb0h
th0=3ch tl0=b0h
呵呵 滿意就選滿意回答吧
3樓:匿名使用者
tmod=0x01;
ie=0x82;
計數值=fosc/12*time=0.5*(0.1*1000000)=50000
所以th0=(65536-50000)/256;
tl0=(65536-50000)%256;
微控制器KEIL編譯問題,微控制器keil編譯的問題
1.變數宣告中間應該是逗號,不是分號 unsigned char i,j 2.你的函式沒有宣告,應該在include的下面加上一句 void delay viod 3.函式應該這樣寫 void delay viod void main void unsigned char i j 不對。應該是i,j...
求助微控制器c語言程式問題,求助 微控制器C語言程式問題
第一個是在主程式中設定的定時計數器中斷相關引數設定,tmod 0x10 設定定時計數器的工作方式為方式1 16為計數器 也就是計數範圍為 0 65536 th1 65536 200 256 tl1 65536 200 256 設定計數器的初值為 200.ea 1 開總中斷,et1 1 開定時計數器1...
微控制器驅動繼電器問題,微控制器驅動繼電器電路有問題
你好 1 微控制器通過光藕輸出到三極體基極的電壓較高,2k電阻明顯太小,以致三極體基極電流偏大 24v減去光藕管子電壓降0.5v,再減去三極體電壓降0.5v,然後再除以2k,基極電流達到11.5ma!這是三極體燒壞的原因。2 解決的方法非常簡單 把基極偏置電阻 2k 改為33k即可。這時的基極偏置電...