只需一步,快速開始
熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
今天在書上看啦個(gè)流水燈的實(shí)驗(yàn) 自己把數(shù)據(jù)改動(dòng)了下 之后程序只能運(yùn)行一段時(shí)間就跑不動(dòng)了(自己用keil仿真的)
源程序如下
ORG 0000H LJMP START ORG 30H START: MOV A,#0F0H LOOP: MOV P1,A RL A LCALL DELAY LCALL LOOP DELAY: MOV R7,#255 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET END
使用道具 舉報(bào)
ORG 0000H AJMP START
ORG 30HSTART: MOV A,#0F0HLOOP: MOV P1,A RL A LCALL DELAY SJMP LOOPDELAY: MOV R7,#255D1: MOV R6,#255D2: DJNZ R6,D2 DJNZ R7,D1 RET END
貌似我把LCALL LOOP改為 SJMP LOOP就可以了,SJMP是無條件轉(zhuǎn)移語句,具體為啥這樣子,我也不清楚。
你的 RL A,執(zhí)行四次循環(huán)后就沒法點(diǎn)亮燈了,因?yàn)锳中一直保持0x00,要編程恢復(fù)0xf0
你的LCALL LOOP LCALL是調(diào)用子程序的,你沒有RET返回,無法跳出循環(huán),中間MOV A,P1 RL A兩條程序只有2納秒,所以看起來只在運(yùn)行DELAY延遲子程序
本版積分規(guī)則 發(fā)表回復(fù) 回帖后跳轉(zhuǎn)到最后一頁
小黑屋|51黑電子論壇 | 管理員QQ:125739409;技術(shù)交流QQ群281945664
Powered by 單片機(jī)教程網(wǎng)