lab6_1.asm

来自「51单片机上的信号发生器」· 汇编 代码 · 共 61 行

ASM
61
字号
                org 0000h
                ljmp main
                org 0003h
                ljmp int0
                org 0013h
                ljmp int1                
                org 0030h
main:           clr a
                clr c
                setb it0
                setb it1
                setb ex0
                setb ex1
                setb ea
                mov sp,#60h
;--------------------------------------
;            锯齿波
indention:      mov p2,a
                inc a 
                ljmp indention
;--------------------------------------
;            三角波
triagle:
                mov p2,a
                inc a
                cjne a,#128,triagle
next1:          dec a
                mov p2,a
                jnz next1
next:           ljmp triagle
;--------------------------------------
int0:           call delay
                jnb p3.2,over
                mov a,sp
                subb a,#2
                mov sp,a
                clr a
                mov dptr,#triagle
                push dpl
                push dph
over:
                reti
int1:           call delay
                jnb p3.3,over1
                mov a,sp
                subb a,#2
                mov sp,a
                clr a
                mov dptr,#indention
                push dpl
                push dph
over1:          reti
delay:                                  ;延时程序,9*250*250*2 us
                mov r3,#9;
loop0:          mov r0,#250             ;赋值R0为20
loop:           mov r1,#250             ;赋值R1为100
loop1:          djnz r1,loop1           ;R1减1后不为0调至loop1
                djnz r0,loop            ;R0减1后不为0调至loop
                djnz r3,loop0
                ret                     ;函数返回

⌨️ 快捷键说明

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