Hey… Wir haben vor kurzem ein kleines poppeliges Programm geschrieben und sollen nun PAPS dafür machen… Nun fragen wir uns… was sind PAPS und wie macht man die?
Kann uns jemand dabei helfen… vielleicht sogar welche erstellen…
wären stark dankbar…
Quelltext:
include c51rd2.inc
; lcdhilf.a51
; addahilf.a51
code at 0
extern code Ain0, Ain1, Ain2, Aout
extern code initLCD, loeschzeile1, loeschzeile2, textzeile1, textzeile2, cursorpos
extern code textaus, zifferaus, hexaus, dezaus, loeschen, charaus, definierezeichen
LCDPosTemp equ 0Eh
LCDPosFeucht equ 4Eh
waerme equ r0
feucht equ r1
Luefter equ p2.3
Nebler equ p2.2
Pumpe equ p2.1
Heizung equ p2.0
;init:
mov sp, #2Fh
lcall initlcd
lcall loeschen
mov dptr, #Temp
lcall textzeile1
mov dptr, #Feuchtigkeit
lcall textzeile2
mov p2, #0
main:
acall ausgabeLCD
acall waermecheck
;acall luftfeuchtigkeitcheck
;acall bodenfeuchtigkeit
;acall lueftercheck
acall time
sjmp main
ausgabeLCD:
mov a, #LCDPosTemp
lcall cursorpos
lcall Ain1
mov b, #2
mul ab
lcall dezaus
mov waerme, a
mov a, #LCDPosFeucht
lcall cursorpos
lcall Ain2
mov b, #3
mul ab
lcall dezaus
mov feucht, a
ret
waermecheck:
mov a, waerme
subb a, #25
anl PSW, #10000000b
cjne a, #0, kleiner1
clr Heizung
ret
kleiner1: setb Heizung
ret
luftfeuchtigkeitcheck:
mov a, feucht
subb a, #24
anl PSW, #10000000b
cjne a, #0, kleiner2
clr Nebler
ret
kleiner2: setb Nebler
ret
bodenfeuchtigkeit:
jnb p3.0, do
ret
do:
setb Pumpe
acall langewarten
clr Pumpe
ret
lueftercheck:
mov a, waerme
subb a, #25
anl PSW, #10000000b
cjne a, #0, kleiner3
setb Luefter
ret
kleiner3:
mov r2, #0
c2: mov r3, #0
c1: clr Luefter
nop
setb Luefter
nop
nop
nop
djnz r3, c1
djnz r3, c2
ret
time:
mov r2, #100
a1: mov r3, #100
a2: djnz r1, a2
djnz r0, a1
ret
langewarten:
mov r2, #0
b3: mov r3, #0
b2: mov r4, #0
b1: djnz r4, b1
djnz r3, b2
djnz r2, b3
ret
Temp:
DB ‚Temperatur‘, 0
Feuchtigkeit:
DB ‚Feuchtigkeit3*‘, 0
end
