#include <stdio.h>
#include <math.h>
#include <intrins.h>
#include <absacc.h>
#include <string.h>
#include "LCD_12864.h"
sbit RESET = P3^3;
uchar code LCD_WIDTH = 16;
uchar code LCD_HEIGHT = 64;
uchar gCurRow,gCurCol;
uchar tCurRow,tCurCol;
uchar ShowModeSW;
uint txthome,grhome;
uchar Status_BIT_01();
uchar Status_BIT_3();
uchar LCD_Write_Command(uchar cmd);
uchar LCD_Write_Command_P1(uchar cmd,uchar para1);
uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2);
uchar LCD_Write_Data(uchar dat);
void cls();
uchar LCD_Initialise();
void Set_LCD_POS(uchar row,uchar col);
uchar Status_BIT_01()
{
uchar i;
for(i=5;i>0;i--)
{
if((LCMCW & 0x03)==0x03)
break;
}
return i;
}
uchar Status_BIT_3()
{
uchar i;
for(i=5;i>0;i--)
{
if((LCMCW & 0x08)==0x08)
break;
}
return i;
}
uchar LCD_Write_Command_P2(uchar cmd,uchar para1,uchar para2)
{
if(Status_BIT_01()==0) return 1;
LCMDW = para1;
if(Status_BIT_01()==0) return 2;
LCMDW = para2;
if(Status_BIT_01()==0) return 3;
LCMDW = cmd;
return 0;
}
uchar LCD_Write_Command_P1(uchar cmd,uchar para1)
{
if(Status_BIT_01()==0) return 1;
LCMDW = para1;
if(Status_BIT_01()==0) return 2;
LCMDW = cmd;
return 0;
}
uchar LCD_Write_Command(uchar cmd)
{
if(Status_BIT_01()==0) return 1;
LCMDW = cmd;
return 0;
}
uchar LCD_Write_Data(uchar dat)
{
if(Status_BIT_3()==0) return 1;
LCMDW = dat;
return 0;
}
void Set_LCD_POS(uchar row,uchar col)
{
uint Pos;
Pos = row*LCD_WIDTH+col;
LCD_Write_Command_P2(LC_ADD_POS,Pos%256,Pos/256);
gCurRow = row;
gCurCol = col;
}
void cls()
{
uint i;
LCD_Write_Command_P2(LC_ADD_POS,0x00,0x00);
LCD_Write_Command(LC_AUT_WR);
for(i=0;i<0x2000;i++)
{
Status_BIT_3();
LCD_Write_Data(0x00);
}
LCD_Write_Command(LC_AUT_OVR);
LCD_Write_Command_P2(LC_ADD_POS,0x00,0x00);
gCurRow = 0;
gCurCol = 0;
}
uchar LCD_Initialise()
{
RESET = 0;
RESET = 1;
LCD_Write_Command_P2(LC_TXT_STP,0x00,0x00);
LCD_Write_Command_P2(LC_TXT_WID,LCD_WIDTH,0x00);
LCD_Write_Command_P2(LC_GRH_STP,0x00,0x00);
LCD_Write_Command_P2(LC_GRH_WID,LCD_WIDTH,0x00);
LCD_Write_Command_P1(LC_CGR_POS,CGRAMSTART >> 11);
LCD_Write_Command(LC_CUR_SHP | 0x01);
LCD_Write_Command(LC_MOD_OR);
LCD_Write_Command(LC_DIS_SW | 0x08);
grhome = GRSTART;
txthome = TXTSTART;
return 0;
}
基于C51实现的14 12864LCD图形滚动演示.zip
版权申诉
56 浏览量
2024-03-30
01:00:00
上传
评论
收藏 93KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/f62fbb2c17a9404795551a60e3b1502a_weixin_32393347.jpg!1)
小码蚁.
- 粉丝: 2667
- 资源: 4521
最新资源
- 中大功率电源电路设计、PCB布局设计规范
- 创新实践CNN车牌识别项目
- 小程序版图像分类算法对中文数字识别-不含数据集图片-含逐行注释和说明文档.zip
- 公交卡管理系统一个实验
- C语言学生成绩管理系统(信息可保存读取txt文件)
- 网上零食销售系统论文.docx
- 小程序版图像分类算法对电脑配件分类识别-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版深度学习CNN训练识别8种水果-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版基于深度学习对手势动作分类识别-不含数据集图片-含逐行注释和说明文档.zip
- 小程序版深度学习CNN训练识别手写数字图像中的数字分类-不含数据集图片-含逐行注释和说明文档.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)