RT12864M液晶模块单片机驱动程序

发布者:beta13最新更新时间:2015-07-01 来源: 51hei关键字:RT12864M  液晶模块  单片机驱动 手机看文章 扫描二维码
随时随地手机看文章
 /*-----------RT12864M模块-----------*/

/*------外部晶振为     12MHz-------*/           
 /*--------最后修改2011.02.26-------*/

#include "STC12C5620AD.h"
#include "RT12864M.h"
#include "delay.h"
/**********************自定义字符编码*************************/
unsigned char code CGROM_Code[]={0x00,0x00,0x00,0x00,0x7F,0xFE,0x60,0x06,0x33,0xCC,0x19,0x98,0x0C,0x30,0x06,0x60,
           0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,   //天线图形
          0x00,0x00,0xE0,0x00,0xA0,0x00,0xEE,0x00,0x1B,0x00,0x31,0x00,0x30,0x00,0x30,0x00,
         0x30,0x00,0x30,0x00,0x31,0x00,0x1B,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00};    //摄氏图形 
/**********************LCD检测是否忙*************************/
bit LCD_Test_Busy(void)        
  {
   bit Temp;
   LCD_DATAPORT=0xff;                  //数据口先全部置位
   LCD_RS=0;
   LCD_RW=1;
   LCD_E=1;
   Temp=(bit)(LCD_DATAPORT & 0x80);    //取最高位,1为忙
   LCD_E=0;
   return Temp;
  }
/*************************LCD写命令**************************/
void LCD_Write_CMD(uchar cmd)
  {
 while(LCD_Test_Busy());           //先检测LCD是否忙
 LCD_RS=0;
 LCD_RW=0;
 LCD_E=1;
    LCD_DATAPORT=cmd;            //写入命令
 LCD_E=0;
  }
/*************************LCD写数据**************************/
void LCD_Write_DATA(uchar Inputdata)
  {
 while(LCD_Test_Busy());           //先检测LCD是否忙
 LCD_RS=1;
 LCD_RW=0;
 LCD_E=1;
    LCD_DATAPORT=Inputdata;      //写入数据
 LCD_E=0;
  }
/************ 写入自定义字符或图形到 CGRAM  *****************/
void LCD_Write_CGRAM(uchar *Char_Code)
{
 uchar  i;
 LCD_Write_CMD(0x34);    //打开扩充指令                  
 LCD_Write_CMD(0x02);    //SR=0,允许输入CGRAM地址
 LCD_Write_CMD(0x30);    //恢复基本指令
 LCD_Write_CMD(0x40);    //CGRAM地址
 for(i=0;i<32;i++)
  {
   LCD_Write_DATA(Char_Code[i*2]);
   LCD_Write_DATA(Char_Code[i*2+1]);
  }
}
/**********************设置操作地址**************************/
void LCD_Set_XY(uchar x,uchar y)
{
 uchar Address;
 switch(x)
 {
 case 0: 
     Address = 0x80 + y;
     break; 
    case 1: 
     Address = 0x90 + y;
  break;         
 case 2: 
  Address = 0x88 + y;
  break; 
    case 3: 
  Address = 0x98 + y;
  break; 
 default:
  Address = 0x80 + y;
  }
    LCD_Write_CMD(Address); 
}
/*************************显示一个CGRAM**************************/
/**************参数:行号,列号,要显示的CGRAM*****************/
void LCD_Display_CGRAM(uchar x,uchar y,uchar add1,uchar add2)

    LCD_Set_XY(x,y);            //先确定显示行和列       
 LCD_Write_DATA(add1);
 LCD_Write_DATA(add2);
}
/**************在X(行)Y(列)显示字符串********************/
void LCD_Display_String( uchar x,uchar y,uchar *str )
  {
    LCD_Set_XY(x,y);         //先确定起始行和列
 while (*str!='') 
      {
        LCD_Write_DATA(*str);
     str++;
   }
  }

