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

📄 网上题目3-2.asm

📁 单片机的。实现C51单片机的流水线功能。渐亮。逐亮逐灭
💻 ASM
字号:
           ;单片机   AT89C51
           ;晶振频率是12MHZ
           ;P1口  红色发光二极管
           ;用51的P1口控制8个LED,1 点亮,0 熄灭。

           ;题目:第3,
           ;所有的灯逐渐从暗到全亮,再由全亮到暗。


                    
           ORG    0000H                ;定义当前位置为 0000H
           LJMP   MIAN                 ;转主程序 短转移到 MIAN,
           ORG    000BH                ;定义当前位置为 000BH
           LJMP   ZC1                  ;转中断程序  T0 短转移到 ZC1,
           ORG    001BH                ;定义当前位置为 001BH
           LJMP   ZC2                  ;转中断程序  T1 短转移到 ZC2,
           ORG   0030H                 ;定义当前位置为 0030H

MIAN:      MOV   SP,    #60H           ;设堆栈指针 传送 SP,立即数60H
           MOV   TMOD,  #11H           ;定时器初始化,工作方式1. (65536) 传送 TMOD,立即数11H
           MOV   TH0,   #0FFH          ;传送 TH0,立即数0FFH 传送 TH0,立即数0FFH
           MOV   TL0,   #0F6H          ;定时器T0定时10us. 传送 TL0,立即数0F6H
           MOV   TH1,   #0D8H          ;传送 TH1,立即数0D8H 传送 TH1,立即数0D8H
           MOV   TL1,   #0F0H          ;定时器T1定时10ms 传送 TL1,立即数0F0H
           MOV   IE,    #8AH           ;传送 IE,立即数8AH 传送 IE,立即数8AH
           MOV   R1,    #200           ;传送  通用寄存器1,立即数200
           MOV   A,     R1             ;传送 寄存器A,R1
           MOV   R2,    #2             ;传送 通用寄存器2,立即数2
           MOV   R0,    #1             ;传送 通用寄存器0,立即数1
           MOV   P1,    #00H           ;传送 接口1,立即数00H
           SETB  TR1                   ;开定时器T1定时5ms 位-置1 TR1,
           CLR   TR0                   ;关定时器T0定时19US 清0 TR0,
           CLR    P1.0                 ;清0 接口1第0位 清0 接口1第0位,
           SJMP  $                     ;等带 短转移到 到本行,

ZC1:       CJNE  R2,    #2,    L1      ;比较-不等转移 通用寄存器2,立即数2,
           DJNZ  R1,    L              ; 减一不为0转移 通用寄存器1,
           DEC   A                     ;A减1 减1 寄存器A, 减1 寄存器A,
           MOV   R1,    A
           CJNE  A,     #1,    L2      ;比较-不等转移 寄存器A,立即数1,
L1:        DJNZ  R0,    L              ;减一不为0转移 通用寄存器0,L
           INC   A                     ;A加1 加1 寄存器A, 加1 寄存器A,
           MOV   R0,    A              ;传送 通用寄存器0,寄存器A
           MOV   R2,    #3             ;传送 通用寄存器2,立即数3
L2:        MOV   P1,    #00H
L4:        CLR   TR0                   ;清0 TR0 清0 TR0,
           CJNE  A,     #200,   L3     ;比较-不等转移 寄存器A,立即数200
           MOV   R1,    #200           ;传送 通用寄存器1,立即数200
           MOV   R2,    #2             ;传送 通用寄存器2,立即数2
           MOV   R0,    #1             ;传送 通用寄存器0,立即数1
           SJMP  L3                    ;短转移到 L3 短转移到 L3,
L:         SETB  TR0                   ;位-置1 TR0 位-置1 TR0,
L3:        MOV   TH0,   #0FFH          ;传送 TH0,立即数0FFH
           MOV   TL0,   #0F6H          ;定时器T0定时10US. 传送 TL0,立即数0F6H
           RETI                        ;中断返回 中断返回
ZC2:       MOV   P1,    #0FFH             ;传送 接口1,立即数0FFH
           MOV   TH1,   #0D8H          ;传送 TH1,立即数0D8H
           MOV   TL1,   #0F0H          ;定时器T1定时10ms 65536 传送 TL1,立即数0F0H
           SETB  TR0                   ;位-置1 TR0 位-置1 TR0,
           SETB  TR1                   ;位-置1 TR1 位-置1 TR1,
           RETI                        ;中断返回 中断返回
           END                         ;END









⌨️ 快捷键说明

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