51微控制器12HZ的,怎麼計算延時時間?

時間 2023-03-09 14:45:09

1樓:做而論道

應該是 12mhz 吧?

微控制器內部,計時的單位是《機器週期t》。

下面是每條指令執行時,所用的週期數:

mov r1,#60 1t

f: mov r3,#248 1t

djnz r3,$ 2t

djnz r1,f 2t

ret 2t

下面是程式迴圈時所用的週期數:

mov r1,#

f: mov r3,#

djnz r3,$ 2 * 248 = 496 tdjnz r1,f (2 + 496 + 1) *60 = 29940t

ret 2 + 29940 + 1 = 29943t總共是: 29943t。

如果是 12mhz,時間就是:29943us。

另外,執行這個程式,還需要一條 call 指令,應該再加上 2t。

--怎麼樣實現5s的延時?

慢慢算唄。

2樓:匿名使用者

mov r1,#aaa

f:mov r3,#bbb

djnz r3,$

djnz r1,f

乙個機器週期包括12 個時鐘週期。乙個12m的 晶體**器,它的時鐘週期是1/12(微秒)。它的乙個機器週期是12*(1/12)也就是1 微秒。

5s=5000 000( 微秒),所以只要aaa*bbb=5000 000( 微秒)即5s即可。

6m=2( 微秒)12*(1/6)

12m=1( 微秒)12*(1/12)

24m= 微秒)12*(1/24)

3樓:

每一條指令需要的機器週期如下:

mov r1,#60 ;1個機器週期。

f:mov r3,#248 ;1個機器週期。

djnz r3,$ 2個機器週期。

djnz r1,f ;2個機器週期。

ret ;2個機器週期。

則內層迴圈。

mov r3,#248 ;1個機器週期。

djnz r3,$ 2個機器週期。

消耗的時間為:1 + 248 * 2 = 497個機器週期。

外層迴圈。djnz r1,f ;2個機器週期每執行一次都會重複內層迴圈一次,所以外層迴圈執行的時間為:

(497 + 2)* 60 = 29940個機器週期。所以這段程式消耗的時間總和為(不含呼叫指令call或者lcall消耗的時間):

29940 + 1(mov r1,#60 消耗的時間)+2(ret消耗的時間) =29943個機器週期,假設晶振為12m,標準8051微控制器,則這段程式延遲時間為29943微妙。

4樓:白雲石徑

晶振是12mhz吧,t=60x248/12m,自己算哈。

一般是用定時器來定時的。

向程式中的方法也行,你要把r1xr3/12m湊出5s來。

5樓:匿名使用者

下個「微控制器小精靈」!

51微控制器延時函式的問題。晶振是12mhz..需要延時1秒

6樓:從桂花堵妝

6:delay()

7:c:0x0036

edmova,r5

c:0x0037

1ddecr5c:0x0038

jnzc:003b

c:0x003a

1cdecr4c:0x003b

edmova,r5

c:0x003c

4corla,r4

c:0x003d

70f6jnzc:0035

c:0x003f

efmova,r7

c:0x0040

1fdecr7c:0x0041

jnzc:0044

c:0x0043

1edecr6c:0x0044

efmova,r7

c:0x0045

4eorla,r6

c:0x0046

70e9jnzc:0031

c:0x0048

22ret這是反彙編出來的程式,和想象的不一樣吧;c語言和彙編大概是4:1的密度。

微控制器的簡易計算器,怎麼用51微控制器做簡易計算器? 10

基本功能介紹 簡單的加減乘除的運算。時間顯示功能,而且能實現計算器模組和時間模組之間的任意切換。按鍵音卻換功能。原理 多功能微控制器計算器是一個實現加減乘除的和時間功能的計算器,主要的硬體組成由,一個at89s52微控制器晶片,一個led液晶 1602液晶 一個4 4鍵盤,和4個特殊功能按鍵。一個時...

51微控制器怎麼識別高電平,51微控制器怎麼識別乙個高電平?

首先確認在p21已經有上拉為高的情況下,接在339輸出口,是不是為低,然後讓339為高後,p21口是否為高,用表測下,再寫程式。p2 0,是不能這樣寫的,做為輸入口,之前都得送1。除非可用沒有內部上接的p0口,做這些,硬體狀態很重要,先確認339一定有輸出哦。首先,你要確定輸入到微控制器引腳的電平是...

51微控制器中ACC怎麼用,51微控制器中ACC怎麼用??

a和acc的實質是一樣的,對應位址都是0e0h,只是彙編在使用時,在格式上取了兩個名字。你看看它們的使用方法,有的地方用a,有的地方用acc,會發現有一定的規律。當其要進行位表示時,必須用acc,比如要寫成acc.7,而不能寫成a.7 但當其作為8位二進位制數時,acc和a都能用 但還是有區別 比如...