/**************在X(行)Y(列)显示数值********************/
void LCD_Display_Value( uchar x,uchar y,uchar val )
{
 LCD_Set_XY(x,y);      //先确定起始行和列
 LCD_Write_DATA(val);
}
/**************在X(行)Y(列)显示数组********************/
void LCD_Display_Array( uchar x,uchar y,uchar *Array,uchar Lenth )
{
 LCD_Set_XY(x,y);      //先确定起始行和列
 while(Lenth--)
  {
   LCD_Write_DATA(*Array);
   Array++;
  }
}
/*************************LCD初始化**************************/
void LCD_Init(void)
{
 LCD_RST=0;
 Delay_us(10);
 LCD_RST=1;          //LCD复位
    LCD_Write_CMD(0x30);          //功能设定(并行、基本指令)   
    LCD_Write_CMD(0x0c);          //整体显示,光标
    LCD_Write_CMD(0x01);          //清屏
 LCD_Write_CMD(0x06);       //光标右移,整体不右移
 LCD_Write_CGRAM(CGROM_Code);   //写入自定义字符
}

这是一个完整项目里面截取出来的子程序 头文件和原理图请到http://www.51hei.com/bbs/dpj-19294-1.html 去下载.

关键字:RT12864M  液晶模块  单片机驱动 引用地址:RT12864M液晶模块单片机驱动程序

上一篇:采用ZigBee和RFID技术的电子标签识别系统
下一篇:状态机方式按键扫描单片机程序

推荐阅读最新更新时间:2024-03-16 14:23

