完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
刚开始做pic,因为要弄ad转换所以先要给pic加上一块液晶屏,翻出来去年买的nokia5110准备装上去,结果液晶屏自带的驱动程序放pic上就不好用了,不知道是因为pic和51区别太大了? 还是我的程序写错了啊。向各路大神求助,走过路过帮帮小弟吧~~
以下是程序: #include //#include #define uchar unsigned char #define uint unsigned int #define Dout 0 #define Din 1 #define LCD_RST PORTCbits.RC9 #define LCD_CE PORTCbits.RC8 #define LCD_DC PORTCbits.RC7 #define LCD_DIN PORTCbits.RC6 #define LCD_CLK PORTCbits.RC5 /************************************************* * 名称:Delay_us(uint t) * 作用:微秒延时函数 * 输入:t,延时时长 * 输出:无 *************************************************/ void Delay_us(uint t){ uchar i,j; for(i=0;i } /************************************************* * 名称:Delay_ms(uint t) * 作用:毫秒延时函数 * 输入:t,延时时长 * 输出:无 *************************************************/ void Delay_ms(uint t){ uchar i,j,k; for(i=0;i for(k=0;k<243;k++); } /************************************************* * 名称:LCD_write_byte(dat,comd) * 作用:向LCD写入一个字节数据 * 输入:dat数据内容,comd数据类型 * 输出:无 *************************************************/ void LCD_write_byte(uchar dat,uchar comd){ //向PCD8544写入一个字节 uchar i; LCD_CE=0; //使能LCD串行接口,开始数据传输 if(comd == 0) //选择数据类型 LCD_DC=0; //C/D位为低电平,输入控制命令/显示地址 else LCD_DC=1; //C/D位为高电平,输入显示内容 for(i=0;i<8;i++){ LCD_CLK = 1; //8位循环,按字节写入LCD if(dat & 0x80) LCD_DIN = 1; else LCD_DIN = 0; LCD_CLK = 0; //控制LCD时钟 dat = dat << 1; } LCD_CE=1; //关闭LCD串行接口,数据传输结束 } /************************************************* * 名称:LCD_clear() * 作用:LCD液晶屏幕清屏 * 输入:无 * 输出:无 *************************************************/ void LCD_clear(void){ uint i; LCD_write_byte(0x0c,0); LCD_write_byte(0x80,0); for(i=0;i<504;i++) LCD_write_byte(0,1); } /************************************************* * 名称:LCD_init() * 作用:初始化LCD * 输入:无 * 输出:无 *************************************************/ void LCD_init(){ LCD_RST = 0; //向LCD_RST发送一个低电平,使LCD复位 Delay_ms(1); LCD_RST = 1; LCD_CE = 0; //使能LCD串行输入 Delay_ms(1); LCD_CE = 1; //关闭LCD串行输入,LCD串行接口初始化 Delay_ms(1); LCD_write_byte(0x21,0); //开始向LCD写入控制命令//使用扩展命令控制LCD模式 LCD_write_byte(0xc8,0); //设置偏置电压 LCD_write_byte(0x06,0); //温度校正 LCD_write_byte(0x13,0); //1:48 LCD_write_byte(0x20,0); //使用基本命令 LCD_clear(); //清屏 LCD_write_byte(0x0c,0); //设定显示模式,正常显示 LCD_CE = 0; //关闭LCD串行输入接口 } /************************************************* * 名称:LCD_write_char(uchar c) * 作用:在当前地址上(上一次写入地址进1,或默认起始地址,0x00)向LCD写入一个字符 * 输入:写入字符内容(在芯片字库中相应代码) * 输出:无 *************************************************/ void LCD_write_char(uchar c){ LCD_write_byte(c,1); } /************************************************* * 名称:LCD_set_xy(uchar x,uchar y) * 作用:设定光标位置(x,y) * 输入:x,y,坐标位置 * 输出:无 *************************************************/ void LCD_set_xy(uchar x,uchar y){ LCD_write_byte(0x40 | x,0); //设定行坐标 LCD_write_byte(0x80 | y,0); //设定列坐标 } /************************************************* * 名称:LCD_write_string_en(uchar x,uchar y,char *s) * 作用:向指定位置(x,y)写入一串英文字符 * 输入:x,y,(写入坐标),写入字符串内容(在芯片字库中相应代码) * 输出:无 *************************************************/ void LCD_write_string_en(uchar x,uchar y,char *s){ LCD_set_xy(x,y); while(*s){ LCD_write_char(*s); s++; } } /************************************************* * 名称:main() * 作用:主函数 * 输入:无 * 输出:无 *************************************************/ int main(void){ //OSCCONbits.COSC=0b010; LCD_RST=1; TRISCbits.TRISC5 = Dout; TRISCbits.TRISC6 = Dout; TRISCbits.TRISC7 = Dout; TRISCbits.TRISC8 = Dout; //TRISCbits.TRISC9 = Dout; Delay_ms(50); LCD_init(); LCD_write_byte(0x07,1); } 另外附上5110驱动芯片的中文资料手册,话说着屏真的挺好,如果没出程序问题的话,分辨率够高,还挺经济,这次如果能驱这块屏,一定要多淘一点~
|
|
相关推荐
8个回答
|
|
二楼自己坐,哈哈~~
|
|
|
|
帮螺主顶一下。。。
|
|
|
|
主函数不合理,芯片配置位呢?pic都是默认开看门狗的
|
|
|
|
|
|
|
|
帖子沉了? 自己顶~ 向诸位大神求助~~
|
|
|
|
又沉了... 自己顶起来... 求大神露个头吧...
|
|
|
|
最后再顶贴...
还是那个程序,我加上了config熔丝位定义,加上了晶振使用定义,再连接5110的时候,还是不行啊... 那位大神能指导一下,我该按照什么思路调试液晶屏呢,现在连这屏幕还能不能用都不知道了... |
|
|
|
感谢分享。。。。。。。。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
205 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1253 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
848 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
853 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12013 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 05:59 , Processed in 0.733424 second(s), Total 85, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号