12864液晶并行方式显示

12864液晶使用的16*16点阵、128个字符(8*16点阵)及64*256点阵显示RAM(GDRAM).与外部CPU接口採用并行或串行两种控制方式。

在12864上显示0-9的随机数 第二行显示www.csdn.blog

第三行显示“求是07的博客”

第四行显示“欢迎光临”

下面是基本的代码

#include <reg52.h>

#include <intrins.h>

#include <stdlib.h>

#define uchar unsigned char

#define uint unsigned int

#define LCD_data=P0;

sbit rs=P3^5;

sbit wr=P3^6;

sbit en=P3^4;

sbit rd=P3^7;

sbit wela=P2^6;

sbit dula=P2^7;

uchar display1[10];

uchar code display2[]={"www.csdn.blog.com"};

uchar code display3[]={"求是07的博客"};

uchar code display4[]={"欢迎光临"};

void delay_1ms(uint x)

{

uint i,j;

for(i=0;i<x;i++)

for(j=0;j<100;j++);

}

void write_cmd(uchar cmd)

{

rs=0;

wr=0;

en=0;

P0=cmd;

delay_1ms(5);

en=1;

delay_1ms(5);

en=0;

}

void write_data(uchar dat)

{

rs=1;

wr=0;

en=0;

P0=dat;

delay_1ms(5);

en=1;

delay_1ms(5);

en=0;

}

void lcd_pos(uchar X,uchar Y)

{

uchar pos;

if(X==0)

{X=0x80;}

if(X==1)

{

X=0x90;

}

if(X==2)

{

X=0x88;

}

if(X==3)

{

X=0x98;

}

pos=X+Y;

write_cmd(pos);

}

void makerand() //随机函数

{

uint ran;

ran=rand();

display1[0]=ran/10000+0x30;

display1[1]=ran%10000/1000+0x30;

display1[2]=ran%1000/100+0x30;

display1[3]=ran%100/10+0x30;

display1[4]=ran%10+0x30;

ran=rand();

display1[5]=ran/10000+0x30;

display1[6]=ran%10000/1000+0x30;

display1[7]=ran%1000/100+0x30;

display1[8]=ran%100/10+0x30;

display1[9]=ran%10+0x30;

}

void lcd_init()

{

rd=1; //设置 并口方式

write_cmd(0x30);//这里设置基本指令动作

delay_1ms(5);

write_cmd(0x0C);//显示开,光光标

delay_1ms(5);

write_cmd(0x01);//清屏

delay_1ms(5);

}

main()

{

uchar i;

wela=0;

dula=0;

delay_1ms(5);

lcd_init();

lcd_pos(1,0);

i=0;

while(display2[i]!=‘\0‘)

{

write_data(display2[i]);

i++;

}

lcd_pos(2,0);

i=0;

while(display3[i]!=‘\0‘)

{

write_data(display3[i]);

i++;

}

lcd_pos(3,0);

i=0;

while(display4[i]!=‘\0‘)

{

write_data(display4[i]);

i++;

}

while(1)

{

lcd_pos(0,0);

makerand();

for(i=0;i<10;i++)

{

write_data(display1[i]);

}

}

}

12864液晶并行方式显示

时间: 2024-10-09 00:22:07

12864液晶并行方式显示的相关文章

树莓派+12864液晶视频播放实验

树莓派+12864液晶视频播放实验 51单片机学习笔记:ST7920控制器的12864液晶使用总结 总结: 1. 控制芯片不同,液晶接口定义,或者寄存器定义也可能不同 2. 显示方式有并行和串行,串行方式据说不能读数据寄存器(DR),那指令暂存器IR是否可读? 3. 含字库芯片显示字符时不必对字符取模了,但字库有可能缺斤少两,就是说有一部分字(哪怕是常用字),在字库中没有,如果你第一次测试代码就遇到该字在字库中没有的情况,建议去买体育彩票,支持体育运动! 4. 对芯片的结构地址一定要理解清楚,个

第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源

SOUI的初学者刚开始可能难以搞清楚在SOUI中显示一个图片资源的流程,这里做一个简单的示范. 首先我们准备好一张图,以下图为例. 第一步,我们首先把这个图片文件复制到demo的uires目录下,新建一个目录jpg,下面只有这一个文件9.jpg 第二步,我们需要在uires.idx中引入该图片资源 <jpg> <file name="girl" path="jpg\9.jpg"/> </jpg> 我们给这个资源命名为"g

(转载)VB 查询Oracle中blob类型字段,并且把blob中的图片以流的方式显示在Image上

原文摘自:http://heisetoufa.iteye.com/blog/504068 '模块代码 Private Declare Function CreateStreamOnHGlobal Lib "ole32" (ByVal hGlobal As Long, ByVal fDeleteOnRelease As Long, ppstm As Any) As Long Private Declare Function OleLoadPicture Lib "olepro3

php 系统树形类,以树形方式显示

<?php/***系统树形类,以树形方式显示***/header("Content-type: text/html; charset=utf-8;");class TreeModel{    /**    *树形标识    */    public $icon = array('│','├','└');    public $nbsp = "   ";    /**    *树形的二维数组数据    */    public $arr = array();  

Scroll View 控件以Thumbnail的方式显示一个文件夹的所有图片,类似图片浏览器

MAC : XCode -> Scroll View 控件以Thumbnail的方式显示一个文件夹的所有图片,类似图片浏览器 STEP1:将两个文件夹拷贝到工程里面ImageBrowserView和Utils,并且在工程里面建立对应组和导入文件 STEP2:将Quartz.framework 和QuartzCore.framework库 导入到工程里面,这两个库是系统库 STEP3:   找到控件Scroll View 控件,上面写着"Scroll View"拖入到工程里面,然后

JavaScript DOM操作案例点击按钮通过类样式的方式显示跟隐藏div

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> div { width: 300px; height: 300px; background-color: pink; } .cls { display: none; } </style> </h

12864液晶——读写、划点、划线、汉字、32*16的字符

//左半屏幕和右半屏幕的列号是一样的,页号也是一样的.//选择整个屏幕,在给DDRAM中写数据时,会同时写到两个屏幕中,即两个屏幕中将会显示一样的数据.//在清屏的时候可以选择整个屏幕.//在滚动的时候可以选择整个屏幕,此时如果分别选屏幕滚动,可以实现两个屏幕滚动方向相反. #define LCD_OFF 0x3E //关显示#define LCD_ON 0x3F//开显示 #define Add_X 0xB8 //页初始地址,共8页#define Add_Y 0x40 //Y初始地址,0到63

Vmstat命令监控Linux资源并将数据通过图形化方式显示

一.Vmstat基础知识 Vmstat可以实时查看系统资源使用情况,如cpu.mem.IO等 procsr 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu.b 列表示在等待资源的进程数,比如正在等待I/O.或者内存交换等.cpu 表示cpu的使其用状态us 列显示了用户方式下所花费 CPU 时间的百分比.us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50%,需要考虑优化用户的程序.sy 列显示了内核进程所花费的cpu时间的百分比.这里us

iOS 更好用的打Log方式-显示文件名、行数

单纯的NSLog方式打出的Log没有显示打印语句所在的文件名和行数,下面这种做法会很实用: #ifdef DEBUG # define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...) #endif 在工程的PreFix文件或者其他的你觉得合适的地方定义 DLog,这样可以打印出行数,而且尽在开发模式中调