|
發布時間: 2020-5-18 02:17
正文摘要:在做題的時候,師傅給的單片機程序開始地址是0100H,在我實際操作過后,發現如果從0100H開始,LED燈會一直亮著,不會有任何反應 但是如果從0000H開始,則會正常執行。我百度了一很多,但是還是沒想明白為什么 ... |
liuleen 發表于 2020-5-18 11:10 仿真無意義,我只管實際結果 12MHZ的時鐘和6MHZ的時鐘它一定是有區別的,在下載器選項那設定好下載看一下就知道了 |
Y_G_G 發表于 2020-5-18 08:49 現在意思是0100H有問題~還有我在CRYSTAL頻率,我設置6Mhz和12Mhz 感覺沒有區別,這個是個啥情況 |
aking991 發表于 2020-5-18 08:16 理論上是這樣的,我能理解~。但是問題是100H開始的話,燈會一直亮。程序非正常,我不會在ISIS7 里面下斷點,所以不太明白這個錯誤是怎么形容的 |
| 是代碼要改一下,要考慮中斷函數入口 |
|
正確的是這樣子的: ORG 0000H ; LJMP STAR ; ORG 100H STAR: MOV 0BAH,#80H |
| 在匯編里,用ORG 100H即程序從此處運行,即把相應的中斷函數處口和堆棧給避開,如果你改為ORG 00H,可能在執行中斷等相應程序時會出現不正常,如果是用C語言,軟件會自動分配就不用考慮這么多了 |