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

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

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

Добавлен: 12.06.2025

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

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

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

© MCS Electronics, 1995-2007

'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

'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

page -300-


© MCS Electronics, 1995-2007

Circle(20 , 20) , X , 255

' show circle

Wait 1

'remove circle

Circle(20 , 20) , X , 0

Wait 1

Next

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

CLEAR

Action

Clear serial input ir output buffer

Syntax

CLEAR bufname

Remarks

Bufname Serialbuffer name such as Serialin, Serialin1 , Serialout or Serialout1 For chips with more UARTS :

SERIALIN2, SERIALIN3, SERIALOUT2, SERIALOUT3

When you use buffered serial input or buffered serial output, you might want to clear the buffer.

While you can make the head pointer equal to the tail pointer, an interrupt could be active which might result in an update of the buffer variables, resulting in an unexpected result. The CLEAR statement will reset the head and tail pointers of the ring buffer, and it will set the buffer count variable to 0. The buffer count variable is new and introduced in 1.11.8.3. It counts how many bytes are in the buffer.

The internal buffercount variable is named _RS_BUFCOUNTxy , where X is R for Receive, and W for Write, and y is 0 for the first UART, and 1 for the second UART.

The

page -301-


© MCS Electronics, 1995-2007

See also

CONFIG SERIALIN, CONFIG SERIALOUT

ASM

Calls _BUF_CLEAR from MCS.LIB

Example

CLEAR SERIALIN

CLS

Action

Clear the LCD display and set the cursor to home.

Syntax

CLS

Syntax for graphical LCD

CLS

CLS TEXT

CLS GRAPH

Remarks

Clearing the LCD display does not clear the CG-RAM in which the custom characters are stored.

For graphical LCD displays CLS will clear both the text and the graphical display.

See also

$LCD , $LCDRS , LCD , SHIFTLCD , SHIFTCURSOR , SHIFTLCD

Example

'-----------------------------------------------------------------------------

------------

: lcd.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demo: LCD, CLS, LOWERLINE, SHIFTLCD, SHIFTCURSOR,

HOME

CURSOR, DISPLAY

'

'micro

: Mega8515

'suited for demo

: yes

'commercial addon needed

: no

'-----------------------------------------------------------------------------

------------

$regfile = "m8515.dat"

' specify the used

micro

page -302-

© MCS Electronics, 1995-2007

$crystal = 4000000

' used crystal

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

$sim

'REMOVE the above command for the real program !! '$sim is used for faster simulation

'note : tested in PIN mode with 4-bit

'Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = Portb.4 , E = Portb.5 , Rs = Portb.6

Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6

'These settings are for the STK200 in PIN mode

'Connect only DB4 to DB7 of the LCD to the LCD connector of the STK D4-D7 'Connect the E-line of the LCD to A15 (PORTC.7) and NOT to the E line of the LCD connector

'Connect the RS, V0, GND and =5V of the LCD to the STK LCD connector

Rem with the config lcdpin statement you can override the compiler settings

Dim A As Byte

Config Lcd = 16 * 2 'configure lcd screen

'other options are 16 * 4 and 20 * 4, 20 * 2 , 16 * 1a 'When you dont include this option 16 * 2 is assumed

'16 * 1a is intended for 16 character displays with split addresses over 2 lines

'$LCD = address will turn LCD into 8-bit databus mode

'

use this with uP with external RAM and/or ROM

'

because it aint need the port pins !

Cls

'clear the LCD

display

'display this at

Lcd "Hello world."

the top line

Wait 1

'select the lower

Lowerline

line

Wait 1

'display this at

Lcd "Shift this."

the lower line

Wait 1

For A = 1 To 10

'shift the text to

Shiftlcd Right

the right

'wait a moment

Wait 1

Next

For A = 1 To 10

'shift the text to

Shiftlcd Left

the left

page -303-


© MCS Electronics, 1995-2007

Wait 1

'wait a moment

Next

Locate 2 , 1

'set cursor

position

'display this

Lcd "*"

Wait 1

'wait a moment

Shiftcursor Right

'shift the cursor

Lcd "@"

'display this

Wait 1

'wait a moment

Home Upper

'select line 1 and

return home

'replace the text

Lcd "Replaced."

Wait 1

'wait a moment

Cursor Off Noblink

'hide cursor

Wait 1

'wait a moment

Cursor On Blink

'show cursor

Wait 1

'wait a moment

Display Off

'turn display off

Wait 1

'wait a moment

Display On

'turn display on

'-----------------NEW support for 4-line LCD------

Thirdline

Lcd "Line 3"

Fourthline

Lcd "Line 4"

'goto home on line

Home Third

three

Home Fourth

'first letteer

Home F

also works

Locate 4 , 1 : Lcd "Line 4"

Wait 1

'Now lets build a special character

'the first number is the characternumber (0-7)

'The other numbers are the rowvalues

'Use the LCD tool to insert this line

Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228

' replace ?

with number (0-7)

' replace ?

Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240

with number (0-7)

'select data RAM

Cls

Rem it is important that a CLS is following the deflcdchar statements because

it will set the controller back in datamode

'print the special

Lcd Chr(0) ; Chr(1)

character

'----------------- Now use an internal routine ------------

'value into ACC

_temp1 = 1

!rCall _write_lcd

'put it on LCD

End

CLOCKDIVISION

Action

Will set the system clock division available in the MEGA chips.

page -304-