;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