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

📄 led.asm

📁 可驱动8/16位数码管显示或64/128只独立LED的BC8271A芯片中断方式编程代码
💻 ASM
字号:
BIT_COUNT   DATA 07FH
TIMER       DATA 07EH
TIMER1      DATA 07DH
TEMP        DATA 07CH
DATA_IN     DATA 021H
DATA_OUT    DATA 020H


CLK         BIT  P3.5
DAT         BIT  P3.4
KEY         BIT  P3.3


ORG   000H
JMP   START


ORG   100H
START:   MOV SP,#2FH             ;设置堆栈
         MOV TIMER,#50H
DELAY:   MOV TIMER1,#0FFH         ;延时已确保7281完成复位
DELAY1:  DJNZ TIMER1,DELAY1
         DJNZ TIMER,DELAY

         MOV DATA_OUT,#12H
         CALL SEND               ;8271初始化
         MOV DATA_OUT,#80H
         CALL SEND               ;设置为164模式,不反相

MAIN:    JB KEY,MAIN             ;等待按键
         MOV DATA_OUT,#93H       ;读键值
         CALL SEND
         CALL RECEIVE            ;读出数据
         MOV DATA_OUT,#15H       ;HEX译码指令
         CALL SEND
         MOV TEMP, DATA_IN
         ANL TEMP,#0F0H          ;键值高4位在第一位显示
         MOV A,TEMP
         SWAP A
         ORL A,#10H
         MOV DATA_OUT,A
         CALL SEND
         MOV DATA_OUT,#15H       ;HEX译码指令
         CALL SEND
         MOV A,DATA_IN
         ANL A,#0FH              ;取键值低4位
         MOV DATA_OUT,A          ;在0位显示
         CALL SEND
         JMP MAIN


SEND:    CLR  CLK
         SETB CLK
WAIT1:   JB DAT,SEND
         CLR  CLK
         SETB CLK
WAIT2:   JNB DAT,WAIT2
         MOV BIT_COUNT,#08H
SENDLOOP:MOV C,DATA_OUT.7
         MOV DAT,C
         CLR  CLK
         SETB CLK
         MOV A,DATA_OUT
         RL A
         MOV DATA_OUT,A
         NOP
         NOP
         NOP
         DJNZ BIT_COUNT,SENDLOOP
         SETB DAT
         NOP
         NOP
         NOP
         NOP
      RET

RECEIVE: CLR  CLK
         SETB CLK
WAIT3:   JB DAT,WAIT3
         CLR  CLK
         SETB CLK
         MOV BIT_COUNT,#08H
REC_LOOP:NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         NOP
         MOV A,DATA_IN
         MOV C,DAT
         RLC A
         MOV DATA_IN,A
         CLR  CLK
         SETB CLK
         DJNZ BIT_COUNT,REC_LOOP
         NOP
         NOP
         NOP
         NOP
      RET
END

⌨️ 快捷键说明

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