12864液晶图形滚动显示仿真论文(6)

2019-03-04 15:21

Read_busy(); //对LCD的每次读写都要读忙

RS=0; RW=0;

LCD_databus=command;

_nop_();

_nop_(); EN=1;

//EN由1----0锁存有效数据

_nop_();

_nop_(); EN=0; }

void write_LCD_data(uchar dat)//写数据函数 {

Read_busy(); RS=1; RW=0;

LCD_databus=dat; EN=1; _nop_(); _nop_(); EN=0; }

uchar Read_LCD(void) {

//选择数据

//EN由1----0锁存有效数据

//读数据函数

uchar value; Read_busy(); LCD_databus=0xFF; RS=1;

25

//先进行一次空读操作

}

RW=1; EN=1; _nop_(); _nop_(); EN=0;

LCD_databus=0xFF; RS=1; RW=1; EN=1;

value=LCD_databus; _nop_(); _nop_(); EN=0; return value;

//读取真正的数据

void Set_page(uchar page) 行点阵点 {

page=0xb8|page;

//设置“页”LCD12864共8页,一页是8

//页的首地址为0xB8

write_LCD_command(page); }

void Set_line(uchar startline) //设置显示的起始行 {

startline=0xC0|startline; //起始行地址为0xC0

write_LCD_command(startline); //设置从哪行开始:共0--63;一般从0 行开始显示 }

26

void Set_column(uchar column) //设置显示的列 {

column=column &0x3f; column= 0x40|column;

//列的最大值为64

//列的首地址为0x40 //规定显示的列的位置

write_LCD_command(column); }

void SetOnOff(uchar onoff) 开显示 { }

onoff=0x3e|onoff;

//显示开关函数:0x3E是关显示,0x3F是

//onoff:1---开显示;0---关显示

write_LCD_command(onoff);

void SelectScreen(uchar screen) //选择屏幕 {

switch(screen) {

case 0: CS1=0;CS2=0;break; //全屏 case 1: CS1=0;CS2=1;break;//左半屏 case 2: CS1=1;CS2=0;break;//右半屏 default:break; } }

void ClearScreen(uchar screen) //清屏函数 {

uchar i,j;

SelectScreen(screen);

//0--全屏;1---左半屏;2---右半屏

for(i=0;i<8;i++) //控制页数0-7,共8页

27

{

Set_page(i);

Set_column(0);

for(j=0;j<64;j++) //控制列数0-63,共64列

{

write_LCD_data(0x00); //写入0,地址指针自加1 } } }

void init_LCD() { }

void Display_ASCII(uchar screen,uchar page,uchar column,uchar *p) {

//LCD的初始化

SetOnOff(1); SelectScreen(0);

//开显示

ClearScreen(0); Set_line(0);

//清屏

//开始行:0

uchar i;

SelectScreen(screen); Set_page(page); Set_column(column); for(i=0;i<8;i++) { }

Set_page(page+1); Set_column(column);

28

//显示字符上半部分:8*8

write_LCD_data(p[i]); //纵向取模,字节倒序

//显示字符下半部分:8*8

}

for(i=0;i<8;i++) { }

write_LCD_data(p[i+8]);

void Display_HZ(uchar screen,uchar page,uchar column,uchar *p) {

uchar i;

SelectScreen(screen); Set_page(page);

//写上半页:16*8 //控制列

//控制16列的数据输出

Set_column(column*16); for(i=0;i<16;i++) { }

Set_page(page+1);

write_LCD_data(p[i]); //汉字的上半部分

//写下半页:16*8

//控制列

//控制16列的数据输出

Set_column(column*16);

for(i=0;i<16;i++) }

{ }

write_LCD_data(p[i+16]); //汉字的下半部分

void Display_picture(uchar a[][64])//显示图形—128*64大小 {

uchar i,j;

for(j=0;j<8;j++) {

29


12864液晶图形滚动显示仿真论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:研究生学位论文撰写规范(2016年3月) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: