1樓:
定時器t0工作模式的確定。
因定時時間較長,採用哪種方式哪?
可以算出:
模式0:最長16.384ms
模式1:最長131.072ms
2^17/10^6
ans =
0.13107200000000
模式2:最長可定時512us
體重要求1s,可選模式1,每隔100ms中斷一次,中斷十次,就1s了。
步驟:1. 求計數值x:
因為(2^16-x初值)*12/6*10^6=100*10^(-3)s
所以:x=15536=3cb0h(用vb的hex$很方便。)因此:(tl0)=0b0h,(th0)=3ch.
實現方法:
對於中斷10次計數,可使t0工作在計數方式,也可以用迴圈程式的方法實現。本例採用迴圈程式法。
源程式:
org 0000h
ljmp main;上電轉向主程式。
org 000bh;t0的中斷入口位址。
ajmp serve;轉向中斷服務程式。
;主程式
org 0030h
main: mov sp,#60h;設堆疊指標。為什麼?
mov b,#0ah;設迴圈次數。
mov tmod,#01;設定t0工作於模式1.
mov tl0,#0b0h;裝入計數值低8位。
mov th0,#3ch;裝入計數值高8位。
setb tr0;啟動定時器t0;
setb et0;允許t0中斷。
setb ea;換允許cpu中斷。
sjmp $
;中斷程式:
org 000bh
serve: mov tl0,#0b0h
mov th0,#03ch;重新賦計數值。
djnz b,loop
clr tr0;1s定時到,停止t0工作。
cpl p1.0;試驗一下。
loop:reti;中斷返回!!
2樓:匿名使用者
簡單的要死。
自己去下個proteus軟體,畫好電路**下就是了。時間就用理論上的,完了看到功能正常就行,不要在意思**時的時間對不對
3樓:匿名使用者
好好學習天天向上,自己努力吧
微控制器程式實驗設計 20
微控制器程式實驗設計 4位數碼管是怎麼連線到微控制器的?include define uchar unsigned char define uint unsigned intuchar code zifu 10 uint num 0 void delay uint i while i 延時。main e...
微控制器蜂鳴器問題,微控制器驅動蜂鳴器的問題
煙火夜空 是 測量 還是 實物測量?測量的話,對不起,本人不玩 愛莫能助!實物測量的話,蜂鳴器3.3v,假設供電5v,那麼三極體vce 1.7v,應該處於放大狀態,將r13電阻減小 到470 4.7k 建議1k 增大ib,讓三極體處於飽和導通狀態,vce壓降應約為0.3v 減小r13後,蜂鳴器壓降約...
keil 微控制器無線通訊程式問題
就是表示某個暫存器的某個位,用 rx dr 總比用 0100000 容易記吧,增加程式可讀性.雖然我沒有用過 nrf24l01,但我憑著那幾行 就可以看出 某個狀態暫存器有 rx dr tx ds max rt 的位.sta,應該是指 status 應該是儲存某個暫存器的值.如里我再猜下去,可能是 ...