东芝推出可控制电机驱动和系统的微控制器
东京—东芝公司(TOKYO:6502)今天宣布其TX03系列ARM Cortex&trade:-M3内核微控制器阵容中新增“TMPM384FDFG”成员。该产品整合了大容量片上存储器、额外的多用定时器通道和AD转换器以及功能更强的I/O端口,可控制电机驱动和整个系统。该产品计划于今年11月投入量产。 电机控制应用通常由电机驱动装置和系统控制装置组成,其中这两个装置均整合了微控制器和软件。微控制器将推动整合有单一微控制器和软件的电机控制应用的开发与评估,有助于提高系统开发效率,降低成本。 新产品主要特性: 5V单电源供电,适合电机控制设备和家用电器。 整合了大容量的512K字节闪存和32K字节SRAM。 内置4通道 多用定时器
[单片机]
51 单片机 C 语言编程:4×4键盘、164 驱动显示、并发音
要求:使用4×4矩阵键盘,由 P0 经过 164 驱动数码管显示按键值,并发音。 用PROTEUS仿真运行时的屏幕截图如下: //电路说明如下。 //单片机:使用51系列兼容的即可; //4×4矩阵键盘:接在P1口; //一位数码显示器:由 P0口 经由 164 驱动。 //============================================================ //C语言程序如下。 /************************************************************* * 文件名: KEY_LED.c * 功能 : 扫描4×4矩阵键盘,在数码
[单片机]
51 <font color='red'>单片机</font> C 语言编程:4×4键盘、164 <font color='red'>驱动</font>显示、并发音
51单片机RTL8019AS网卡驱动程序
SNMP网管板使用了RTL8019AS 10M ISA网卡芯片接入以太网。选它的好处是:NE2000兼容,软件移植性好;接口简单不用转换芯片如PCI-ISA桥;价格便宜2.1$/片(我的购入价为22元RMB/片);带宽充裕(针对51);较长一段时间内不会停产。8019有3种配置模式:跳线方式、即插即用P&P方式、串行Flash配置方式。为了节省成本,我去掉了9346而使用X5045作为闪盘存储MAC地址和其他可配置信息。P&P模式用在PC机中,这里用不上。只剩下跳线配置模式可用,它的电路设计参考REALTEK提供的DEMO板图纸。一天时间就可以完成,相对来说硬件设计比较简单。   与这部分硬件相对应的软件是网卡驱动。所谓驱动程序
[单片机]
51<font color='red'>单片机</font>RTL8019AS网卡<font color='red'>驱动</font>程序
51单片机IO口直接驱动LED数码管方法
1.实验任务   如图13所示,利用AT89S51 单片机 的P0端口的P0.0-P0.7连接到一个共阴 数码管 的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。 2. 电路 原理图             图4.7.1 3.系统板上硬件连线   把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个数码管的a-h端口上;要求:P0.0/AD0与a相连,P0.1/AD1与b相连,P0.2/AD2与c相连,……,P0.7/AD7与h相连。 4. 程序设计内容 (1). LED 数码显示原理   七段LED显示器内部由七个条形 发光
[单片机]
51<font color='red'>单片机</font>IO口直接<font color='red'>驱动</font>LED数码管方法
使用AVR单片机驱动舵机
1.舵机驱动的基本原理   (可以参考http://blog.sina.com.cn/s/blog_8240cbef01018hu1.html)    控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。 简单的来讲,就是输出一个周期为20Ms,不同的占空比对应舵机转过不同的角度。 难点主要在于 舵机控制信号需要保持,这样就比用脉冲控制步进电机要复杂一些。 你需要
[单片机]
使用AVR<font color='red'>单片机</font><font color='red'>驱动</font>舵机
MSP430单片机对诺基亚5110液晶显示的驱动
本程序采用的是八路 ADC 单次采集的模式,根据配置,在单次的模式下转换完成后ADC12SC会自动复位,因此需要在循环中进行ADC12CTL0 |= ADC12SC;操作,而如果配置成连续采集的模式,只需要在程序开始将ADC12SC置位一次就可以,但是就需要注意当进入中断后如果不手动禁止中断会一直停留在循环中,因此在采集到需要的数据后需要将ADC关闭或者中断使能禁止才能重新回到主函数,这一点需要注意。 八路单次采集的程序如下: 八路AD多路单次采集诺基亚5110液晶显示 采集模式:多路单次 #include #include“LCD5110.h” #defineuintunsignedint #defineucharunsig
[单片机]
MSP430<font color='red'>单片机</font>对诺基亚5110液晶显示的<font color='red'>驱动</font>
单片机驱动温感的18B20.h文件
DS18B20是世界上第一个单线通讯的12位二进制数字温度传感器。工作电压从3.0~5.5V,测量温度范围从-55℃~125℃,具有最高 0.0625℃的分辨率。 DS18B20数字温度传感器封装后可应用于多种场合。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 利用单片机完全可以读取DS18B20所测量到的二进制数字温度,测温步骤:1、复位;2、跳过读序列号命令(总线只有一个DS18B20);3、启动温度转换;4、延时;5、读取温度;6、处理测量到的
[单片机]
采用C8051F单片机实现半导体激光器驱动电源的设计
半导体激光器(LD)体积小,重量轻,转换效率高,省电,并且可以直接调制。基于他的多种优点,现已在科研、工业、军事、医疗等领域得到了日益广泛的应用,同时其驱动电源的问题也更加受到人们的重视。使用单片机对激光器驱动电源的程序化控制,不仅能够有效地实现上述功能,而且可提高整机的自动化程度。同时为激光器驱动电源性能的提高和扩展提供了有利条件。 1总体结构框图 本系统原理如图1所示,主要实现电流源驱动及保护、光功率反馈控制、恒温控制、错误报警及键盘显示等功能,整个系统由单片机控制。本系统中选用了C8051F单片机。C8051F单片机是完全集成的混合信号系统级芯片(SOC),他在一个芯片内集成了构成一个单片机数据采集或控制系统所需要的几乎
[单片机]
采用C8051F<font color='red'>单片机</font>实现半导体激光器<font color='red'>驱动</font>电源的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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