fME equ 20h fE equ 40h fB equ 80h fMB equ 0C0h ASC equ 0 DESC equ 1 DAC equ 0C000h dseg at 30h freq: ds 1 onda: ds 1 ampl: ds 1 public onda,ASC,DESC inicio segment code cseg at 00 reset: jmp inicio rseg inicio mov ie,#85h orl tcon,#05h mov dptr,DAC mov ampl,#0 mov freq,#fME mov onda,#ASC ciclo: mov a,onda jnz descend ascend: inc ampl ; actualiza mov a,ampl movx @dptr,a jmp continua descend:dec ampl mov a,ampl movx @dptr,a continua: mov r1,freq atraso: djnz r1,atraso jb p1.3,segue1 mov freq,#fME segue1: jb p1.2,segue2 mov freq,#fE segue2: jb p1.1,segue3 mov freq,#fB segue3: jb p1.0,ciclo mov freq,#fMB jmp ciclo end