|
我们在使用BASCOM的时候免不了要用到绘画式的液晶进行显示一些图片,中文,字符串,变量等,有些朋友不知道怎样去做这个工作,因此我做了这个简单的教程,希望对需要的朋友有帮助,BASCOM-AVR直接支持的绘画液晶有:
T6963C(128*64~240*128),KS0108(HD61202),SED1520
1.首先我们用字模软件,设置字体为小4,这个字体是16x16点阵的,确定然后输入中文“中文显示教程”
2.输入之后点保存图像:
3.选择BASCOM中菜单:TOLS/Graphic converter,接着点Load装入刚刚保存的那个位图:
4.按图中的选项,点Save保存字模,把字模保存到basic源程序的目录
5.字模已经被保存为了“jiaocen.bgf”,我们可以在程序中使用了。
要用到的字模软件Zimo21:
点击此处下载armok01118157.rar
font8x8.font字体下载:
点击此处下载armok01118158.rar
例子:
$regfile = "m16def.dat"
$crystal = 7372800
$lib "glcdKS108.lib" 'KS0108液晶的支持库
Waitms 200
'配置12864LCD和AVR的连接关系
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portb , Ce1 = 7 , Ce2 = 6 , Cd = 3 , Rd = 4 , Reset = 2 , Enable = 5
Dim X As Byte , Y As Byte
Dim C As Byte , I As Byte
Abc:
Cls
For I = 0 To 63
Line(0 , I) -(127 , I) , 1 '用横线填充LCD检查有没有坏点
Next
Wait 3
Cls
Setfont Font8x8 '设置8x8的英文字体用于显示字符串和变量
Showpic 15 , 0 , Jiaocen '显示"中文显示教程"
Lcdat 8 , 0 , "www.basicavr.com"
Wait 1
For Y = 1 To 20
Circle(30 , 30) , Y , 1
X = Y - 1
Circle(30 , 30) , X , 0 '画圆并擦除圆
Next
Cls
Lcdat 5 , 0 , "C="
Lcdat 5 , 16 , C '显示变量
C = C + 1
Wait 1
Showpic 0 , 0 , Dian '显示中文“电”字
Wait 2
Goto Abc
End
$include "font8x8.font" '8x8的英文字体
Dian:
$bgf "dian.bgf" '"电"的字模
Jiaocen: '"中文显示教程"的字模
$bgf "jiaocen.bgf"
源程序:
点击此处下载armok01118159.rar
图片:
显示文本:
Lcdat x , y , "string" ,col
x为行座标(1~8),y为列座标(1~64),col=0表示正常显示,可以忽略,col=1表示反色显示
正常显示文本:
Lcdat 1 , 1 , "ABC"
反色显示文本:
Lcdat 2 , 1 , "ABC" , 1
显示图片:
Showpic x , y , picname
在x,y的位置开始显示图片
picname为字模的名字,必须适当的位置用下面的格式指示
picname:
$bgf "picname.bgf"
任意位置画点或清除一个点:
Pset x , y , col
x为横座标单位象素,y为纵座标单位象素,col=1画点,col=0清除点
例如:
Pset 2 , 3 , 1 '表示在x=2,y=3的地方画出一个点
Pset 10 , 10 , 0 '表示在x=10,y=10的地方画擦除一个点
画圆或清除一个圆:
Circle(x , y) , r , col
x为横座标单位象素,y为纵座标单位象素,r为圆的半径单位象素,col=1画圆,col=0清除圆
例如:
Circle(30 , 30) , Y , 1
表示以x=30,y=30为圆心,变量y为半径在液晶上画出一个圆
Circle(20 , 30) , Y , 0
表示以x=20,y=30为圆心,变量y为半径在液晶上擦除一个圆
画线或清除线:
Line(x1 , y1) -(x2 , y2) , col
x1,y1为线段的起始座标,x2,y2为线段的结束座标,col=1画线段,col=0清除线段
例如:
Line(0 , 0) -(128 , 64) , 1 '画从液晶左上角到右下脚的斜线
Line(0 , 5) -(0 , 64) , 1 ' 画一条垂直线
Line(0 , 0) -(128 , 0) , 1 '画水平线 |
|