|
大家在使用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個字可以做一起的,自己試試吧
1.先打開字模軟件Zimo21輸入一個“電”字
2.將“電”字保存為位圖
3.可以看到位圖的尺寸是12×16象素
4.打開FastLCD新建一個12×16象素的新文檔
5.選擇格式
6.保存為.bas的字模文件就可以隨時調用了,我這個字顯示的是12×12的,而樓頂的是16×16的字體。
7.$Include "Sclk1616HD.bas" '動畫沙漏字模是這樣得到的
Fastavr中常用的字體下載:(有4種粗細不同的字體,還有←↑↓→的箭頭,動畫沙漏,進度條)
點擊此處下載86.rar
|
|