Code:
Declare Sub Readtouch
Declare Function Key(byval Temp As Byte)as Byte
$regfile = "m644def.dat"
$crystal = 8000000
$hwstack = 300
$swstack = 300
$framesize = 300
$baud = 4800
Power_ Alias Portd.2
Config Power_ = Output
Power_ = 0
Taster Alias Pind.7
Config Taster = Input
Standbyled Alias Portd.4
Config Standbyled = Output
Licht Alias Porta.4
Config Licht = Output
Speaker Alias Portd.5
Config Speaker = Output
Buzzer Alias Portd.6
Config Buzzer = Output
Alarmtaster Alias Portd.3
Config Alarmtaster = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Setting up the a/d convertor
Dim X As Word , Y As Word
Dim Keynum As Byte
Dim Temp As Byte
Dim Ton As Word , Laenge As Word
Dim Uart_input As Byte
Dim Klingelflag As Bit
Dim Werklingel As Byte
Dim Alarman As Bit
Ton = 150
Laenge = 700
On Urxc Uart_interrupt
Enable Urxc
Bitwait Taster , Reset
Wakeup:
Power_ = 0
Config Graphlcd = 240 * 128 , Dataport = Portb , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6
Cls
Cursor Off
'###############################################################################
Hauptmenue:
'###############################################################################
'(
# # ###### # # ##### ##### # # ##### # # # # #####
# # # # # # # # # ## ## # ## # # # #
# # # # # # # # # # # # # # # # # # # #
##### ###### # # ##### # # # # #### # # # # # ####
# # # # # # # # # # # # # # # # #
# # # # # # # # # # # # ## # # #
# # # # ##### # # # # ##### # # ##### #####
')
Cls
Showpic 49 , 0 , Hauptmenue_bgf 'Keine Taste
Showpic 0 , 52 , On_bgf 'Taste 13
Showpic 196 , 52 , Off_i_bgf 'Taste 53
Showpic 71 , 52 , Alarm_bgf 'Taste 33
Showpic 49 , 104 , Stby_bgf 'Taste 25
Showpic 147 , 104 , Einstell_bgf 'Taste 45
Showpic 196 , 0 , Schloss_o_bgf 'Taste 51
Do
Keynum = Key(0)
Select Case Keynum
Case 13 : Sound Buzzer , Ton , Laenge 'ON-Taste
Alarman = 1
Showpic 0 , 52 , On_i_bgf
Showpic 196 , 52 , Off_bgf
Print "5"
Case 53 : Sound Buzzer , Ton , Laenge 'OFF-Taste
Alarman = 0
Showpic 0 , 52 , On_bgf
Showpic 196 , 52 , Off_i_bgf
Print "4"
Case 33 : Sound Buzzer , Ton , Laenge 'Alarm-Taste
Case 25 : Sound Buzzer , Ton , Laenge 'Standby-Taste
Goto Standby
Case 45 : Sound Buzzer , Ton , Laenge 'Einstellung-Taste
Goto Einstellungen
Case 51 : Sound Buzzer , Ton , Laenge 'Tastenschloss-Taste
End Select
Loop
End
'###############################################################################
Einstellungen:
'###############################################################################
'(
######## # # # ###### ##### ####### # # # # # # ###### ##### # #
# # ## # # # # # # # # ## # # # ## #
# # # # # # # # # # # # # # # # # # # #
#### # # # # ###### # #### # # # # # # # ###### ### # # #
# # # # # # # # # # # # # # # # # # # # #
# # # ## # # # # # # # # ## # # # # ##
####### # # # ###### # ####### ##### ##### ###### # # ###### ##### # #
')
Cls
Showpic 49 , 0 , Einstellungen_bgf
Showpic 196 , 0 , Schloss_o_bgf 'Taste 51
Showpic 0 , 0 , Zurueck_bgf 'Taste 11
Showpic 0 , 52 , Tastatur_bgf 'Taste 13
Showpic 98 , 52 , Lautsprecher_bgf 'Taste 33
Do
Keynum = Key(0)
Select Case Keynum:
Case 51 : Sound Buzzer , Ton , Laenge 'Tastenschloss-Taste
Case 11 : Sound Buzzer , Ton , Laenge 'Zurück-Taste
Goto Hauptmenue
Case 13 : Sound Buzzer , Ton , Laenge 'Code ändern-Taste
Case 33 : Sound Buzzer , Ton , Laenge 'Soundeinstellungs-Taste
End Select
Loop
Cls
Locate 4 , 1
Lcd "Error: SUB ohne Ende"
Locate 8 , 1
Lcd "Program stopp um Schaeden zu vermeiden"
Locate 11 , 1
Lcd "Error in SUB Einstellungen"
End
'###############################################################################
Standby:
'###############################################################################
'(
######### ######### ######### # # ###### ###### # #
# # # # ## # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # # #
# # # # # # # # # # # #
######### # ######### # # # # # ####### #
# # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # #
# # # # # # # # # # # #
######### # # # # ## ###### ###### #
')
Config Portb = Input
Config Portc = Input
Config Portd.1 = Input
Config Portd.0 = Input
Power_ = 1
Standbyled = 1
Do
If Taster = 0 Then
Standbyled = 0
Goto Wakeup
End If
Loop
'###############################################################################
'BGFs
'###############################################################################
Einstellungen_bgf:
$bgf "Einstellungen.bgf"
Tastatur_bgf:
$bgf "Tastatur.bgf"
Lautsprecher_bgf:
$bgf "Lautsprecher.bgf"
Zurueck_bgf:
$bgf "Zurueck.bgf"
Schloss_o_bgf:
$bgf "Schloss_offen.bgf"
Schloss_z_bgf:
$bgf "Schloss_zu.bgf"
Stby_bgf:
$bgf "Stby.bgf"
Einstell_bgf:
$bgf "Einstell.bgf"
Hauptmenue_bgf:
$bgf "Hauptmenue.bgf"
Off_bgf:
$bgf "Off.bgf"
Off_i_bgf:
$bgf "off_i.bgf"
On_bgf:
$bgf "on.bgf"
On_i_bgf:
$bgf "on_i.bgf"
Full_tasten_bgf:
$bgf "Full_tasten_2.bgf"
Einzel_bgf:
$bgf "Einzel_taste.bgf"
Doppel_bgf:
$bgf "Zweier_taste.bgf"
Dreier_bgf:
$bgf "Dreier_taste.bgf"
Alarm_bgf:
$bgf "Alarm.bgf"
'###############################################################################
'Subs
'###############################################################################
'unten--> Oben:
'1: Mama will besuchen
'2: Papa will besuchen
'3: Inga will besuchen
'4: 3x Code Falsch
'5: Alarm ausgelöst
'6: Tür zu
'7: Tür auf
'8: Test_antwort
'Oben--> Unten
'1: Komm
'2: Hau ab
'3: Sirene aus
'4: alarm aus
'5: alarm ein
'7: Sirene an
'8: Test
'9: Code ändern
'A: Klingel gesperrt
'B: Klingel entsperrt
'C: Debugg
Uart_interrupt:
Uart_input = Udr
Select Case Uart_input:
Case 1 : Werklingel = 1
Klingelflag = 1
Case 2 : Werklingel = 2
Klingelflag = 1
Case 3 : Werklingel = 3
Klingelflag = 1
End Select
Return
Function Key(byval Temp As Byte) As Byte
Readtouch
Temp = 0
If X < 1000 And Y < 1000 Then
Select Case X:
Case 746 To 855 : Temp = 10
Case 617 To 730 : Temp = 20
Case 490 To 600 : Temp = 30
Case 360 To 470 : Temp = 40
Case 230 To 340 : Temp = 50
End Select
Select Case Y:
Case 330 To 400 : Temp = Temp + 1
Case 416 To 480 : Temp = Temp + 2
Case 500 To 570 : Temp = Temp + 3
Case 586 To 655 : Temp = Temp + 4
Case 670 To 740 : Temp = Temp + 5
End Select
Key = Temp
Else
Key = 0
End If
End Function
Sub Readtouch:
Config Pina.0 = Output
Config Pina.2 = Output
Set Porta.0
Reset Porta.2
Ddra.1 = 0 '
Ddra.3 = 0
Waitms 20
X = Getadc(3)
Config Pina.1 = Output
Config Pina.3 = Output
Reset Porta.1
Set Porta.3
Ddra.0 = 0
Ddra.2 = 0
Waitms 20
Y = Getadc(2)
End Sub
Lesezeichen