⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 复件 8255_2.asm

📁 我学单片机89C51时编的大部分程序都在里面
💻 ASM
字号:
;采用延时方式
        ORG 0000H
        LJMP START
        ORG 0030H
START:  MOV SCON,#00H           ;初始化串行口方式0        
        LCALL QINGLING                     
        MOV DPTR,#7FFFH          ;送控制字
        MOV A,#90H              ;A口为输入,B口、C口为输出
        MOVX @DPTR,A
CLEAR:  MOV DPTR,#7FFEH          ;写C口,清零
        MOV A,#00H
        MOVX @DPTR,A
        
MAIN:   MOV R0,#30            ;30S,数码输出 
        MOV A,#81H          ;L1,L8亮,倒计时
        MOVX @DPTR,A
        LCALL SHOW           ;
        
        MOV R1,#05           ;闪5次                    
SHAN1:  MOV DPTR,#7FFEH          ;写C口
        MOV A,#41H          ;L1灯亮,L7灯闪
        MOVX @DPTR,A
        LCALL D1S            ;
        MOV A,#01H          ;
        MOVX @DPTR,A
        LCALL D1S            ;
        DJNZ R1,SHAN1        ;
        MOV R1,#05
          
        MOV A,#24H          ;L3,L6亮,倒计时
        MOVX @DPTR,A
        LCALL SHOW           ;
                             ;
SHAN2:  MOV DPTR,#7FFEH          ;写C口
        MOV A,#22H          ;L6亮,L2闪
        MOVX @DPTR,A
        LCALL D1S            ;
        
        MOV A,#20H          ;
        MOVX @DPTR,A
        LCALL D1S            ;
        DJNZ R1,SHAN2        ;
        MOV R1,#05
        
        LJMP START           ;
                             ;
SHOW:   MOV A,R0             ;数码分高低位输出
        MOV B,#10            ;
        DIV AB               ;
        PUSH A               ;
        MOV A,B              ;
        LCALL DISPLAY        ;
        POP A
        LCALL DISPLAY
        LCALL D1S            ;延时1s
        LCALL QINGLING       ;清零,R0减一,循环
        DJNZ R0,SHOW
        MOV R0,#30
        RET


QINGLING:MOV R4,#04H             ;清零
LOOP:   MOV A,#20
        LCALL DISPLAY
        DJNZ R4,LOOP
        RET
                                ;显示
DISPLAY:MOV DPTR,#TABLE         ;查表
        MOVC A,@A+DPTR          ;查表
        MOV SBUF,A              ;输出
DELAY:  JNB TI,DELAY            ;八个字节是否发送完
        CLR TI                  ;清标志位
        RET

D1S:    MOV R7,#010       ;1S延时程序
DS1:    MOV R6,#200
DS2:    MOV R5,#250
DS3:    DJNZ R5,DS3
        DJNZ R6,DS2
        DJNZ R7,DS1
        RET

TABLE:  DB 0BBH,09H,0EAH,6BH,59H,73H,0F3H,0BH,0FBH,7BH
        DB 0F1H,0B2H,0E9H,0F2H,0D2H
        DB 49h,40h,0d9h,51h,60H,00H


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -