© MCS Electronics, 1995-2007
See also
SHOWPIC , PSET , $BGF , LINE , LCD
Example
'----------------------------------------------------------------------------- |
|
|
------------ |
: t6963_240_128.bas |
'name |
|
'copyright |
|
: (c) 1995-2005, MCS Electronics |
'purpose |
|
: T6963C graphic display support demo 240 * 128 |
'micro |
|
: Mega8535 |
'suited for demo |
: yes |
'commercial addon needed |
: no |
'----------------------------------------------------------------------------- |
|
|
------------ |
|
$regfile = "m8535.dat" |
' specify the used |
micro |
|
' used crystal |
$crystal = 8000000 |
frequency |
|
' use baud rate |
$baud = 19200 |
$hwstack = 32 |
' default use 32 |
for the hardware stack |
' default use 10 |
$swstack = 10 |
for the SW stack |
' default use 40 |
$framesize = 40 |
for the frame space |
|
'----------------------------------------------------------------- |
(c) |
2001-2003 MCS Electronics |
' |
' |
T6963C graphic display support demo 240 * 128 |
'----------------------------------------------------------------- |
|
|
'The connections of the LCD used in this demo |
'LCD pin |
GND |
connected to |
' 1 |
GND |
'2 |
GND |
GND |
'3 |
+5V |
+5V |
'4 |
-9V |
-9V potmeter |
'5 |
/WR |
PORTC.0 |
'6 |
/RD |
PORTC.1 |
'7 |
/CE |
PORTC.2 |
'8 |
C/D |
PORTC.3 |
'9 |
NC |
not conneted |
'10 |
RESET |
PORTC.4 |
'11-18 |
D0-D7 |
PA |
'19 |
FS |
PORTC.5 |
'20 |
NC |
not connected |
'First we define that we use a graphic LCD ' Only 240*64 supported yet
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
'The dataport is the portname that is connected to the data lines of the LCD 'The controlport is the portname which pins are used to control the lcd 'CE, CD etc. are the pin number of the CONTROLPORT.
' For example CE =2 because it is connected to PORTC.2
'mode 8 gives 240 / 8 = 30 columns , mode=6 gives 240 / 6 = 40 columns
'Dim variables (y not used)
Dim X As Byte , Y As Byte
© MCS Electronics, 1995-2007
'Clear the screen will both clear text and graph display
Cls
'Other options are :
' CLS TEXT to clear only the text display ' CLS GRAPH to clear only the graphical part
Cursor Off
Wait 1
'locate works like the normal LCD locate statement ' LOCATE LINE,COLUMN LINE can be 1-8 and column 0-30
Locate 1 , 1
'Show some text
Lcd "MCS Electronics"
'And some othe text on line 2 Locate 2 , 1 : Lcd "T6963c support"
Locate 3 , 1 : Lcd "1234567890123456789012345678901234567890" Locate 16 , 1 : Lcd "write this to the lower line"
Wait 2
Cls Text
'use the new LINE statement to create a box |
|
'LINE(X0,Y0) - (X1,Y1), on/off |
' diagonal line |
Line(0 , 0) -(239 , 127) , 255 |
Line(0 , 127) -(239 , 0) , 255 |
' diagonal line |
Line(0 , 0) -(240 , 0) , 255 |
' horizontal upper |
line |
'horizontal lower |
Line(0 , 127) -(239 , 127) , 255 |
line |
' vertical left |
Line(0 , 0) -(0 , 127) , 255 |
line |
' vertical right |
Line(239 , 0) -(239 , 127) , 255 |
line |
|
Wait 2
'draw a line using PSET X,Y, ON/OFF
'PSET on.off param is 0 to clear a pixel and any other value to turn it on For X = 0 To 140
Pset X , 20 , 255 |
' set the pixel |
Next |
|
For X = 0 To 140 |
' set the pixel |
Pset X , 127 , 255 |
Next |
|
Wait 2 |
|
'circle time
'circle(X,Y), radius, color
'X,y is the middle of the circle,color must be 255 to show a pixel and 0 to clear a pixel
For X = 1 To 10 |
' show circle |
Circle(20 , 20) , X , 255 |
Wait 1 |
'remove circle |
Circle(20 , 20) , X , 0 |
Wait 1 |
|
Next |
|
© MCS Electronics, 1995-2007 |
|
Wait 2 |
|
For X = 1 To 10 |
' show circle |
Circle(20 , 20) , X , 255 |
Waitms 200 |
|
Next |
|
Wait 2 |
|
'Now it is time to show a picture |
|
'SHOWPIC X,Y,label |
|
'The label points to a label that holds the image data |
|
Test: |
|
Showpic 0 , 0 , Plaatje |
' show 2 since we |
Showpic 0 , 64 , Plaatje |
have a big display |
|
Wait 2 |
' clear the text |
Cls Text |
End |
|
'This label holds the mage data Plaatje:
'$BGF will put the bitmap into the program at this location $bgf "mcs.bgf"
'You could insert other picture data here
CONFIG KBD
Action
Configure the GETKBD() function and tell which port to use.
Syntax
CONFIG KBD = PORTx , DEBOUNCE = value [, DELAY = value]
Remarks
PORTx |
The name of the PORT to use such as PORTB or PORTD. |
DEBOUNCE By default the debounce value is 20. A higher value might be needed. The maximum is 255.
An optional parameter that will cause Getkbd() to wait the specified amount of time after the key is detected. This parameter might be added when you call GetKbd() repeatedly in a loop. Because of noise and static electricity, wrong values can be returned. A delau of say 100 mS, can eliminate this problem.
The GETKBD() function can be used to read the pressed key from a matrix keypad attached to a port of the uP.
You can define the port with the CONFIG KBD statement.
In addition to the default behavior you can configure the keyboard to have 6 rows instead of 4 rows.
CONFIG KBD = PORTx , DEBOUNCE = value , rows=6, row5=pinD.6, row6=pind.7
© MCS Electronics, 1995-2007
This would specify that row5 is connected to pind.6 and row7 to pind.7 Note that you can only use rows=6. Other values will not work.
See also
GETKBD
Example
'----------------------------------------------------------------------------- |
|
------------ |
: getkbd.bas |
'name |
'copyright |
: (c) 1995-2005, MCS Electronics |
'purpose |
: demo : GETKBD |
'micro |
: Mega48 |
'suited for demo |
: yes |
'commercial addon needed |
: no |
'-----------------------------------------------------------------------------
------------
$regfile = "m48def.dat" |
' specify the used |
micro |
' used crystal |
$crystal = 4000000 |
frequency |
' use baud rate |
$baud = 19200 |
$hwstack = 32 |
' default use 32 |
for the hardware stack |
' default use 10 |
$swstack = 10 |
for the SW stack |
' default use 40 |
$framesize = 40 |
for the frame space |
|
'specify which port must be used 'all 8 pins of the port are used Config Kbd = Portb
'dimension a variable that receives the value of the pressed key
Dim B As Byte
'loop for ever
Do
B = Getkbd()
'look in the help file on how to connect the matrix keyboard
'when you simulate the getkbd() it is important that you press/click the keyboard button
' before running the getkbd() line !!!
Print B
'when no key is pressed 16 will be returned
'use the Lookup() function to translate the value to another one
' this because the returned value does not match the number on the keyboad
Loop
End
CONFIG KEYBOARD
Action
Configure the GETATKBD() function and tell which port pins to use.