佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2798|回复: 11

【分享】介绍PCD8544 84x48LCD (N3310/5110)

[复制链接]
发表于 17-6-2013 11:09 PM | 显示全部楼层 |阅读模式
PCD8544 LCD控制器是用在NOKIA3310 和NOKIA 5110 LCD里,我试过这个LCD在点阵LCD里算是最容易用。这个控制器输入电压是3.3V,电流很小只有几百uA。如果用5V的系统可以使用2个1N4148来降压或者用LM317还是其他LDO来得到3.3V都可以,在5V的I/O里可以用3K~4.7K的电阻来串联降压给LCD。可以参考一下的网页:
http://www.kmitl.ac.th/~kswichit/8051sbc/8051SBC1/scope/CaptureWiz019.jpg

我是用模块的C1 10uF已经在PCB板接好了。在8051系统里,可以用弱上拉(weakpull up)这个弱上拉都限制电流在100-300uA里,就可以省去串联电阻。

LCD输入除了3.3V和GND,讯号的有
/RES  - 复位当输入接0 或GND时控制器进行复位(RESET)。开机时需要复位一下大约几百mS。
/SCE  - 是Chip Enable, 可以永久接0或GND。当接1时PCD8544忽略所有的输入讯号。
D/C   - Data/Command 是告诉PCD8544 输入的数据是指令还是显示数据,当在设计PCD8544时D/C应该是0。
SDIN - 串口数据输入。
SCLK -输入时钟,当SCLK上升沿时PCD8544就读SDIN。

开机时应该对PCD8544进行复位,把/RES为0大约几百mS再设为1。记得/SCE一定要设为0,要不然PCD8544会忽略所有的指令,/SCE可以永久设为0。然后就开始对PCD8544初期化。
一下我是实验的初期化指令所有指令一定要把D/C设定为0:
1.)在Function Set指令里 我先设定  00100,PD= 0 (唤醒控制器),V=0(向行位移动),H=1 (下一个为扩展指令)。把D/C设为0选择指令,然后送 21H 或者(00100001B)。

2.)在扩展里设定SET Vop ,LCD工作电压,这个数值可以改变显示深或浅。如果显示太浅或深可以试试改变这个数值。 1XXXXXXX ,X为0 -127也就是从10000000-11111111之内。 我实验时是用B2H 或10110010B。

3.)BIAS SYSTEM 为LCD 电压,我之设定为 13H或00010011B。

4.)返回基本指令,在SET FUNCTION里 PD=0,V=0,H=0

5.) DISPLAY CONTROL ,显示控制,00001D0E,当D,E为00时显示为空白,为10是正常显示,为01时显示全黑,为11时显示为反色,黑为白,白为黑。在这我是显示正常显示,设定为 0CH或00001100B。
设定以上的初期化PCD8544就可以用了。只要把D/C设为1,把8bits的数据送进PCD8544,就应该可以看图案。
其他的设定可以参考:
https://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf

在8051里,要用软SPI可以抄一下的代码,需要改一下DC,SDIN,SCLK,要送的数据放进A里:
LCD_COM:
                CLR        DC                ;SET COMMAND MODE
                SJMP        SPI_LCD

LCD_DAT:
                SETB        DC                ;SET DATA MODE
SPI_LCD:
                MOV        R0,#08H
SPI_LOOP:
                CLR        SCLK
                RLC        A
                MOV        SDIN,C
                SETB        SCLK
                DJNZ        R0,SPI_LOOP
                CLR        SCLK
                RET


8051初期化代码:
              MOV        A,#00100001B        ;SET 00100PD,V,H. HORIZON,EXT COMMAND.                ACALL        LCD_COM
                MOV        A,#0B2H                ;EXT COMMAND SET OPV
                ACALL        LCD_COM
                MOV        A,#13H                ;SET BIAS SYSTEM
                ACALL        LCD_COM
                MOV        A,#20H                ;SET BACK TO BASIC COMMAND
                ACALL        LCD_COM
                MOV        A,#00001100B        ;SET D,E =10 NORMAL DISPLAY
                ACALL        LCD_COM


PIC SPI的代码,需要改一下,GPIO0为SCLK,GPIO1为D/C,GPIO2为SDIN,DAT需要设定在REGISTER或SRAM的地址:
LCD_COM
              BCF       GPIO,1
              GOTO   SERIAL_LCD
LCD_DAT
             BSF            GPIO,1
