8255的0方式及应用

来源:互联网 发布:天气预报数据下载 编辑:程序博客网 时间:2024/06/16 18:43
stack segment        dw  200 dup(?)stack endsdata segment para public 'data'        t dw 0            ; 初始化延时变量0data endscode segment para public 'code'                assume ss:stack  ,cs:code,ds:datasl  proc farstart:  mov ax,stack           mov ss,ax          mov ax,data          mov ds,ax          mov dx,303h          mov al,10000011b;0方式,a端口pc4~pc7输出;                                         ;b端口    pc0~pc3 输出          out    dx,al          mov dx,300h        ;led全灭(pa0~pa7全部置零)          mov al,00h          out dx,al           mov dx,303h         ;关闭spk(置pc6=0)          mov al,00001100b          out  dx,al               wait1: mov dx,302h            ;查sw按下?(pc2=0?)          in al,dx          and al,04h          jnz  wait1                 ;sw未按下,等待begin:  call  led_flash     ;调用led发光子程序                mov bx,200                mov  t,0fffhspeak_h: call  outspk       ;调用喇叭发声高频子程序                dec  bx                jnz  speak_h                mov dx,300h     ;led全灭                mov  al,00h                out   dx,al                mov  bx,200                mov  t,09fffhspeak_l:   call  outspk      ;    调用喇叭发声低频子程序                dec  bx                jnz  speak_l                call  delay2                mov dx,301h  ; 查dip0按下? (pb0=0?)                in  al.dx                and  al,01h                jnz  begin      ;dip0未按下,继续                mov dx,300h                mov al,00h                out   dx,al                mov  dx,303h                mov  al,0ch                out   dx, al                mov  ah,4ch                int     21h                sl  endpdelay1   proc                push bx                mov  bx,t        dl1:   dec bx                jnz  dl1                pop bx                ret        delay1   endp        delay2 proc                    push  cx                      push   bx                    mov   cx,04fffh            dl4:    mov  bx,0ffffh            dl3: dec bx                    jnz  dl3            dec  cx            jnz  dl4pop     bxpop     cxretdelay2   endpoutspk   proc                 mov  dx,303h                mov  al,00001101b                out    dx,al                call   delay1                mov  dx,303h                mov  al,00001100b                out    dx,al                call    delay1                ret                outspk endpled_FLASH PROC              MOV DX,300H            mov  al,011111111b            out    dx,al            ret                led_flash endpcode  ends              end    start
0 0
原创粉丝点击