RA8835控制器一般用来驱动高分辨率的液晶模块,如240160分辨率,320240分辨率等
例程如下:
/********************************

  • Author Date : 2008/07/21
  • Company : TSINGTEK
  • Case : 320 x 240
  • Device : AT89S52 at 12.0MHZ
  • Compiled Using Keil C v7.50
    ***********************************/
    #include <reg52.h>
    #include <intrins.h>
    #define uchar unsigned char
    #define uint unsigned int

#define LCD_BUS P1
sbit _RD=P3^0;
sbit _CS=P3^1;
sbit _RES=P3^4;
sbit A0=P3^2;
sbit _WR=P3^5;

uchar code systom[]={0x32,0x87,0x07,0x27,0x42,0xf0,0x28,0x00,};
uchar code scroll[]={0x00,0x00,0xf0,0x00,0x28,0xf0,0x50,0x00,0x00,0x00,};
uchar code tab[]={“HANGZHOU TSINGTEK TECHNOLOGY CO…,LTD”};
uchar code tab1[]={"*** HG320240 ***** HG320240 ******"};
uchar code tab2[]={"$$$WEB:WWW.BEST−LCM.COMWEB:WWW.BEST-LCM.COM WEB:WWW.BEST−LCM.COM$$$"};
uchar code tab3[]={" EDITOR: MS LU QQ:752574498"};
uchar code CGTAB[][32]={
/
点阵:16x16
提取点阵方向:横向(先上->下, 再左->右)
字节掉转:否
字节方式:C语言 */
0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08, // 清
0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,

0x00,0x40,0x20,0x20,0x00,0x0F,0xE0,0x21, // 达
0x21,0x22,0x22,0x24,0x28,0x50,0x8F,0x00,
0x80,0x80,0x80,0x80,0x88,0xFC,0x80,0x00,
0x40,0x20,0x10,0x18,0x08,0x06,0xFC,0x00,

0x01,0x21,0x11,0x09,0x09,0x01,0xFF,0x04, // 光
0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x40,
0x00,0x08,0x0C,0x10,0x20,0x04,0xFE,0x40,
0x40,0x40,0x40,0x40,0x42,0x42,0x3E,0x00,

0x02,0x02,0x02,0x7F,0x42,0x42,0x7F,0x42, // 电
0x42,0x7F,0x42,0x02,0x02,0x02,0x01,0x00,
0x00,0x00,0x10,0xF8,0x10,0x10,0xF0,0x10,
0x10,0xF0,0x10,0x00,0x04,0x04,0xFC,0x00,

0x00,0x7F,0x44,0x47,0x4C,0x52,0x41,0x42, // 图
0x46,0x49,0x70,0x46,0x41,0x40,0x7F,0x40,
0x04,0xFE,0x04,0xE4,0x44,0x84,0x04,0x84,
0x44,0x3C,0x94,0x04,0x04,0x84,0xFC,0x04,

0x00,0x7F,0x11,0x11,0x11,0x11,0x11,0xFF, // 形
0x11,0x11,0x11,0x11,0x21,0x21,0x41,0x01,
0x80,0xC4,0x0C,0x10,0x20,0x44,0x0C,0xD0,
0x20,0x42,0x06,0x08,0x10,0x20,0x40,0x80,

0x00,0x1F,0x10,0x10,0x1F,0x10,0x10,0x1F, // 显
0x14,0x44,0x34,0x14,0x04,0x04,0xFF,0x00,
0x10,0xF8,0x10,0x10,0xF0,0x10,0x10,0xF0,
0x50,0x44,0x4C,0x50,0x40,0x44,0xFE,0x00,

0x00,0x3F,0x00,0x00,0x00,0x00,0xFF,0x01, // 示
0x01,0x09,0x19,0x21,0x41,0x01,0x05,0x02,
0x10,0xF8,0x00,0x00,0x00,0x04,0xFE,0x00,
0x00,0x20,0x18,0x0C,0x04,0x00,0x00,0x00,

0x11,0x11,0x1F,0x11,0xFD,0x13,0x32,0x3B, // 模
0x56,0x53,0x90,0x1F,0x10,0x10,0x11,0x16,
0x10,0x14,0xFE,0x10,0x18,0xFC,0x08,0xF8,
0x08,0xF8,0x40,0xFE,0x40,0xB0,0x0E,0x04,

0x10,0x10,0x10,0x10,0x13,0xFC,0x10,0x10, // 块
0x10,0x17,0x1C,0xF1,0x41,0x02,0x04,0x08,
0x80,0x80,0x80,0x88,0xFC,0x88,0x88,0x88,
0x88,0xFE,0x80,0x40,0x20,0x10,0x0E,0x04,

};
/延迟子程序*/
void delayus(uint us)
{
while(us–);
}

void Delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
/读数据代码/
uchar Cmdread()
{
uchar cmdcode;

LCD_BUS=0xff;
_CS=0;
A0=0;
_RD=0;
cmdcode=LCD_BUS;
_RD=1;
_WR=1;
_CS=1;
return cmdcode;
}
/忙标志/
void lcd_busy(void)
{
uchar busy;

do
{
busy =(Cmdread() & 0x40);

}while(busy);

}
/读数据或参数/
uchar ReadData(void)
{
char address_data;
lcd_busy();
LCD_BUS=0xff;
A0 = 1;
_CS = 0;
_RD = 0;
address_data = LCD_BUS;
_RD = 1;
_CS = 1;
A0 = 1;
return address_data;
}
/*写指令代码/
void CmdWrite(uchar cmdcode)
{
_CS=0;
A0=1;
LCD_BUS=cmdcode; //写入指令代码
_RD=1;
_WR=0;
_WR=1;
_CS=1;
}
/*写数据或参数/
void DataWrite(uchar wrdata)
{
lcd_busy();
_CS=0;
A0=0;
LCD_BUS=wrdata; //写入数据或参数
_RD=1;
_WR=0;
_WR=1;
_CS=1;
}

/********整屏幕写入 ******/
void FullScreenFill(uchar low,uchar high,uchar fill_data)
{
uchar i,j;
CmdWrite(0x46); //光标显示位置设置
DataWrite(low);
DataWrite(high);
CmdWrite(0x42);
for(i=0;i<240;i++)
for(j=0;j<40;j++)
DataWrite(fill_data);
}
/*模块初始化/
void LCD_Initial()
{
unsigned int i;
CmdWrite(0x40); //系统设置
for(i=0;i<8;i++)
{DataWrite(systom[i]);};

CmdWrite(0x44); //显示区域设置
for(i=0;i<10;i++)
{DataWrite(scroll[i]);};

CmdWrite(0x58); //显示状态设置,显示总开关关闭
DataWrite(0x54); //打开各区显示和关光标

CmdWrite(0x5b); //合成方式设置
DataWrite(0x00);

CmdWrite(0x5d); //光标形状设置
DataWrite(0x07);
DataWrite(0x87);

CmdWrite(0x5c); //CGRAM 的起始地址为7800H
DataWrite(0x00);
DataWrite(0x78);

CmdWrite(0x5a); //点设定
DataWrite(0x00);

FullScreenFill(0x00,0x00,0x00); //清显示1区
FullScreenFill(0x00,0x28,0x00); //清显示二区
FullScreenFill(0x00,0x50,0x00); //清显示三区
CmdWrite(0x59); //打开显示总开关
}
/写入字符串/
void PrintStr(uint x,uint y,uchar code pstr)
{
unsigned int j;
j=40
y+x;
CmdWrite(0x4c);
CmdWrite(0x46);
DataWrite(j%256);
DataWrite(j/256);
CmdWrite(0x42);
while(pstr!=0)
{
DataWrite(
pstr);
pstr++;
}}
/写入自定义字符/
void cgramwrite()
{uint i,j;
CmdWrite(0x5c);
DataWrite(0x00);
DataWrite(0x10);
CmdWrite(0x46);
DataWrite(0x00);
DataWrite(0x14);//csr=0x1400;字摸地址80H
CmdWrite(0x4c);
CmdWrite(0x42);;
for(i=0;i<10;i++)
for(j=0;j<32;j++)
{DataWrite(CGTAB[i][j]);
}}
/文本方式下写入汉字
/
void textwrite(uint x,uint y,uchar coder)
{
uint i,j;
cgramwrite();
i=40;
j=iy+x;
CmdWrite(0x4f);
CmdWrite(0x46);
DataWrite(j%256);
DataWrite(j/256);
CmdWrite(0x42);
DataWrite(coder);
DataWrite(coder+1);
j++;
CmdWrite(0x46);
DataWrite(j%256);
DataWrite(j/256);
CmdWrite(0x42);
DataWrite(coder+2);
DataWrite(coder+3);
}
/图形方式下写入汉字**/
void mapwrite(uchar x,uchar y,uchar coder)
{
uint i,j,k;
CmdWrite(0x4c);
for(i=0;i<16;i++)
{
j=40*(y+i)+x+0x2800;
CmdWrite(0x46);
DataWrite(j%256);
DataWrite(j/256);
CmdWrite(0x42);
DataWrite(CGTAB[coder][i]);
k=40*(y+i)+x+1+0x2800;
CmdWrite(0x46);
DataWrite(k%256);
DataWrite(k/256);
CmdWrite(0x42);
DataWrite(CGTAB[coder][i+16]);
}}
/*图形方式下写入一串汉字/
void writemaphz(uchar x,uchar y)
{
uint i;
for(i=0;i<10;i++)
{mapwrite(x,y,i);x=x+3;}
}
/主程序/
void main()
{
Delay(30);
LCD_Initial();

textwrite(7,12,0x80);
textwrite(10,12,0x84);
textwrite(13,12,0x88);
textwrite(16,12,0x8c);
textwrite(19,12,0x90);
textwrite(22,12,0x94);
textwrite(25,12,0x98);
textwrite(28,12,0x9c);
textwrite(31,12,0xe0);
textwrite(34,12,0xe4);

PrintStr(0,1,tab);
PrintStr(3,3,tab1);
PrintStr(2,5,tab2);
PrintStr(0,28,tab3);
writemaphz(4,200);
while(1);
}

RA8835驱动320240液晶模块例程相关推荐

  1. 170504_(读书笔记)ST7920驱动12864液晶模块学习

    学习芯片,应该以数据手册为主,书本为辅,学习ST7920驱动芯片手册地址 ST7920手册 先把手册看一遍,不求快,只求弄懂 170514: 1.ST7920数据手册看了两遍,但是还是不太清楚具体操作 ...

  2. Windows驱动_WSK驱动之四WSK例程

    最近看了好多文章,也写了好多博客,但是,最近少了很多实践的关系,这一部分是项目的问题,其实大部分还是自己的问题,今天,竟然,知道,随便修改一点微软的例子还可以赚钱,之前自己还真是没有想到的.后续,自己 ...

  3. LCD1602显示屏的驱动设置及例程

    一般来说,LCD1602有16条引脚,据说还有14条引脚的,与16脚的相比缺少了背光电源A(15脚)和地线K(16脚).我手里这块LCD1602的型号是HJ1602A,是绘晶科技公司的产品,它有16条 ...

  4. 004-实现过滤PCHunter驱动中的例程

    1.理解过滤的概念 关于过滤,我们可以举一个现实中的例子.比如一条河流中水的流向由东向西,但是呢我们想要去掉水中的杂物,又要不影响水的流向,这时我们可以在东西中间插入一张过滤网,这样就可以实现我们的目 ...

  5. LCD1602原理驱动代码及例程

    LCD1602概述 LCD1602是一种工业字符型液晶,能够显示16x02即32字符的内容,是一种广泛使用的字符显示模块.它是由字符型液晶显示屏(LCD).控制驱动主电路HD44780及其扩展驱动电路 ...

  6. 【从0到1搭建LoRa物联网】7、国产LoRa终端ASR6505驱动段式LCD例程

    系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...

  7. LinuxCNC笔记--Hal driver驱动源码例程(基于Ethercat)

    以下是.hal文件与.ini文件举例,可以根据自己的PDO配置以及轴数自行修改. .hal文件 loadusr -W lcec_conf ethercat-conf_X.xml loadrt lcec ...

  8. Writing a FilterUnloadCallback Routine for a Minifilter Driver 为一个微过滤驱动写一个过滤器卸载回调例程...

    一个文件系统微过滤驱动能可选择的注册一个 PFLT_FILTER_UNLOAD_CALLBACK类型的例程 作为微过滤驱动的 FilterUnloadCallback  例程.这个回调例程也被称为微过 ...

  9. [Windows驱动开发](三)基础知识——驱动例程

    一.NT式驱动的基本例程 1. 驱动入口函数--DriverEntry [cpp] view plaincopy // 驱动程序的一般性定义 NTSTATUS DriverEntry(IN PDRIV ...

  10. Windows磁盘驱动基础教程

    本文讲述Windows磁盘驱动的主要结构功能与编写方法基础.本文描述的内容仅限于软件层面,并不与具体的硬件相关. 1.磁盘驱动基础 不少人把文件系统驱动和磁盘驱动混为一谈.实际上文件系统驱动应该与磁盘 ...

最新文章

  1. python解释器环境中、用于表示上一次_大工20秋《数据挖掘》在线作业3 【标准答案】...
  2. c/c++ 标准库 插入迭代器 详解
  3. 烂泥:高负载均衡学习haproxy之关键词介绍
  4. VS2017中删项目属性中连接器删除继承的值
  5. 在centos7中安装redis,并通过node.js操作redis
  6. idea java web运行_使用IDEA创建JavaWeb项目 部署本地tomcat并运行
  7. python实验收获和建议_python实验收获与反思 100字_考试后的反思100字
  8. elispce导入java项目_emacs的java编程环境设置(jdee,lib,cedet,ecb
  9. 判断手机机型和浏览器内核
  10. sqlserver约束
  11. mysql 按时间分库分表_sharding-jdbc 按时间分库分表
  12. 全频音箱与分频音箱各有什么优缺点
  13. 【面向对象】第四单元总结——UML
  14. 如何证明人的记忆力是无限的
  15. C语言程序设计题库(精心准备,内容丰富)
  16. Protel常用封装库
  17. Mac系统搭建C语言开发环境
  18. 自定义浏览器UA标识
  19. python-图片转pdf
  20. 西游记中的第一神器是什么?

热门文章

  1. redis java jar_Redis在java开发中使用
  2. k均值算法——python实现
  3. ArcCatalog中通过ArcSDE向Oracle数据库中导入数据
  4. 西门子g120变频器接线图_西门子变频器G120应用技术手册
  5. oracle补丁安装
  6. 图像识别技术原理和神经网络的图像识别技术
  7. 等保2.0三级通用要求
  8. python 框选截图_python实现微信的区域截图功能
  9. ANSYS ICEM CFD非结构体网格生成实例——换热器
  10. Bat文件的创建及其命令大全