SERIAL_LCD
                BCF                GPIO,0
                BTFSS        DAT,7
                BCF                GPIO,2
                BTFSC        DAT,7
                BSF                GPIO,2
                BSF                GPIO,0

                BCF                GPIO,0
                BTFSS        DAT,6
                BCF                GPIO,2
                BTFSC        DAT,6
                BSF                GPIO,2
                BSF                GPIO,0

                BCF                GPIO,0
                BTFSS        DAT,5
                BCF                GPIO,2
                BTFSC        DAT,5
                BSF                GPIO,2
                BSF                GPIO,0
               
                BCF                GPIO,0
                BTFSS        DAT,4
                BCF                GPIO,2
                BTFSC        DAT,4
                BSF                GPIO,2
                BSF                GPIO,0

                BCF                GPIO,0
                BTFSS        DAT,3
                BCF                GPIO,2
                BTFSC        DAT,3
                BSF                GPIO,2
                BSF                GPIO,0

                BCF                GPIO,0
                BTFSS        DAT,2
                BCF                GPIO,2
                BTFSC        DAT,2
                BSF                GPIO,2
                BSF                GPIO,0

                BCF                GPIO,0
                BTFSS        DAT,1
                BCF                GPIO,2
                BTFSC        DAT,1
                BSF                GPIO,2
                BSF                GPIO,0
               
                BCF                GPIO,0
                BTFSS        DAT,0
                BCF                GPIO,2
                BTFSC        DAT,0
                BSF                GPIO,2
                BSF                GPIO,0
                BCF                GPIO,0
                RETURN

用PIC的初期化代码:
                 MOVLW        00100001B                MOVWF        DAT
                CALL         LCD_COM

                MOVLW        0xB2
                MOVWF        DAT
                CALL         LCD_COM

                MOVLW        0x13
                MOVWF        DAT        
                CALL         LCD_COM

                MOVLW        0x20
                MOVWF        DAT
                CALL         LCD_COM

                MOVLW        00001100B
                MOVWF        DAT
                CALL         LCD_COM

一下是我借用别人的照片,主角是初音,原图是一个眼睛是关着的,开眼睛的是我自己画上去的。
http://www.youtube.com/watch?v=zGecMkOlnv0









本帖最后由 sougisyou 于 17-6-2013 11:14 PM 编辑

8051MIKU.JPG
MIKUB.BMP
MIKUA.BMP
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 17-6-2013 11:24 PM | 显示全部楼层
有哪位高手可以想想看用这样的LCD和PIC或其他MCU来做电子宠物一定很有趣或者什么小游戏,示波器等。
回复

使用道具 举报

发表于 19-6-2013 02:41 PM | 显示全部楼层
sougisyou 发表于 17-6-2013 11:24 PM
有哪位高手可以想想看用这样的LCD和PIC或其他MCU来做电子宠物一定很有趣或者什么小游戏,示波器等。

3310 我曾经用在客户的一个产品上。。但是, 为什么要用3310, 是因为他们的模具已经开了。。只有一个小洞口, 配对了一些GLCD, 刚好我手上的Nokia 3310 符合他的尺寸。。。

但是, 现在他们的新产品没有使用3310 了, 他们的用户投诉字小(可能用户老花), 更重要的是3310 已经停产了, 不容易买到了。。
下图是开发时的原型。。2008年

回复

使用道具 举报

 楼主| 发表于 19-6-2013 05:54 PM | 显示全部楼层
pic 发表于 19-6-2013 02:41 PM
3310 我曾经用在客户的一个产品上。。但是, 为什么要用3310, 是因为他们的模具已经开了。。只有一个小洞 ...

存仓3310、5110 模块还很容易买到。我试过122 x 32 没有成功,可能我的lcd模块坏了。那种标准点阵LCD控制起来没这种方便,因为122 x32 或128 x 64 里面是用两个控制器来控制,一个控制左边一个右边。

昨天看看回Gameboy的资料,Gameboy的LCD和这些不同,里面没有控制器没有VRAM比较像 4.3寸或7寸那种需要一直refresh。在想能不能用tile来玩这种lcd做成迷你游戏机。
http://gameboy.mongenel.com/dmg/asmmemmap.html

前几天和同事聊如何产生 正负电压给Gate 电压给7寸LCD,就聊到网上用这样简陋的方法得到负压。我在想如果做示波器用XC6382A 一个1.5V AA电池输入升到5V给MCU,用1N4148降压给PCD8544 LCD ,是否可以用同样方法来得到负压给运算放大器。条件是负压负载要很小, 正压需要有一定的负载要不然XC6382A觉得输出电压够了就停止开关,没有开关就没有交流电,就没有负压了。

