首 页 学 苑 例 子 工 具 下 载 商 城 论 坛
     
 

Nokia 3310 LCD  共有8条语句

Nokia 3310 84 x 48 象素,便宜的绘画式LCD.

这里你能找到详细的资料 http://www.myplace.nu/mp3/nokialcd.htm右下图是我做的Nokia 5110LCD界面板带8个按键。


 nokia_lcd_small.jpg                  

页面组织结构为行 (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显示器接线端子

nokia_lcd_conn.jpg                                             

不要忘记在 VoutGND之间接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的这些特点非常适合于电池供电的便携式通信设备和测试设备中

 

$GLCD

说明:告诉编译器LCDAVR的连接关系。

语法:
$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 连接到LCDRESET端,或者使用RC上电复位LCDreset 端通过10k 电阻上拉,同时100nF电容接到GND.

例子:
$GLCD NOKIA3310, SDIN=PORTA.0, SCLK=PORTA.1, DC=PORTA.2, SCE=PORTA.3

Gcls  

 

说明:清屏LCD

语法:
GCls

例子:
GCls   
清屏Graphic LCD

Contrast

 

说明:设置Nokia LCD 显示模块的对比度。

语法:
Contrast=numeric expression

注释:
numeric expression
其值为 0 to 127  (默认是 72).

例子:
For n=50 To 120
   Contrast=n    
用一个循环来查找最佳的对比度的值
   
Wait 1   
Next

Inverse

 

说明:设置常规显示或反色显示

语法:
Inverse(var)

注释:
var 0 -
常规显示,1 - 反色显示

仅仅全部可以反色显示,不可以单个字符反色显示,但可以先做出反色字体就可以了。

例子:
Inverse(1)   
全屏反色显示

FontSet  

 

说明:选择软字体。

语法:
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 字体 在这里

Glcd

 

说明:用指定的软字体显示文本到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个水平象素的地方开始显示61HEX

Gwrite

 

说明:写一个字节到LCD指定的地方。

语法:
GWrite(varX, varL), var

注释:
varX X
坐标,其值为 0 83单位:象素
varL
行,其值为 0 5单位:行,每行8个象素高
var 
byte型变量

这个函数是LCD本身固有的,不是编译器自己创造的。
Y
坐标是行而不是象素!

例子:
GWrite(17, 2), 15    
在第2行第17个水平象素的地方开始以二进制显示........

ImgSet

 

说明:显示图像或者图像数组的一部分到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显示到215

$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"   
声明图片文件的路径

 

 
 

链接:

 

周立功  AVR单片机DIY 21IC社区 正强单片坊 电子资料城
双龙电子 ICCAVR 力源信息 www.atmel.com 电子之城
华强电子世界 AVR与虚拟仪器 美信中国 www.fastavr.com ARM开发网
宁波三和壳体公司 杭州福芯电子 芯艺设计室 www.mcselec.com 东创科技

Copyright©2005 Basicavr.com Email:agui2008@21cn.net  TEL:13798456680 FAX:075584717022

地址:深圳市华强北路赛格电子市场一楼1B105柜 QQ:543527753 粤ICP备05079885号