如何用Atmega 16单片机驱动字符型液晶显示芯片

发布者:w2628203123最新更新时间:2021-03-10 来源: eefocus关键字:Atmega  单片机驱动  字符型液晶 手机看文章 扫描二维码
随时随地手机看文章

研究了一下,如何用ATmega 16单片机,来驱动字符型液晶显示芯片,现把研究心得写出来:


我手里的这个RT1601液晶显示模块,使用的是S6A0069显示芯片。


各个引脚简单说明一下:

控制和数据引脚配置如下:


-------------------------------


PORTD_0 -RS


PORTD_1 - R/W


PORTD_2 - E


PORTA - DATA BUS


------------------------------


LCD.h


1#ifndef_LCD_H_


2#define_LCD_H_


3/*****************************************


4RS-PORTD_0


5R/W-PORTD_1


6E-PORTD_2


7DB-PORTA


8******************************************/


9voidLCD_Set_RS(void);


10voidLCD_Clear_RS(void);


11voidLCD_Set_RW(void);


12voidLCD_Clear_RW(void);


13voidLCD_Set_E(void);


14voidLCD_Clear_E(void);


15voidLCD_CheckBF(void);


16//WriteCommand


17voidLCD_Write_Cmd(unsignedcharbyCmd);


18//WriteData


19voidLCD_Write_Data(unsignedcharbyData);


20voidLCD_Delay_5ms(void);


21voidLCD_Delay_500ms(void);


22voidLCD_PortInit(void);


23


24//ApplicaTIonInterface


25voidLCD_Init(void);


26voidLCD_Display(char*pstrText);


27


28#endif


29


LCD.c


这里是液晶驱动的实现部分,对外开放两个接口:LCD_Init, LCD_Display。(我这个模块,是两行显示的,共16个字符)


1#include“LCD.h”


2#include


3#include


4


5/*****************************************


6RS-PORTD_0


7R/W-PORTD_1


8E-PORTD_2


9DB-PORTA


10******************************************/


11


12


13voidLCD_Set_RS(void)


14{


15PORTD“=(1《《0);


16


17return;


18}


19


20voidLCD_Clear_RS(void)


21{


22PORTD&=~(1《《0);


23


24return;


25}


26


27voidLCD_Set_RW(void)


28{


29PORTD”=(1《《1);


30


31return;


32}


33


34voidLCD_Clear_RW(void)


35{


36PORTD&=~(1《《1);


37


38return;


39}


40


41voidLCD_Set_E(void)


42{


43PORTD“=(1《《2);


44


45return;


46}


47


48voidLCD_Clear_E(void)


49{


50PORTD&=~(1《《2);


51


52return;


53}


54


55voidLCD_CheckBF(void)


56{


57DDRA=0x00;//Input


58


59LCD_Clear_RS();


60LCD_Set_RW();


61LCD_Set_E();


62while(PINA&0x80)


63{


64;


65}


66LCD_Clear_E();


67


68DDRA=0xFF;//Output


69


70return;


71}


72


73//WriteCommand


74voidLCD_Write_Cmd(unsignedcharbyCmd)


75{


76LCD_CheckBF();


77


78LCD_Clear_RS();


79LCD_Clear_RW();


80LCD_Set_E();


81PORTA=byCmd;


82LCD_Clear_E();


83


84return;


85}


86


87//WriteData


88voidLCD_Write_Data(unsignedcharbyData)


89{


90LCD_CheckBF();


91


92LCD_Set_RS();


93LCD_Clear_RW();


94LCD_Set_E();


95PORTA=byData;


96LCD_Clear_E();


97


98return;


99}


100


101voidLCD_Delay_5ms(void)


102{


103unsignedinTI=5552;


104while(i--)


105{


106;


107}


108


109return;


110}


111


112voidLCD_Delay_500ms(void)


113{


114unsignedchari=5;


115unsignedcharj=0;


116


117while(i--)


118{


119j=7269;


120while(j--)


121{


122;


123}


124}


125


126return;


127}


128


129//PorTInit


130voidLCD_PorTInit(void)


131{


132PORTD=0x00;


133DDRD=0xFF;//Output


134DDRA=0xFF;


135


136return;


137}


138


139//LCDInit


140voidLCD_Init(void)


141{


142LCD_PortInit();


143


144LCD_Delay_500ms();


145


146LCD_Write_Cmd(0x38);//FunctionSet.8bitdatalength,2-line,5*8font


147LCD_Delay_5ms();


148LCD_Write_Cmd(0x0C);//DisplayON/OFFControl.DisplayON,CursorOFF,BlinkOFF


149LCD_Delay_5ms();


150LCD_Write_Cmd(0x01);//DisplayClear.


151LCD_Delay_5ms();


152LCD_Write_Cmd(0x06);//EntryModeSet.Incrementmode,Entireshiftoff


153


154return;


155}


156


157voidLCD_Display(char*pstrText)


158{


159unsignedchari=0;


160


161LCD_Write_Cmd(0x80”0x00);//1LinePosition


162while(*pstrText!=0x00)


163{


164if(i==8)


165{


166LCD_Write_Cmd(0x80“0x40);//2LinePosition


167}


168


169LCD_Write_Data(*(pstrText++));


170i++;


171}


172


173return;


174}


175


176


client端调用如下:


1//ICC-AVRapplicationbuilder:2008-6-48:41:19


2//Target:M16


