ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.06.2025

Просмотров: 8260

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

© 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

page -349-


© 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

page -350-


© 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.

Delay

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

page -351-


© 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.

page -352-