1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: 單片機(jī)匯編語(yǔ)言紅綠燈模擬 數(shù)碼管顯示不全怎么解決? [打印本頁(yè)]

作者: YOUREN3I    時(shí)間: 2020-6-6 16:02
標(biāo)題: 單片機(jī)匯編語(yǔ)言紅綠燈模擬 數(shù)碼管顯示不全怎么解決?

這是個(gè)紅綠燈模擬里面的中斷程序。我把它的主程序設(shè)為空程序了。沒(méi)了綠色字體的部分,中斷程序作為主程序運(yùn)行時(shí)正常,但作為中斷總是數(shù)碼管顯示殘缺。本來(lái)四個(gè)數(shù)碼管顯示器,有三個(gè)顯示就不錯(cuò)了。是不是因?yàn)闆](méi)有什么中斷現(xiàn)場(chǎng)保護(hù)??不懂

DAT  SEGMENT;


TABLE DB  00H,67H, 7FH, 07H, 7DH, 6DH, 66H, 4FH, 5BH,06H,3FH;9876543210

DAT  ENDS  

STACK SEGMENT  'STACK'

  STA     DB  1000 DUP(?)

       PP     EQU LENGTH STA

STACK ENDS



CODE  SEGMENT ;PUBLIC 'CODE'

      ASSUME CS:CODE, DS:DAT ,SS:STACK

     



START:

       MOV AX,DAT

       MOV DS,AX



       MOV AX,STACK

           MOV SS,AX



       MOV AX, PP

       MOV  SP, AX       ;設(shè)置SP值

      

       PUSH  DS

      

       MOV AX,0

           MOV DS,AX

              

           MOV AX,CODE

     MOV CL,4

     SHL AX,CL

     ADD AX,OFFSET IRQ0



     MOV SI,80H

     MOV [SI],AX

     MOV AX,0

     MOV [SI+2],AX

   POP  DS




       MOV DX,8020H     ; 8259地址

  MOV AL,00010011B  ; 單片8259, 上升沿中斷, 要寫ICW4

  OUT DX,AL

         

  MOV DX,8022H

  MOV AL,20H    ; 中斷號(hào)為20H

  OUT DX,AL


  MOV AL,01H    ; 工作在8086/88 方式

  OUT DX,AL


  IN AL,DX

  AND AL,0FEH

  OUT DX,AL

      

  MOV DX,8006H  ;8255控制

  MOV AL,80H    ;模式設(shè)置

  OUT DX,AL

MOV DX,8016H

OUT DX,AL

   

     MOV BL,0

LP:   STI   ;開(kāi)中斷

       NOP

       JMP  LP

   



IRQ0:

CLI

MOV AL,80H

MOV DX,8006H

OUT DX,AL

MOV DX,8016H

OUT DX,AL;兩個(gè)芯片方式字設(shè)置



SSET1:LEADI,TABLE+7;讀取3的地址

SSET2:MOV BP,DI;讀取3的地址

SSET3:LEADI,TABLE+5;讀取5的地址

SSET4:LEABX,TABLE+6;讀取4的地址

SSET5:LEA SI,TABLE+10;讀取0的地址





TTW:

   MOV AL,[BP]

MOV DX,8012H

   OUT DX,AL;高位初始化為3

MOV AL,[DI]

   MOV DX,8002H

   OUT DX,AL;高位初始化為5



L1W:MOV AL,[BX]

   MOV DX,8004H

   OUT DX,AL

   CMP AL,3FH;判斷移位

   JE KK1W

B1W:MOV AL,[SI]

   MOV DX,8014H

   OUT DX,AL

   CMP AL,3FH;判斷移位

   JE KK2W

B2W:INC BX;

   INC SI



MOV DX,60000

LOPW:NOP

    NOP

    NOP

    DEC DX

JNZ LOPW

MOV AL,[SI]

CMP AL,3FH

JE CHANGEW;交換循環(huán)判斷1

    JMPTTW



KK1W:INC DI

MOV AL,[DI]

CMP AL,3FH

JE SS1W

PP1W:LEA BX,TABLE

JMP B1W



KK2W:INC BP

MOV AL,[BP]

CMP AL,3FH

JE SS2W;低位為0時(shí)調(diào)整低位起始值地址和高位地址

PP2W:LEA SI,TABLE

JMP B2W



SS1W:LEA DI,TABLE

JMP PP1W

SS2W:LEA BP,TABLE

    JMPPP2W;只有個(gè)位數(shù)值時(shí)高位不顯示0



       MOVDX,8020H;   

       MOVAL,20H

       OUTDX,AL

       STI

       IRET

CHANGEW:

CMP BP,0000H

JMP TTW

     

CODE   ENDS

       END START

這是個(gè)紅綠燈模擬里面的中斷程序。我把它的主程序設(shè)為空程序了。沒(méi)了綠色字體的部分,中斷程序作為主程序運(yùn)行時(shí)正常,但作為中斷總是數(shù)碼管顯示殘缺。本來(lái)四個(gè)數(shù)碼管顯示器,有三個(gè)顯示就不錯(cuò)了。是不是因?yàn)闆](méi)有什么中斷現(xiàn)場(chǎng)保護(hù)??不懂

3030.PNG (11.94 KB, 下載次數(shù): 58)

3030.PNG





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1