用8255控制七段显示器从0-999记数

刚刚完成了一个程序,用8255控制七段显示器从0-999记数.请朋友帮我看看可有错误,因为没有实验箱我不能上机调试,只能用汇编编译器马马虎虎的测试下,感觉没什么问题.

 

STACK SEGMENT STACK
      STACK1 DW 80H DUP(?)
STACK ENDS
;

DATAS SEGMENT

     PORT8255    EQU  63H
     PORTA       EQU  60H
     PORTB       EQU  61H
     PORTC       EQU  62H 

 LEDDRIVE  DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H,08H,03H,46H,21H,06H,0EH
 DISNUM    DB 0,0,0,0
 DISPORT   DB 0EH,0DH,0BH,07H

DATAS ENDS
;

CODE SEGMENT
      ASSUME CS:CODE,DS:DATAS,SS:STACK
START:
      MOV AX,DATAS
      MOV DS,AX

      MOV DX,PORT8255

      MOV AL,80H
      OUT DX,AL         ;CHOSE 8255 MODLE


      MOV  DI,0
AGAIN:
  MOV SI,0
  MOV CX,4

  DIS:     MOV AH,DISPORT[SI]      

           MOV AL,0
           OUT PORTC,AL    ;CUT SHOW
       
           MOV AL,DISNUM[SI]
      
         MOV BX,OFFSET LEDDRIVE
         XLAT 
   
         OUT   PORTA,AL  ;SHOW NUM

         MOV  AL,AH         ;OPEN LED 
         OUT  PORTC,AL

         PUSH CX
         MOV CX,350H
          DELAY1:LOOP DELAY1  
         POP CX  

       INC DI 

       CMP  DI,300
       JAE  FIRST
       JMP OV


  FIRST:
        MOV  DI,0
        INC  DISNUM
        CMP  DISNUM,10
        JAE  SECOND 
        JMP  OV           
  SECOND: 
        MOV  DISNUM,0
        INC  [DISNUM+1]
        CMP  [DISNUM+1],10
        JAE  THIRD
        JMP  OV
  THIRD:
        MOV  [DISNUM+1],0  
        INC  [DISNUM+2]
        CMP  [DISNUM+2],10
        JAE  FOUR
        JMP  OV
  FOUR:
        MOV  [DISNUM+2],0
        INC  [DISNUM+3]
        CMP  [DISNUM+3],10
        JAE  ZF
        JMP  OV
  ZF:
        MOV  [DISNUM+3],0
  OV:
        INC SI  
  LOOP  DIS
JMP AGAIN       


CODE ENDS
           END START

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值