Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BASCOM AVR, help reference (2007).PDF
Скачиваний:
286
Добавлен:
12.08.2013
Размер:
17.02 Mб
Скачать

© MCS Electronics, 1995-2007

Example

Powersave

PRINT

Action

Send output to the RS-232 port.

Writes a string to a file.

Syntax

PRINT [#channel , ] var ; " constant"

Remarks

Var The variable or constant to print.

You can use a semicolon (;) to print more than one variable at one line.

When you end a line with a semicolon, no linefeed and carriage return will be added.

The PRINT routine can be used when you have a RS-232 interface on your uP.

The RS-232 interface can be connected to a serial communication port of your computer. This way you can use a terminal emulator as an output device.

You can also use the build in terminal emulator.

AVR-DOS

The AVR-DOS file system also supports PRINT. But in that case, only strings can be written to disk.

When you need to print to the second hardware UART, or to a software UART, you need to specify a channel : PRINT #1, "test"

The channel must be opened first before you can print to it. Look at OPENand CLOSE for more details about the optional channel. For the first hardware UART, there is no need to use channels.

PRINT " test" will always use the first hardware UART.

See also

INPUT,OPEN , CLOSE , SPC

Example

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

 

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

: print.bas

'name

'copyright

: (c) 1995-2005, MCS Electronics

'purpose

: demo: PRINT, HEX

'micro

: Mega48

'suited for demo

: yes

'commercial addon needed

: no

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

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

$regfile = "m48def.dat"

' specify the used

micro

' used crystal

$crystal = 4000000

page -589-

© MCS Electronics, 1995-2007

 

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

 

Dim A As Byte , B1 As Byte , C As Integer , S As String * 4

 

A = 1

 

Print "print variable a " ; A

'new line

Print

Print "Text to print."

'constant to print

B1 = 10

'print in hexa

Print Hex(b1)

notation

'assign value to

C = &HA000

c%

'print in hex

Print Hex(c)

notation

'print in decimal

Print C

notation

 

C = -32000

 

Print C

 

Print Hex(c)

 

Rem Note That Integers Range From -32767 To 32768

 

Print "You can also use multiple" _

 

; "lines using _"

 

Print "use it for long lines"

 

'From version 1.11.6.4 :

 

A = &B1010_0111

 

Print Bin(a)

 

S = "1001"

 

A = Binval(s)

'9 dec

Print A

End

 

PRINTBIN

Action

Print binary content of a variable to the serial port.

Syntax

PRINTBIN var [ ; varn]

PRINTBIN #channel, var [; varn]

Remarks

Var

The variable which value is send to the serial port.

varn

Optional variables to send.

 

 

The channel is optional and for use with OPEN and CLOSE statements.

page -590-

© MCS Electronics, 1995-2007

PRINTBIN is equivalent to PRINT CHR(var);

When you use a Long for example, 4 bytes are printed.

Multiple variables may be sent. They must be separated by the ; sign.

The number of bytes to send can be specified by an additional numeric parameter. This is convenient when sending the content of an array.

Printbin ar(1) ; 3 ' will send 3 bytes from array ar().

Printbin ar(1) ; 2 ; ar(2) ; 4 ' will send 2 bytes from array ar() starting at index 1, then 4 bytes from array ar() starting at index 4.

When you use Printbin ar(1) , the whole array will be printed.

When you need to print the content of a big array(array with more then 255 elements) you need to use the CONFIG PRINTBIN option.

See also

INPUTBIN , CONFIG PRINTBIN

Example

Dim A(10) As Byte, C As Byte For C = 1 To 10

A(c)= c 'fill array Next

Printbin A(1) 'print content of a(1). Not the whole array will be sent!

End

PSET

Action

Sets or resets a single pixel.

Syntax

PSET X , Y, value

Remarks

XThe X location of the pixel. In range from 0-239.

YThe Y location of the pixel. In range from 0-63.

value The value for the pixel. 0 will clear the pixel. 1 Will set the pixel.

The PSET is handy to create a simple data logger or oscilloscope.

See also

SHOWPIC , CONFIG GRAPHLCD , LINE

Example

page -591-

 

 

© MCS Electronics, 1995-2007

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

 

 

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

: 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

'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

page -592-

© MCS Electronics, 1995-2007

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

 

Wait 2

 

For X = 1 To 10

' show circle

Circle(20 , 20) , X , 255

Waitms 200

 

Next

 

Wait 2

 

page -593-