厚着脸皮的问问哪位前辈编写过PIC16F控制液晶屏的程序

[复制链接]
5239|22
 楼主| 许世霞 发表于 2009-3-3 01:26 | 显示全部楼层 |阅读模式
   哪位前辈编过PIC16F877A控制240X128点阵液晶屏的程序呀?可不可以借小女子学习一下,理由不多说了嘿嘿。。。只为学习。先谢谢各位前辈了。如果有愿意慷慨解囊的前辈,就给我留个言哦
yewuyi 发表于 2009-3-3 08:54 | 显示全部楼层

只要根据屏的通信协议发数据就可以了

屏不一样,程序也有差别,所以即使给你程序也是没用的
headwolf 发表于 2009-3-3 09:07 | 显示全部楼层

不同的屏是不一样的,一般PIC的都是用IO模拟

用IO模拟时序。
xieyuanbin 发表于 2009-3-3 09:29 | 显示全部楼层

吼吼,小女生起点太高了哦

你先把LED点亮再说吧。这是单片机中的HELLO WORLD
 楼主| 许世霞 发表于 2009-3-3 11:02 | 显示全部楼层

前辈,我LED没有用PIC点亮过,用51系列的倒是点亮了

&nbsp;前辈那我想看看行不?可不可以给我看看???<br />&nbsp;<br />&nbsp;还有就是屏的时序我在哪里能找的到,我用的是T6960控制的,
zlong_2008 发表于 2009-3-3 11:33 | 显示全部楼层

我用PIC16F77写过240*64的。

虽然显示出来了,但是翻页的时候偶尔会掉页,没有搞明白,就这样用在生产上了。感觉不完美。
 楼主| 许世霞 发表于 2009-3-3 14:57 | 显示全部楼层

谢谢前辈了!再次感谢!只能说声感谢的话了呵呵

  
soso 发表于 2009-3-3 15:20 | 显示全部楼层

网络交流是对等的

&nbsp;&nbsp;别前辈前辈的,估计口上“前辈”,心里说“先辈”吧。<br />&nbsp;&nbsp;初学者没事就去www.picpic.cn灌水,那是MCHP上海技术支持大牛们开办的。
xwj 发表于 2009-3-3 15:31 | 显示全部楼层

看! 乱叫前辈把别人叫老了吧?

要吸取教训哦,<br />下次别叫前辈了,要叫GG啊!
谈的元 发表于 2009-3-3 20:42 | 显示全部楼层

6楼这样也敢出产品呀?

楼主,你有6960的资料吗?<br /><br />屏的写很简单。关键是看好资料
 楼主| 许世霞 发表于 2009-3-3 20:46 | 显示全部楼层

谈的元前辈

&nbsp;谈的元前辈我几乎没有资料,在网上找也不知什么东西是用的上的?前辈可否支援俺一下嘿嘿
谈的元 发表于 2009-3-3 21:10 | 显示全部楼层

呵呵,我有呀!怎么给晚辈呀!

  
ddb_21ic 发表于 2009-3-3 21:52 | 显示全部楼层

自己去下载,16F877A驱动LCD19264B

http://download.csdn.net/source/557984
 楼主| 许世霞 发表于 2009-3-3 23:38 | 显示全部楼层

嘿嘿。。。

&nbsp;ddb_21ic前辈谢谢了嚎呵呵。。<br />&nbsp;谈的元前辈可不可以发到我的邮箱里来呢0203050@163.com<br />
xwj 发表于 2009-3-3 23:56 | 显示全部楼层

哇,这里也感染了

嚎的毛病...
 楼主| 许世霞 发表于 2009-3-4 11:30 | 显示全部楼层

.....

洗碗机GG对我有什么不满嚎?就直接说嚎,我是个直肠子嚎,不要太委婉咯嚎
xieyuanbin 发表于 2009-3-4 20:02 | 显示全部楼层

被你前辈、嚎出病了。

给你一段向HT1621液晶驱动芯片写数据的程序吧,只许看一眼哦!<br />/************************************************************<br />*Function:&nbsp;&nbsp;&nbsp;&nbsp;向LCD写数据函数,101<br />*parameter:&nbsp;&nbsp;&nbsp;&nbsp;RAM&nbsp;address、RAM&nbsp;data写入D0D1D2D3<br />*Return:<br />*Modify:<br />*************************************************************/<br />void&nbsp;LcdWriteData(unsigned&nbsp;char&nbsp;aa,unsigned&nbsp;char&nbsp;bb)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;k,tt;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdCs&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;aa&nbsp;&lt&lt=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt6;k++)//写地址<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tt&nbsp;=&nbsp;aa&nbsp;&&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tt&nbsp;==&nbsp;0x80)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa&nbsp;&lt&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt4;k++)//写RAM值<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tt&nbsp;=&nbsp;bb&nbsp;&&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(tt&nbsp;==&nbsp;0x80)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bb&nbsp;&lt&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdCs&nbsp;=&nbsp;1;<br />}<br />/************************************************************<br />*Function:&nbsp;&nbsp;清LCD显示屏所有位元<br />*parameter:<br />*Return:<br />*Modify:<br />*************************************************************/<br />void&nbsp;LcdClear(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;l;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;LcdCs&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;for(l=0;l&lt110;l++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteBit(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;LcdCs&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />/************************************************************<br />*Function:&nbsp;&nbsp;&nbsp;&nbsp;显示数约定LCD屏上从左至右依次为1、2、3,LCD显示刷新函数<br />*parameter:&nbsp;&nbsp;&nbsp;&nbsp;aa为地址<br />*Return:<br />*Modify:<br />*************************************************************/<br />void&nbsp;LcdDisp(unsigned&nbsp;char&nbsp;aa)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;m,yy,zz;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(m=0;m&lt8;m++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;=&nbsp;Disdata[0];&nbsp;&nbsp;&nbsp;&nbsp;//取每位数据的第一段<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yy&nbsp;=&nbsp;zz&nbsp;&&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;=&nbsp;Disdata[1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;&=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;&gt&gt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yy&nbsp;|=&nbsp;zz;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;=&nbsp;Disdata[2];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;&=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;zz&nbsp;&gt&gt=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yy&nbsp;|=&nbsp;zz;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LcdWriteData(aa,yy);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aa&nbsp;+=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disdata[0]&nbsp;&lt&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disdata[1]&nbsp;&lt&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Disdata[2]&nbsp;&lt&lt=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />
暮然 发表于 2009-3-4 21:58 | 显示全部楼层

很有感觉!

记得两年前毕业刚工作时,就是摸着液晶过来的。用877a控制240128、320240的,做了不少。现在改用lpc2000控制液晶了,整的个工控设备就像人机界面似的,当然不能动画了。走过来的路,回头看看,蛮有味道的。<br />怎么用就不多说了,看手册,io口模拟时序,操作寄存器。多做益善。
 楼主| 许世霞 发表于 2009-3-5 13:18 | 显示全部楼层

不好意思!

&nbsp;&nbsp;我搞混了,我的是51系列芯片控制的液晶!站不住了!这两种芯片编程好像区别很大的
tcc8073 发表于 2009-3-10 14:56 | 显示全部楼层

单片机只要会一种就可以很快上手其他的了

单片机只要会一种就可以很快上手其他的了,51和PIC其实差别也不是那么大,只是习惯问题,RAM体,ROM块,中断没有优先,其他差别也很容易搞定的,把有区别的常用程序写成标准的格式,用的时候直接调用就可以了,做过的东西不要重复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

3781

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部