找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1807|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

向大神求助關(guān)于單片機(jī)中斷程序的問題,求解惑

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:445944 發(fā)表于 2018-12-13 20:25 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這是本人自己寫的代碼,本意是無中斷到來時單片機(jī)控制#1 數(shù)碼管循環(huán)顯示 0~F,時間間隔為 0.5s;外中斷 0 (INT0)和外中斷 1(INT1)分別接開關(guān) K1 和 K2,其中 INT1 為高優(yōu)先級, INT0 為低優(yōu)先級。按下 K1 時#1 數(shù)碼管停止顯示,#2 數(shù)碼管靜態(tài)顯示片外 RAM 地址為 1000H單元的低 4位數(shù)值;按下 K2 時#3數(shù)碼管靜態(tài)顯示片外 RAM地址為 1000H單元的高 4位數(shù)值。但是仿真后的結(jié)果卻是按下k1數(shù)碼管顯示的是F,按下k2數(shù)碼管全滅了。實在不知道到底哪里有問題。代碼和仿真圖如下,急求解答。


單片機(jī)匯編語言源碼:

ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0INT
ORG 0013H
LJMP INT1INT
ORG 0040H
MAIN:
MOV SP,#6FH
SETB PX1
SETB IT1
SETB EX1
CLR PX0
SETB IT0
SETB EX0
SETB EA
MOV 00H,#00
ACALL DISPLAY
LOOP:ACALL DELAY
ACALL DISPLAY
MOV A,00H
SUBB A,#0FH
JNC OUT
INC 00H
AJMP LOOP
OUT:AJMP MAIN
DISPLAY:MOV A,00H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
RET
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DELAY:  
         MOV     R7,#50
DEL:  
         MOV     R6,#20
DE:   
         MOV     R5,#248
   DJNZ    R5,$
   DJNZ    R6,DE
   DJNZ    R7,DEL
   RET
INT0INT:
        
  MOV A,#7FH
  MOV DPTR,#1000H
  MOVX @DPTR,A
  MOVX A,@DPTR
  ANL A,#0FH
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A  
  
  AJMP $
INT1INT:
  MOV A,#7FH
  MOV DPTR,#1000H
  MOVX @DPTR,A
  ANL A,#0F0H
        MOV DPTR,#TABLE
        MOVC A,@A+DPTR
        MOV P0,A
  CLR EA  

  AJMP $
END
//////////////////////////////////////////////


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

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2018-12-13 22:49 | 只看該作者
圖中哪個是#1 數(shù)碼管?哪個是#2 數(shù)碼管?
回復(fù)

使用道具 舉報

板凳
ID:445944 發(fā)表于 2018-12-14 10:27 來自觸屏版 | 只看該作者
yzwzfyz 發(fā)表于 2018-12-13 22:49
圖中哪個是#1 數(shù)碼管?哪個是#2 數(shù)碼管?

我只用了一個數(shù)碼管,接的p0口,為什么我的開關(guān)的功能和題目不一樣?我覺得代碼沒問題啊
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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