請幫忙在51系列微控制器系統中編寫延時1ms的子

2021-04-18 17:46:31 字數 1360 閱讀 8828

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微控制器...