|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這么簡(jiǎn)單的程序,到底問題出在哪里? |
| 作者:Aitel 欄目:技術(shù)交流 |
ORG 0000H LJMP MAIN ORG 000BH LJMP TTT0 ORG 001BH LJMP TTT1 ORG 0050H MAIN: LCALL CLEAR ;;;;;;;;;;;;;;;;;;;;;;;;; CLEAR: CLR P2.3 CLR P2.0 clr p2.1 clr p2.2 clr p3.3 clr p3.4 clr p3.5 CLR P1.4 clr p1.0 setb P3.0 setb p3.1 setb p3.6 setb p3.7 RET END 在單片機(jī)未寫入程序時(shí),P3.0、P3.1、P3.2為高電平, 而寫入以上程序后,P3.0、P3.1、P3.2卻變?yōu)榈碗娖健?br>問題究竟出在那里呢? |
| 2樓: | >>參與討論 |
| 作者: awey 于 2006/6/1 22:28:00 發(fā)布:
LCALL CLEAR 以后呢?程序往哪里跑? |
|
| 3樓: | >>參與討論 |
| 作者: jchl 于 2006/6/1 22:48:00 發(fā)布:
1、P3.0、P3.1、P3.2 接別的東西沒? |
|
| 4樓: | >>參與討論 |
| 作者: Aitel 于 2006/6/1 22:59:00 發(fā)布:
LCALL CLEAR以后就結(jié)束了 |
|
| 5樓: | >>參與討論 |
| 作者: Aitel 于 2006/6/1 23:01:00 發(fā)布:
單片機(jī)未接其它電路。 |
|
| 6樓: | >>參與討論 |
| 作者: conwh 于 2006/6/1 23:12:00 發(fā)布:
什么叫"結(jié)束了",這樣你的堆棧就產(chǎn)生了溢出,誰知道PC跑到什么地方 |
|
| 7樓: | >>參與討論 |
| 作者: awey 于 2006/6/1 23:23:00 發(fā)布:
你的程序是這樣走的: LCALL CLEAR以后,接著又運(yùn)行 CLEAR CLR P2.3 ……直到RET,這次RET把堆棧 里的未知的數(shù)送到PC,接下來就是“漫游”了…… END是偽指令,不是程序結(jié)束,是告訴匯編器程序到此為止。 你在 MAIN: LCALL CLEAR 下面加一條試試: AJMP $ |
|
| 8樓: | >>參與討論 |
| 作者: Aitel 于 2006/6/1 23:51:00 發(fā)布:
程序這樣走后它總得按如下執(zhí)行。 CLEAR: CLR P2.3 CLR P2.0 clr p2.1 clr p2.2 clr p3.3 clr p3.4 clr p3.5 CLR P1.4 clr p1.0 setb P3.0 setb p3.1 setb p3.6 setb p3.7 而問題是照此執(zhí)行后P3.0、P3.1、P3.2它們卻是低電平。 |
|
| 9樓: | >>參與討論 |
| 作者: sushangwen 于 2006/6/2 9:05:00 發(fā)布:
呵呵,看來樓主是生手。 |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |