;This is a program to generate square wave using dac
temp equ 2 ;use Register R3
rev equ 3 ;use Register R2
cntr equ 4 ;use Register R4
org 0h
jmp begin
delay:
mov r5,#0FFh
d1:
djnz r5,d1
ret
send_dac:
mov P1,a
ret
begin:
nop
w1:
mov a, #00h
lcall send_dac
lcall delay
mov a, #0FFh
lcall send_dac
lcall delay
jmp w1
end
 
 
temp equ 2 ;use Register R3
rev equ 3 ;use Register R2
cntr equ 4 ;use Register R4
org 0h
jmp begin
delay:
mov r5,#0FFh
d1:
djnz r5,d1
ret
send_dac:
mov P1,a
ret
begin:
nop
w1:
mov a, #00h
lcall send_dac
lcall delay
mov a, #0FFh
lcall send_dac
lcall delay
jmp w1
end
; ;This is a program to generate triangular wave using dac
temp equ 1    ;use Register R3 
rev  equ 2    ;use Register R2 
cntr equ 3   ;use Register R4 
org 0h
 jmp begin
delay:
 mov r5,#02h
d1:
 djnz r5,d1
 ret
send_dac:
 mov P1,a
 ret
begin:
 mov r0,#00h
w1:
 mov a,r0
 lcall send_dac
 lcall delay
 inc r0
 cjne r0,#0ffh,w1
w2:
 mov a,r0 
 lcall send_dac
 lcall delay
 djnz r0, w2 
 jmp w1
end
; ;This is a program to generate sine wave using dac
temp equ 1    ;use Register R3 
rev  equ 2    ;use Register R2 
cntr equ 3   ;use Register R4 
org 0h
 jmp begin
delay:
 mov r5,#01h
d1:
 djnz r5,d1
 ret
send_dac:
 mov P1,a
 ret
begin:
 mov dptr,#lut
 mov r0,#00h
Q1: //quadrant I
 mov a,r0
 movc a,@a+dptr
 add a,#07Fh
 lcall send_dac
 ;lcall delay
 mov a ,r0
 add a,#01h
 mov r0,a
 cjne r0,#12h,Q1
Q2: //quadrant II
 mov a,r0
 movc a,@a+dptr
 add a,#07Fh
 lcall send_dac
 ;lcall delay
 mov a ,r0
 subb a,#01h
 mov r0,a
 djnz r0,Q2
Q3: //quadrant III   
 mov a,r0
 movc a,@a+dptr
    cpl a
 subb a,#01h
 add a,#07Fh
 lcall send_dac
 ;lcall delay
 mov a ,r0
 add a,#01h
 mov r0,a
 cjne r0,#12h,Q3 
Q4://quadrant II
 mov a,r0
 movc a,@a+dptr
 cpl a
 add a,#01h
 subb a,#07Fh
 lcall send_dac
 ;lcall delay
 mov a,r0
 subb a,#01h
 mov r0,a
 djnz r0,Q4
 jmp Q1
org 100h
lut: DB 0,10,17,25,35,42,50,57,65,71,77,82,87,91,95,97,99,100,100
end
; ;This is a program to generate trapezoidal wave using dac
temp equ 1    ;use Register R3 
rev  equ 2    ;use Register R2 
cntr equ 3   ;use Register R4 
org 0h
 jmp begin
delay:
 mov r5,#02h
d1:
 djnz r5,d1
 ret
longdelay:
 mov r5,#0AFh
ld1:
 mov r6,#08h
ld2:
 djnz r6,ld2
 djnz r5,ld1
 ret
send_dac:
 mov P1,a
 ret
begin:
 mov r0,#00h
w1:
 mov a,r0
 lcall send_dac
 ;lcall delay
 inc r0
 cjne r0,#0ffh,w1
 lcall longdelay
w2:
 mov a,r0 
 lcall send_dac
 ;lcall delay
 djnz r0,w2
 lcall longdelay 
 jmp w1
end
Comments
Post a Comment