پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی
این هم برنامه ؛
$lib "glcdks108.lbx"
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 400 '32
$swstack = 200
$framesize = 400
'============================================ =============================='
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , _
Ce = 0 , Ce2 = 1 , Cd = 3 , Rd = 4 , Reset = 2 , Enable = 5
'"""""""&q uot;"""""""&quo t;""''
Dim X As Word
Dim Y As Word
Declare Sub Touch
Setfont Font8x8
Wait 1
Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2 ' both displays off
Wait 1
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2 'both on
'"""""""&q uot;"""""""&quo t;"""""""" """""
Showpic 1 , 1 , Pic1
Wait 5
Cls
Main:
Cls
Showpic 1 , 1 , Main_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu2
Else
Goto Main
End If
Menu1:
Showpic 1 , 1 , Menu1_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu1_1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu1_2
Elseif X > 700 And X < 800 And Y > 700 And Y < 800 Then
Goto Menu1_3
Elseif X > 900 And X < 1000 And Y > 900 And Y < 1000 Then
Goto Main
Else
Goto Menu1
End If
Menu1_1:
Cls
Lcdat 1 , 10 , "Menu 1-1"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu1_2:
Cls
Lcdat 1 , 10 , "Menu 1-2"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu1_3:
Cls
Lcdat 1 , 10 , "Menu 1-3"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu2:
Showpic 1 , 1 , Menu2_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu2_1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu2_2
Elseif X > 700 And X < 800 And Y > 700 And Y < 800 Then
Goto Menu2_3
Elseif X > 900 And X < 1000 And Y > 900 And Y < 1000 Then
Goto Main
Else
Goto Menu2
End If
Menu2_1:
Cls
Lcdat 1 , 10 , "Menu 2-1"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
Menu2_2:
Cls
Lcdat 1 , 10 , "Menu 2-2"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
Menu2_3:
Cls
Lcdat 1 , 10 , "Menu 2-3"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
End
Pic1:
$bgf "pic1.bgf"
Main_pic:
$bgf "main_pic.bgf"
Menu1_pic: 'sms
$bgf "Menu1_pic.bgf"
Menu2_pic:
$bgf "Menu2_pic.bgf"
Menu2_1_pic:
$bgf "Menu2_1.bgf"
Menu2_2.pic:
$bgf "Menu2_2.bgf"
Menu2_3.pic:
$bgf "Menu2_3.bgf"
Menu1_1.pic:
$bgf "Menu1_1.bgf"
Menu1_2.pic:
$bgf "Menu1_2.bgf"
Menu1_3.pic:
$bgf "Menu1_3.bgf"
'"""""""&q uot;""""""' 9;' ""
Sub Touch
Do
Stop Adc
Start Adc
Config Porta.0 = Output
Config Porta.1 = Input
Config Porta.2 = Output
Config Porta.3 = Input
Set Porta.0
Reset Porta.1
Reset Porta.2
Reset Porta.3
X = Getadc(1)
Waitms 10
Config Porta.0 = Input
Config Porta.1 = Output
Config Porta.2 = Input
Config Porta.3 = Output
Reset Porta.0
Set Porta.1
Reset Porta.2
Reset Porta.3
Y = Getadc(2)
If X > 12 Or Y > 15 Then
Exit Do
End If
Loop
End Sub
$include "font8x8.font"
این هم برنامه ؛
$lib "glcdks108.lbx"
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
$hwstack = 400 '32
$swstack = 200
$framesize = 400
'============================================ =============================='
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , _
Ce = 0 , Ce2 = 1 , Cd = 3 , Rd = 4 , Reset = 2 , Enable = 5
'"""""""&q uot;"""""""&quo t;""''
Dim X As Word
Dim Y As Word
Declare Sub Touch
Setfont Font8x8
Wait 1
Glcdcmd &H3E , 1 : Glcdcmd &H3E , 2 ' both displays off
Wait 1
Glcdcmd &H3F , 1 : Glcdcmd &H3F , 2 'both on
'"""""""&q uot;"""""""&quo t;"""""""" """""
Showpic 1 , 1 , Pic1
Wait 5
Cls
Main:
Cls
Showpic 1 , 1 , Main_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu2
Else
Goto Main
End If
Menu1:
Showpic 1 , 1 , Menu1_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu1_1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu1_2
Elseif X > 700 And X < 800 And Y > 700 And Y < 800 Then
Goto Menu1_3
Elseif X > 900 And X < 1000 And Y > 900 And Y < 1000 Then
Goto Main
Else
Goto Menu1
End If
Menu1_1:
Cls
Lcdat 1 , 10 , "Menu 1-1"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu1_2:
Cls
Lcdat 1 , 10 , "Menu 1-2"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu1_3:
Cls
Lcdat 1 , 10 , "Menu 1-3"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu1
Menu2:
Showpic 1 , 1 , Menu2_pic
Call Touch
If X > 100 And X < 200 And Y > 100 And Y < 200 Then
Goto Menu2_1
Elseif X > 500 And X < 600 And Y > 500 And Y < 600 Then
Goto Menu2_2
Elseif X > 700 And X < 800 And Y > 700 And Y < 800 Then
Goto Menu2_3
Elseif X > 900 And X < 1000 And Y > 900 And Y < 1000 Then
Goto Main
Else
Goto Menu2
End If
Menu2_1:
Cls
Lcdat 1 , 10 , "Menu 2-1"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
Menu2_2:
Cls
Lcdat 1 , 10 , "Menu 2-2"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
Menu2_3:
Cls
Lcdat 1 , 10 , "Menu 2-3"
Lcdat 3 , 10 , "press pen"
Lcdat 5 , 10 , "to back"
Call Touch
If X < 1023 And Y < 1023 Then Goto Menu2
End
Pic1:
$bgf "pic1.bgf"
Main_pic:
$bgf "main_pic.bgf"
Menu1_pic: 'sms
$bgf "Menu1_pic.bgf"
Menu2_pic:
$bgf "Menu2_pic.bgf"
Menu2_1_pic:
$bgf "Menu2_1.bgf"
Menu2_2.pic:
$bgf "Menu2_2.bgf"
Menu2_3.pic:
$bgf "Menu2_3.bgf"
Menu1_1.pic:
$bgf "Menu1_1.bgf"
Menu1_2.pic:
$bgf "Menu1_2.bgf"
Menu1_3.pic:
$bgf "Menu1_3.bgf"
'"""""""&q uot;""""""' 9;' ""
Sub Touch
Do
Stop Adc
Start Adc
Config Porta.0 = Output
Config Porta.1 = Input
Config Porta.2 = Output
Config Porta.3 = Input
Set Porta.0
Reset Porta.1
Reset Porta.2
Reset Porta.3
X = Getadc(1)
Waitms 10
Config Porta.0 = Input
Config Porta.1 = Output
Config Porta.2 = Input
Config Porta.3 = Output
Reset Porta.0
Set Porta.1
Reset Porta.2
Reset Porta.3
Y = Getadc(2)
If X > 12 Or Y > 15 Then
Exit Do
End If
Loop
End Sub
$include "font8x8.font"
دیدگاه