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

📄 text1.asm

📁 这是一个使单片机P0口的8个发光二极管轮流点亮的程序
💻 ASM
字号:
;###################################################
ORG    0000H
LJMP   STAR
ORG 0050H
STAR:
;主程序#############################
MAIN:  MOV SP,#30H  ;设定椎栈指针
      
       ;ACALL DISPLAY_L0 ;调用子程序;①
       ;ACALL D1S;②
      
       ;ACALL DISPLAY_L1;③
       ;ACALL D1S;④
      
       ;ACALL DISPLAY_LL;⑤
       ;ACALL D1S;⑥
      
       ;ACALL DISPLAY_LR;⑦
       ;ACALL D1S;⑧
      
       ACALL DISPLAY_ALL;⑨
      
       AJMP MAIN;
;////////////////////////////////
;只点亮L0 发光管的子程序
DISPLAY_L0:MOV P0,#0FFH;使所有的灯灭
           SETB P3.7;关选通
           CLR P0.0 ;预备点亮L0
           CLR P3.7 ;开选通点亮L0
RET
;/////////////////////////////////
;只点亮L1 发光管的子程序
DISPLAY_L1:MOV P0,#0FFH ;使所有的灯灭
           SETB P3.7 ;关选通
           CLR P0.1  ;预备点亮L1
           CLR P3.7  ;开选通点亮L1
RET
;/////////////////////////////////
;只点亮L0 L2 L4 L6 发光管的子程序
DISPLAY_LL:MOV P0,#0FFH
           SETB P3.7
           MOV P0,#0AAH ;此条语句等效的二进制语句为: MOV P0,#10101010B
           CLR P3.7 ;开选通点亮L0 L2 L4 L6
RET
;/////////////////////////////////
;/////////////////////////////////
;只点亮L1 L3 L5 L7 发光管的子程序
DISPLAY_LR:MOV P0,#0FFH
           SETB P3.7
           MOV P0,#55H ;此条语句等效的二进制语句为: MOV P0,#01010101B
           CLR P3.7 ;开选通点亮L1 L3 L5 L7
RET
;/////////////////////////////////
;/////////////////////////////////
;流水灯子程序
DISPLAY_ALL:MOV A,#01111111B;只点亮L7 发光管参数设定
            ACALL DISPLAY_LS;传递参数,只点亮L7
            ACALL D1S;延时
            MOV A,#10111111B;只点亮L6 发光管参数设定
            ACALL DISPLAY_LS;传递参数,只点亮L6
            ACALL D1S;延时
            MOV A,#11011111B
            ACALL DISPLAY_LS
            ACALL D1S
            MOV A,#11101111B
            ACALL DISPLAY_LS
            ACALL D1S
            MOV A,#11110111B
            ACALL DISPLAY_LS
            ACALL D1S
            MOV A,#11111011B
            ACALL DISPLAY_LS
            ACALL D1S
            MOV A,#11111101B
            ACALL DISPLAY_LS
            ACALL D1S
            MOV A,#11111110B
            ACALL DISPLAY_LS
            ACALL D1S
RET
;/////////////////////////////////
;流水灯公用调用子程序
DISPLAY_LS:MOV P0,#0FFH ;使所有的灯灭
           SETB P3.7 ;关选通
           MOV P0,A  ;预备点亮
           CLR P3.7  ;开选通点亮
RET
;/////////////////////////////////
;延时程序,读者可根据所选用的晶体及指令周期自行计算
D1MS:  MOV R7,#20H
LOOP1: MOV R6,#32H
LOOP2: DJNZ R6,LOOP2
       DJNZ R7,LOOP1
       RET
;套用延时程序,以增加延时时间
D1S:  MOV R5,#250
LOOP6: ACALL D1MS
       DJNZ R5,LOOP6
RET
END

⌨️ 快捷键说明

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