Nokia3310LCD显示模块.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Nokia 3310 LCD显示 原创 Nokia 3310手机的点阵LCD模块不仅小巧、省电、驱动容易,而且价钱也便宜。因此,最近网上常见到不少朋友都在用单片机来驱动该模块,制做出很多作品。 在此,我要特别感谢神舟兄,是在他的热情帮助下,我才购得这款3310的液晶显示模块。如果有朋友需要的话也可以和他联系(神舟emal:conglp@ )。 实验目标 本实验我们就采用Atmega8或者Atmega48来驱动3310的LCD。 在LCD上显示和移动汉字; 在LCD的最上一行显示“欢迎光临电子爱好者俱乐部!”,并且让这串汉字在LCD上从左至右不停地移动。 在LCD上显示英文字符串; 在LCD的最底一行固定显示“”。 在LCD上显示位图。 在LCD的中间位置显示“AVR”和“实验室”两个位图。 本站商城提供该LCD模块邮购:/shop/index.asp 实验器材 Atmega8或者Atmega48芯片一只、3.3V稳压二极管一只、3310LCD点阵液晶显示屏。Atmega8和Atmega48的管脚顺序完全相同,硬件可以直接替用。 实验电路图及工作原理 由于3310LCD的工作电压范围是2.7-3.3V,因此实验中使用一个3.3V的稳压二极管D1将5V电源稳压为3.3V左右,为MCU和LCD供电。 MCU和LCD之间使用SPI接口传输数据。 LCD模块的引脚排列:从模块的背面看,管脚排列顺序从左至右分别为1至8脚。如下图所示: 注意: LCD模块的引脚即使用导线直接焊接上,也要用东西将金属引脚压下去,否则还是不能接触到内部电路 实验源程序 主程序:文件名是3310LCDTest.c #include iom48v.h #include macros.h #include lcd.h #include bmp.h /*******************************************/ void main(void) { OSCCAL=0x99;// 8M系统内部时钟校准 //设置MCU的I/O口 DDRB |= LCD_RST | LCD_DC | LCD_CE | SPI_MOSI | SPI_CLK| 0X02; SPSR |= BIT(SPI2X);// 设置SPI时钟倍速 SPCR |= BIT(SPE)|BIT(MSTR);// 使能SPI接口,主机模式,4M时钟 LCD_init(); //初始化LCD模块 LCD_write_String(1,5,); //显示英文字符串”“ LCD_draw_map(0,2,AVR_bmp,40,24); //显示“AVR”位图 LCD_draw_map(44,3,china_bmp,36,15); //显示”实验室“位图 PORTB |= 0x02; //LED亮 while(1) { LCD_move_chi(0, 0, 25); //汉字移动显示 } } LCD3310驱动程序:文件名3310LCD.c #include iom48v.h #include macros.h #include lcd.h #include 6x8.h #include chinese.h /*--------------------------------------- LCD_init: 3310LCD初始化 编写日期:2004-8-10 最后修改日期:2004-8-10 ----------------------------*/ void LCD_init(void) { PORTB = ~LCD_RST;// 产生一个让LCD复位的低电平脉冲 delay_1us(); PORTB |= LCD_RST; PORTB = ~LCD_CE ;// 关闭LCD delay_1us(); PORTB |= LCD_CE;// 使能LCD delay_1us(); LCD_write_byte(0x21, 0);// 使用扩展命令设置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);// 设定显示模式,正常显示 PORTB = ~LCD_CE ;// 关闭LCD } /*----------------------------------------------------------------------- LCD_clear: LCD清屏函数 编写

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档