機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
EM78系列單片機--延遲子程序的編寫
EM78系列單片機--延遲子程序的編寫
 更新時間:2008-7-26 20:09:46  點擊數(shù):2
【字體: 字體顏色
在許多程序設計的場合,我們時常會利用到時間延遲子程序,接下來就介紹一個可以控制延遲時間的延遲子程序。
開下面是利用發(fā)工具E8-ICE來演示的一個精確的控制延遲時間的程序,選擇使用石英振蕩器,可以精確的算準延遲時間,時間可以到nanosecond(十億分之一秒),很神奇。
 
LP_CNT0 == 0X20     ;定義。
LP_CNT1 == 0X21
MOV A, @2           ;A = 2。
MOV LP_CNT0, A      ;設定延遲寄存器0(LP_CNT0)=2
CALL        P0_DLY      ;呼叫時間延遲子程序。
P0_DLY:
NOP                 ;調(diào)節(jié)延遲時間。
MOV A, @200         ;設定 A = 200。
MOV LP_CNT1, A      ;設定寄存器LP_CNT1 = 200。
P0_LP:
NOP                 ;調(diào)節(jié)延遲時間。
NOP                 ;調(diào)節(jié)延遲時間。
NOP                 ;調(diào)節(jié)延遲時間。
DJZ LP_CNT1         ;遞減LP_CNT1,為0就跳過下一行
JMP P0_LP           ;循環(huán)。
DJZ LP_CNT0         ;遞減LP_CNT0,為0就跳過下一行
JMP P0_DLY          ;循環(huán)。
RET                 ;返回主程序。
 
 
假設用戶所使用的開發(fā)工具是E8-ICE,而且所采用的振蕩器為石英振蕩(4M Hz),並選擇指令執(zhí)行周期為1 Cycle, 2 Clock。這時每執(zhí)行一個指令的時間為0.5 uS.
用戶可以看出在程序中用了兩個寄存器來計數(shù)(LP_CNT0、LPCNT1),另外也使用了兩個循環(huán)(P0_DLY、P0_LP),其中在P0_LP中有5個指令,所以在P0_LP這個循環(huán)中,執(zhí)行了有1000個指令。
 
5X 200= 1000                 P0_LP循環(huán)總共執(zhí)行指令數(shù)目。
5  +  1000 = 1005               P0_DLY循環(huán)總共執(zhí)行指令數(shù)目。
1005 X 2 = 2010
2010 + 1 + 1 = 2012   延遲程序總共執(zhí)行指令數(shù)目
 
在整個P0_DLY循環(huán)中就有2012個指令,每個指令的執(zhí)行時間為0.5 us。
2012 (instructions) x 0.5 (us/instruction) = 1.006 ms
所以用戶可以精確的計算出延遲的時間,用戶可以在LP_CNT0設定不同的值,如此可以有各種不同的延遲時間。
l         例:設計一個延遲時間為2ms的程序。
 
只要在上述程序中在呼叫P0_DEL延遲子程序之前,將LP_CNT0設成4就可以了。
MOV  A, @4
MOV  LP_CNT0, A
CALL P0_DLY
其余不變。
1005 X 4 = 4020。
4020 + 1 + 1 = 4022。
4022 (instructions) X 0.5 (us)  = 2.011 ms
  • 上一篇: EM78系列單片機--中斷程序的設計
  • 下一篇: EM78系列單片機--馬達控制程序的設計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1