1樓:一言中
在彙編裡面可以用jnz語句,利用所賦初值,寫一個減一不為零跳轉指令,跟c語言的for迴圈一個意思
2樓:匿名使用者
這個得看你晶振的頻率了。。根據for迴圈可以計算下大致得迴圈多少次就能定。微控制器定延時不精確的。
3樓:匿名使用者
void delay_ms(unsigned int n){unsigned int i=0,j=0;
for(i=0;i這是12mhz用的ms延時程式 我用示波器測了回,很準答
4樓:匿名使用者
void delay(unsigned int x) //延時 x ms
延時1ms 即為來
源使x=1;
這程式延時約1ms(x=1時用keil測出來約 0.96831272ms,近似1ms),用c語言很難做到準確的1ms。注意晶振為11.0592mhz的時候用~
5樓:手機使用者
假設bai12mhz.誤差自
du己調,
zhi用daonop微調。
版main: mov r5,#10
del1:mov r6,權#200
del2:mov r7,#246
nopdel3:djnz r7,del3
djnz r6,del2
djnz r5,del1
sjmp $
c程式設計時,51微控制器怎麼用定時器寫一個延時1ms的子函式
6樓:cindere鞡
51微控制器的定時器工作方式有4中,其中3種需要在中斷函式中重灌初值,而且c51明確規定中斷版函式不能傳入參權數也不能返回引數,那麼這樣一來就只能用不用重灌初值的工作方式2了,我給出了工作方式2的初始化函式:
void init(unsigned int x)這樣將x作為定時器的初值傳入,當tl0計數完成時,th0會自動將值賦給tl0,th0不變,當然你自己來定義鍵盤函式或者什麼函式來決定x的值。
希望我的回答能幫助到你。
7樓:
假如復使用12mhz晶振
定時器初
制始化:
void init(void )
主程式;
main(void)
}void inter_t0(void) //1ms中斷一次
8樓:南柯一夢之小
好辦用c51,方式一
void delay(unsigned int t) //t的單位取微秒
9樓:雨
void main()
51微控制器彙編控制流水燈,51微控制器中如何用組合語言編寫流水燈
用rl a 他是左移補零的,你rlc a 是把最高位放在psw的c中,再左移,c再放在最低位.而rl是不經過c的。左移後低位補零,你把rlc換成rl就可以了 org 0000h ljmp start org 0030h start mov a,0feh mov r2,8 output mov p1,...
請問所有的51微控制器都是MCS 51系列的微控制器嗎
看來你是剛學習微控制器呀,我看你在這裡問了很多很初級的知識,而且對電路基本上是空白。如果真想好好學習微控制器,應該去學習電路和編寫程式,而不要追究那些什麼51核心之類的東西,還有這個問題,其實對你學習微控制器也沒有幫助。因為這些要從微控制器的發展史來說,而你現在是剛學習微控制器,就從現在的教材內容學...
MCS 51微控制器擴充套件系統中,片外程式儲存器和片外資料儲存器共處同地址空間,為什麼不會發生匯流排衝突
因為控制 訊號線的不同 外擴的ram晶片既能讀出又能寫入,所以通常都有讀寫控制引腳,記為oe和we。外擴ram的讀 寫控制引腳分別與mcs 51的rd和wr引腳相連。外擴的eprom在正常使用中只能讀出,不能寫入,故eprom晶片沒有寫入控制引腳,只有讀出引腳,記為oe,該引腳與mcs 51微控制器...