大家在使用fastavr的时候感觉哪里最方便,当然是液晶支持得比较全面啦!但是要在液晶上显示中文就要转点弯罗,好现在说说我是怎么弄的,如果你有更方便的办法就告诉我。
要显示中文或图片就要对图片取字模,fastavr有一个字模软件FastLCD是专门生成.bas格式的字模码。
先看看显示这个画面的程序:
$Device= m16 '使用mega16
$Stack = 32 '堆栈32字节
$Clock = 4 ' 时钟4MHz
$ShiftOut Data=PORTB.5, Clk=PORTB.7,Msb '申明一个简易SPI口
$GLCD Nokia3310, SCLK=PORTB.7, SDIN=PORTB.5, DC=PORTB.1, SCE=PORTB.4 '3310液晶连接定义
$Def RES=PORTB.0 '复位脚
$LeadChar=" ", Format(3,0) '显示数据格式化
$Def SL = PORTB.1 '去74HC165锁存
$Def led = PORTB.3 ' 去3310背光控制
Dim n_key As Byte '保存按键键值
Dim n As Byte '显示一个变量n好观察3310有没有运行
Dim x As Byte
Dim m As Byte
Dim F0HD As Flash Byte ' 英文字库F0HD
Dim dian As Flash Byte
Dim ya As Flash Byte
Dim Sclk1616HD As Flash Byte
n_key=255
Set DDRB.0: Nop 3: Set RES '复位3310LCD
Set DDRB.3
Reset led '点亮3310背光灯
GLcdInit '初始化3310LCD
FontSet F0HD '选择字体
GCls
GLcd(0,5),"www.atmel.com" '显示一个字符串
ImgSet(0,0),dian
ImgSet(15,0),ya
Do
GLcd(0,3),"key=";n_key '显示键值
GLcd(60, 0), n ' 显示一个变量n好观察3310有没有运行
Incr n
Reset SL
Set SL ' 锁存74HC165
Reset DDRB.5 '将SDIN变为输入为读取74HC165做准备
Set DDRB.7
n_key=ShiftIn '获得键值
n_key=Not n_key
WaitMs 100
Set DDRB.5 '将SDIN变为输出为写3310LCD做准备
ImgSet(68, 2, m), Sclk1616HD '循环显示沙漏的一个子图片
Incr m
If m>7 Then m=0
WaitMs 100
Loop
$Include "F0HD.bas" '英文字体的位置
$Include "dian.bas" '电的字模
$Include "ya.bas" '压的字模
$Include "Sclk1616HD.bas" '动画沙漏字模
程序大家估计已经看懂了,现在的问题是,下面的字模.bas数据是怎么得到的?
$Include "F0HD.bas" '英文字体的位置
$Include "dian.bas" '电的字模
$Include "ya.bas" '压的字模
$Include "Sclk1616HD.bas" '动画沙漏字模
1:$Include "F0HD.bas" '英文字体的位置,这个是fastavr例子自带的一个英文字母字符的一个字库,大家可以免费使用,呵呵
2:$Include "dian.bas" '电的字模 $Include "ya.bas" '压的字模,这才是我要说的
3:$Include "Sclk1616HD.bas" '动画沙漏字模,这个是fastavr例子里面自带的一个沙漏的字模库,免费拷贝,呵呵
最后就说说“电压”2个字的字模是怎么取的。这2个字可以做一起的,自己试试吧
要用到的字模软件Zimo21:
点击此处下载armok01118183.rar
要用到的字模软件FastLCD:
点击此处下载armok01118184.rar
原理图:
点击此处打开armok01118191.pdf
1.先打开字模软件Zimo21输入一个“电”字
2.将“电”字保存为位图
3.可以看到位图的尺寸是12×16象素
4.打开FastLCD新建一个12×16象素的新文档
5.选择格式
6.保存为.bas的字模文件就可以随时调用了,我这个字显示的是12×12的,而楼顶的是16×16的字体。
7.$Include "Sclk1616HD.bas" '动画沙漏字模是这样得到的
Fastavr中常用的字体下载:(有4种粗细不同的字体,还有←↑↓→的箭头,动画沙漏,进度条)
点击此处下载armok01118186.rar
-----
此内容被agui868于2006-05-21,23:24:03编辑过
-----
此内容被agui868于2006-05-21,23:26:01编辑过
一周热门 更多>