*线路图负压输出段少了一个二极管忘了画。


本帖最后由 sougisyou 于 19-6-2013 06:01 PM 编辑

1.2V -.GIF
回复

使用道具 举报

 楼主| 发表于 19-6-2013 05:59 PM | 显示全部楼层
meegoo99 发表于 19-6-2013 12:59 PM
难得的高手啊
佩服

我不是什么高手,我也是抄别人的。这里可能还有很多高手在潜水着呢。 我只是尽量实验然后拿来分享给大家希望可以把本地论坛搞热起来。像国外论坛都很活跃,希望可以带动更多人来DIY。
回复

使用道具 举报

发表于 19-6-2013 06:25 PM | 显示全部楼层
sougisyou 发表于 19-6-2013 05:54 PM
存仓3310、5110 模块还很容易买到。我试过122 x 32 没有成功,可能我的lcd模块坏了。那种标准点阵LCD控制 ...
128 x 64 里面是用两个控制器来控制,一个控制左边一个右边。

还有一些是一个控制上半部, 另一个控制下半部。。

我曾经利用PWM, charge pump 的方式产生 负压。。




回复

使用道具 举报

Follow Us
发表于 19-6-2013 06:34 PM | 显示全部楼层
meegoo99 发表于 19-6-2013 12:59 PM
难得的高手啊
佩服

你也是高人啊。。要不要开新帖来谈论无线充电?Wireless Charging

谈谈线圈的制作,线圈的Q值,线圈的形状,  最佳的震荡频率, 怎样做到最高的效率。。损耗最小的充电器。。呵呵

回复

使用道具 举报

发表于 19-6-2013 11:39 PM | 显示全部楼层
meegoo99 发表于 19-6-2013 08:14 PM
д
Щdiy
3310ò

乱码。。你用手机发帖? 如果可以, 换去Unicode 吧。。。

回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 20-6-2013 02:07 AM | 显示全部楼层
pic 发表于 19-6-2013 06:25 PM
还有一些是一个控制上半部, 另一个控制下半部。。

我曾经利用PWM, charge pump 的方式产生 负压。 ...

其实都一样,这个我想过用MCU的PORT直接输出。后来发现只要有交流电成分就可以了。 我一直都没有完成的是用3310/5110 LCD做正式的数字示波器打算用STC15F204AE ADC是10bits可以上到300Khz左右,可以测量100Khz的讯号就不错了。用一个AA电池是考虑买一盒碱性电池是4个,1个AA可以用上5-10个小时就很方便的示波器了。

回复

使用道具 举报

 楼主| 发表于 20-6-2013 02:12 AM | 显示全部楼层
pic 发表于 19-6-2013 06:34 PM
你也是高人啊。。要不要开新帖来谈论无线充电?Wireless Charging

谈谈线圈的制作,线圈的Q值,线圈的 ...

这个之前有帮过一个学生。不好搞,我用过ROYER 共振方式。搞不好,可以变成电感炉 可以用来烧电子管的吸气剂。
回复

使用道具 举报

发表于 9-7-2013 11:50 AM | 显示全部楼层
sougisyou 发表于 20-6-2013 02:12 AM
这个之前有帮过一个学生。不好搞,我用过ROYER 共振方式。搞不好,可以变成电感炉  可以用来烧电子管的 ...

无线充电, 无线电供电那块, 有一家做RFID 的公司做到很好。。
Power harvest , 从无线电波萃取电力。。。

那家公司的成功是他的天线部分会自动调谐 ATU tuning, SWR 自动降到最低, 效率最高。。
我看到的demo 是, 在两寸的距离, 接收那一端可以可以点亮一颗蓝色的LED, 还很亮, 不是暗淡的, 可以判断感应电流最少20mA, 电压3V 以上
发射天线只是信用卡大小, 接收也是信用卡大小。。频率是13.56Mhz 短波。

总结: 发射和接收天线要调谐到最佳。。。

回复

使用道具 举报

发表于 15-7-2013 10:10 PM | 显示全部楼层
pic 发表于 9-7-2013 11:50 AM
无线充电, 无线电供电那块, 有一家做RFID 的公司做到很好。。
Power harvest , 从无线电波萃取电力。 ...

看到一篇文章,关于无线充电,直得参考
http://diydrones.com/profiles/blogs/wireless-power-and-charging
block_charger.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 20-4-2024 05:26 PM , Processed in 0.112815 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表