3//Crystal:4.0000Mhz


4#include


5#include


6#include”LCD.h“


7


8voidmain(void)


9{


10LCD_Init();


11LCD_Display(”RT1601DemobyWF“);


12


13while(1)


14{


15;


16}


17


18return;


19}


关键字:Atmega  单片机驱动  字符型液晶 引用地址:如何用Atmega 16单片机驱动字符型液晶显示芯片

上一篇:1602b液晶显示使用范例
下一篇:基于Atmega128单片机无人车控制系统电路设计

推荐阅读最新更新时间:2024-10-27 19:03

如何用Atmega 16单片机驱动字符液晶显示芯片
研究了一下,如何用ATmega 16单片机,来驱动字符型液晶显示芯片,现把研究心得写出来: 我手里的这个RT1601液晶显示模块,使用的是S6A0069显示芯片。 各个引脚简单说明一下: 控制和数据引脚配置如下: ------------------------------- PORTD_0 -RS PORTD_1 - R/W PORTD_2 - E PORTA - DATA BUS ------------------------------ LCD.h 1#ifndef_LCD_H_ 2#define_LCD_H_ 3/****************************
[单片机]
如何用<font color='red'>Atmega</font> <font color='red'>16</font><font color='red'>单片机</font><font color='red'>驱动</font><font color='red'>字符</font><font color='red'>型</font><font color='red'>液晶</font>显示芯片
AVR单片机—(三)、ATMEGA16驱动16*2点阵字符液晶模块—01
三、ATMEGA16驱动16*2点阵字符液晶 三—(01)、ATMEGA16驱动16*2点阵字符液晶 这篇文章只是简单的驱动并让1602显示,并没有用到读数据和读状态的部分,也没有用到读写检测(要是感兴趣的话还是写写这里吧) 1、那就是用什么样的液晶,又该怎么驱动,现在把datasheet的部分图片贴出来,看看,so easy~~的 1)就是它的引脚说明(个人感觉要想具体了解还是在网上搜搜吧~~我这里也就是简单了解~) 这里也就三个引脚需要注意就是RS、R/W、E,这三个引脚,传输数据的必用引脚,别的就不用详细介绍了吧~~(后面的程序就是根据这三个引脚的时序图来写的! 2)(说实话,我真的不太想详细说,因为好多人对于驱动
[单片机]
AVR<font color='red'>单片机</font>—(三)、<font color='red'>ATMEGA</font><font color='red'>16</font><font color='red'>驱动</font><font color='red'>16</font>*2点阵<font color='red'>字符</font><font color='red'>液晶</font>模块—01
16X2字符液晶显示模块的驱动
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍它的编程方法。 screen.width-300)this.width=screen.width-300" align=left border=0> screen.width-300)this.width=screen.width-300" align=left border=0>
[单片机]
51 单片机综合学习系统之 1602字符液晶显示篇
在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算 器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、 LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应 用。 在单片机系统中应用晶液显示器作为输出器件有以下几个优点: 显示质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器 (CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会
[单片机]
51 <font color='red'>单片机</font>综合学习系统之 <font color='red'>16</font>02<font color='red'>字符</font><font color='red'>型</font><font color='red'>液晶</font>显示篇
Lcd.h头文件下载-字符液晶LCD的AVR单片机驱动程序头文件
/***************************************************************************** 单 位:广西民族大学物理与电子工程学院07物本班 文件名称:Lcd.h 文件标识:_LCD_H_ 摘 要:字符型液晶LCD的AVR单片机驱动程序头文件 当前版本:V2.0 *****************************************************************************/ #ifndef _LCD_H_ #define _LCD_H_ #include BaiYuAvrKuD
[单片机]
PIC单片机驱动LCD1602液晶循环显示两行字符串程序
#include pic.h __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 //LCD控制线宏定义 #define rs RA0 #define rw RA1 #define e RA2 char web = { www.51hei.com }; char tel = { QQ:776860123 }; void init(); //申明I/O口初始化函数 void lcd_init(); //申明LCD初始化函数 void write(char x); //申明显示1字节数据函数 voi
[单片机]
PIC单片机驱动LCD1602液晶显示字符串程序
/*************************************************************************** *** 功能:LCD1602的使用 *** 实验内容:LCD显示本站网址和电话 *** 开发板连接方法: 调节1602电位器,使LCD对比度最好,装1602时不要装错了,否测会烧掉。 ***************************************************************************/ #include pic.h __CONFIG(0xFF32); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS
[单片机]
AVR单片机ATMEGA16 1602液晶驱动程序及心得
我自己研发的AVR微控制器芯片开发板,1602液晶屏实验成功!我很欣慰.写了一整天的程序,反复实验,最终在凌晨0点.终于成功了. 在此过程中,最大的问题莫过于那个所谓配套的1602液晶屏数据手册!这个手册简直是误人子弟,里面资料写的很含糊.并且有错误,而导致我反复试验失败,最终,我使用了通用的1602液晶屏数据手册,才得以成功. 我自制的AVR开发板尺寸和我买的51开发板差不多大小,ATmega16最小系统,8位数码管,蓝光流水灯,isp编程接口.过载保护保险丝,两个74hc573锁存器.1602液晶屏都已焊接完成,万用板是12X18cm的单孔玻纤板(质量不太好,便宜没好货).现在我才发现不够用,模块数量相同的两块实验板
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved