|
Nokia 3310
是
84 x 48
象素,便宜的绘画式LCD.
这里你能找到详细的资料
http://www.myplace.nu/mp3/nokialcd.htm
,右下图是我做的Nokia
5110LCD界面板带8个按键。

▪ 页面组织结构为行 (Lines),行高 8
个象素.,总共 6行( Lines).
某些语句针对行而不是象素,比如显示ASCII字符。
▪ 显示器采用4线串口加一个 RESET信号,可以用RC复位也可以用一个AVR I/O端口去控制。
▪ 很遗憾的是,显示器不能屏读,如果要画点或线段就必须使用504 bytes
的内存做为绘画缓冲区, This is for upgrading - if there will be enought interest!
▪ 另外如果使用硬件SPI 可以更快的传输数据。
Nokia
3310LCD显示器接线端子
Nokia
5110LCD显示器接线端子

不要忘记在 Vout和GND之间接470nF电容!
请看
Nokia3310.bas
以下Nokia手机LCD模块均使用了pcd8544控制芯片:
作者: 笑含风 发布时间: 2004/10/14 10:40pm
chip name model name mobile type
pcd8544 LPH 7366 Nokia 5110, 5120, 5130, 5160, 6110,
6150
pcd8544 LPH 7677 Nokia 3210
pcd8544 LPH 7779 Nokia 3310, 3315, 3330, 3350, 3410
interface:
pin Signal name
3 SI serial data input of LCD
2 SCLK serial clock line of LCD
4 D/C (or sometimes named A0) command/data switch
5 CS chip select
8 /RES low active Reset input
6 GND Ground for printer port and +5V
1 VDD +5V (? mA) Chip power supply
7 Vout (nc)
--------------------------------------------------------------------------------
LPH7366是NOKIA公司生产的可用于其6150、6100等系列移动电话的液晶显示模块,国内厂家也生产有类似的兼容产品。该产品除应用于移动电话外,也可广泛应用于各类便携式设备的显示系统。与其它类型的产品相比,该模块具有以下特点:
●采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9条。
●采用多种串行通信协议进行数据通信(如MCS51单片机的串口模式0以及SPI等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。
●可通过导电斑马条连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。
●LCD控制器/驱动器芯片已绑定到LCD晶片上,模块的体积很小。
●采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式。
LPH7366的这些特点非常适合于电池供电的便携式通信设备和测试设备中
|
|
说明:告诉编译器LCD和AVR的连接关系。
语法:
$GLCD PCD8544, SDIN=PORTx.n, SCLK=PORTx.n, DC=PORTy.n, SCE=PORTy.n
注释:
PCD8544 or NOKIA3310 两种声明都可以,只要是PCD8544的控制芯片的LCD应该都可以控制
SDIN, SCLK, DC, SCE Nokia 3310显示器信号线的名字
SDIN
和
SCLK
必须在同一个端口!
DC
和
SCE
必须在同一个端口!
控制线的连接声明可以是任意的次序!
你可以用任意的
AvrPort pin
连接到LCD的RESET端,或者使用RC上电复位LCD,reset
端通过10k
电阻上拉,同时用100nF电容接到GND.
例子:
$GLCD NOKIA3310, SDIN=PORTA.0, SCLK=PORTA.1, DC=PORTA.2, SCE=PORTA.3
说明:清屏LCD
语法:
GCls
例子:
GCls ' 清屏Graphic LCD
说明:设置Nokia
LCD 显示模块的对比度。
语法:
Contrast=numeric expression
注释:
numeric expression
其值为
0 to 127 (默认是
72).
例子:
For n=50 To 120
Contrast=n ' 用一个循环来查找最佳的对比度的值
Wait 1
Next
说明:设置常规显示或反色显示
语法:
Inverse(var)
注释:
var
0 - 常规显示,1
- 反色显示
仅仅全部可以反色显示,不可以单个字符反色显示,但可以先做出反色字体就可以了。
例子:
Inverse(1) '
全屏反色显示
说明:选择软字体。
语法:
FontSet NameOfFontTable
注释:
NameOfFontTable
Table是保存在
Flash里面的字体表
NameOfFontTable 必须先用
($Included)声明在哪里!
字体可以使用工具
FastLCD 保存为
bas
格式!
选择的字体就是当前的字体,直到重新指定
例子:
Dim F0HD As Flash Byte
Dim F1HD As Flash Byte
Dim n As Byte
Dim s As String*20
n=15
s="Graphic LCD"
FontSet F1HD ' 选择字体F1
GLcd(15, 0), n ' 以F1字体显示n
GLcd(15, 7), s ' 以F1字体显示s
FontSet F0HD ' 选择字体F0
GLcd(15, 1), "HD61202" ' 以F0字体显示字符串
$Included "C:\FastAVR\F0HD.bas" ' F0 6x8 字体 在这里
$Included "C:\FastAVR\F1HD.bas" ' F1 8x8 字体 在这里
说明:用指定的软字体显示文本到LCD
语法:
GLcd(varX, varP), var
注释:
varX
开始一个字符的X坐标,其值为
0
~
83单位:象素
varP
行,其值为
0
~
5单位:行,每行8个象素高
var
数字变量,
字符串变量,
字符串常量或者hex码
Y坐标是行而不是象素!
必须先用 (FontSet)设置号字体再用
Glcd语句!
假如你显示的字很少不如采用图像的显示方法!
假如使用$LeadChar定义了字符前缀.,同样假如使用了Format()将插入小数点!
例子:
GLcd(15, 0), n
' 在第0行第15个水平象素的地方开始显示n
GLcd(15, 1), s ' 在第1行第15个水平象素的地方开始显示s
GLcd(15, 2), "This is HD61202" ' 在第2行第15个水平象素的地方开始显示字符串
GLcd(15, 3), Chr(61) ' 在第3行第15个水平象素的地方开始显示"A"
GLcd(15, 4), Hex(61) ' 在第4行第15个水平象素的地方开始显示61的HEX码
说明:写一个字节到LCD指定的地方。
语法:
GWrite(varX, varL), var
注释:
varX X坐标,其值为
0
~
83单位:象素
varL
行,其值为
0
~
5单位:行,每行8个象素高
var byte型变量
这个函数是LCD本身固有的,不是编译器自己创造的。
Y坐标是行而不是象素!
例子:
GWrite(17, 2), 15 ' 在第2行第17个水平象素的地方开始以二进制显示........
说明:显示图像或者图像数组的一部分到LCD指定的位置。
语法:
ImgSet(varX, varP), NameOfImgTable
假如你是显示图片数组,那么可以产生动画效果:
(图片必须保存为ImageArray,
请使用工具 FastLCD
来创造!)
ImgSet(varX, varP, var), NameOfImgTable
注释:
varX X
坐标
0 and 83
varL
行,其值为
0
~
5单位:行,每行8个象素高
var图像的哪个部分,
(索引在ImageArray)
NameOfImgTable 保存在Flash
里面的位图
Y坐标是行而不是象素!
NameOfImgTable
必须用
($Included)来声明路径!
位图可以使用
FastLCD 编辑并保存为.bas格式。
哪个保存的位图通过$Included读到源程序
例子:
Dim Img0 As Flash Byte
Dim Img1 As Flash Byte
ImgSet(15, 2), Img1 '
将位图Img1显示到2行15列
$Included "C:\FastAVR\Img0.bas"
' 声明Img0位图文件的路径
$Included "C:\FastAVR\Img1.bas" ' 声明Img1位图文件的路径
第二语法:
使用图片数组,可以显示大文字,图标或动画,
所有的子图片保存为单个位图文件!
使用下面的方法画动画,通过FastLCD产生一个有索引的图片文件
例子:
Dim Sclk1616HD As Flash Byte
ImgSet(15, 2, 1), Sclk1616HD ' 图片索引1,即显示第二个子图片
$Included "C:\FastAVR\Sclk1616HD.bas" '
声明图片文件的路径
|