找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2508|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

請大佬幫新手的我分析一下單片機(jī)程序,主要是延時部分看不懂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:351862 發(fā)表于 2019-1-20 17:10 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
2黑幣
本帖最后由 金子。 于 2019-1-21 13:58 編輯

這個程序是怎么個運(yùn)行過程啊,請會的大佬幫忙給分析一下,謝謝了;主要是延時的部分真的沒看懂
ORG 0000H
LJMP START
ORG 001BH
LJMP YSZD
ORG 0030H
START:
SETB IT1           
SETB ET1           
SETB EA
SETB TR1           
LCALL TIME500MS

TIME500MS: PUSH 03H
           MOV R3,#61D
K005:      SETB P1.5
           CLR P1.5
           CJNE R3,#00H,K005
           POP 03H
           RET

YSZD:   CJNE R3,#00H,ASD1  ;延時
        AJMP ASD2
ASD1:   DEC R3
ASD2:   RETI
END


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:158375 發(fā)表于 2019-1-21 08:27 | 只看該作者
程序不全吧。
沒有 START,怎么跳轉(zhuǎn)?
匯編程序不好玩啊。
回復(fù)

使用道具 舉報

板凳
ID:449525 發(fā)表于 2019-1-21 08:37 | 只看該作者
大哥,你玩的匯編啊。厲害
回復(fù)

使用道具 舉報

地板
ID:351862 發(fā)表于 2019-1-21 13:59 | 只看該作者
自己想明白了~~
回復(fù)

使用道具 舉報

5#
ID:168777 發(fā)表于 2019-1-21 15:18 | 只看該作者
這個程序從上面一條一條執(zhí)行,先跳轉(zhuǎn)到START,這是對中斷相關(guān)的配置,再執(zhí)行K005,就是對配置相應(yīng)IO引腳,并輸出低電平,延時函數(shù)就是:先比較R3寄存器和00H的大小,如果大,執(zhí)行ASD1,使R3寄存器值減一。
當(dāng)R3減到和00H相等時,執(zhí)行ASD2.中斷返回
回復(fù)

使用道具 舉報

6#
ID:388717 發(fā)表于 2019-1-21 17:49 | 只看該作者
匯編語言太高級了,只會用C來寫
回復(fù)

使用道具 舉報

7#
ID:471453 發(fā)表于 2019-1-21 22:55 | 只看該作者
延時不是TIME500MS子程序部分嗎,延時500ms啊
回復(fù)

使用道具 舉報

8#
ID:123289 發(fā)表于 2019-1-22 15:14 | 只看該作者
1、硬延時是利用CPU的運(yùn)行時間耗時間,所有它當(dāng)中寫什么語句就不重要了,你可以不去理會它,就要理解它在耗時兜圈子就可以了。
2、這里要注意,03H和R3是同一個地方(上電初期),R3是不可以直接 PUSH或POP的。
因?yàn)镽3是四個地方之一:03H,0BH,13H,1BH。上電時R3=03H。(參見PSW寄存器.43)
PUSH R3 時它不知道 將哪個PUSH入堆棧,所以此條指令不存在!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表