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都能用 但還是有區別 比如...