#include<reg52.h>
#include<intrins.h>
#include<absacc.h>
#define Lcd_Bus P1 //MCU P0<------> LCM
#define Disp_On 0x3f//开显示
#define Disp_Off 0x3e//关显示
#define Col_Add 0x40//列地址
#define Page_Add 0xb8//页地址
#define Start_Line 0xc0//起始页
sbit cs1=P3^0; //Master chip enable
sbit cs2=P3^1; //Slave chip enable
sbit Enable=P3^5; // mode Enable single
sbit Di=P3^4; //Data or Instrument Select
sbit RW=P3^3; //Write or Read
sbit Lcd_Rst=P3^2; //Lcm reset
/*****************************
字模,此字体下对应的
点阵为:宽x高=16x16
*****************************/
unsigned char code Chinese_character[][32]=
{
{0x10,0x61,0x06,0xE0,0x00,0x26,0x22,0x1A,0x02,0xC2,0x0A,0x12,0x32,0x06,0x02,0x00},
{0x04,0xFC,0x03,0x20,0x20,0x11,0x11,0x09,0x05,0xFF,0x05,0x09,0x19,0x31,0x10,0x00},/*"深",0*/
{0x10,0x10,0x10,0xFE,0x10,0x10,0xFE,0x00,0x00,0xFC,0x00,0x00,0x00,0xFE,0x00,0x00},
{0x08,0x08,0x04,0x47,0x24,0x18,0x07,0x00,0x00,0x1F,0x00,0x00,0x00,0x7F,0x00,0x00},/*"圳",1*/
{0x20,0x38,0xA7,0x62,0x10,0x20,0x18,0xFF,0x4A,0x48,0x4A,0xFC,0x48,0x48,0x48,0x00},
{0x22,0x23,0x22,0x12,0x12,0x00,0x00,0xFF,0x22,0x22,0x22,0x3F,0x22,0x22,0x22,0x00},/*"维",2*/
{0x00,0x08,0x08,0x08,0x88,0x48,0x38,0xFF,0x18,0x28,0x48,0x88,0x88,0x08,0x00,0x00},
{0x40,0x32,0x02,0x01,0x10,0x60,0x00,0x07,0x10,0x60,0x00,0x00,0x11,0x63,0x01,0x00},/*"杰",3*/
{0x10,0x12,0x92,0x72,0xFE,0x51,0x91,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00},
{0x04,0x02,0x01,0x00,0xFF,0x00,0x04,0x04,0x04,0x02,0x02,0x02,0xFF,0x01,0x01,0x00},/*"科",4*/
{0x08,0x08,0x88,0xFF,0x48,0x28,0x00,0xC8,0x48,0x48,0x7F,0x48,0xC8,0x48,0x08,0x00},
{0x01,0x41,0x80,0x7F,0x00,0x40,0x40,0x20,0x13,0x0C,0x0C,0x12,0x21,0x60,0x20,0x00},/*"技",5*/
};
unsigned char code E[][16]=
{
{0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00},/*"w",0*/
{0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00},/*"w",1*/
{0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00},/*"w",2*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",3*/
{0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00},/*"w",4*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00},/*"e",5*/
{0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00},/*"j",6*/
{0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},/*"i",7*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00},/*"e",8*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00},/*".",9*/
{0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00},/*"c",10*/
{0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00},/*"o",11*/
{0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F},/*"m",12*/
};
/***********************延时子程序***********************/
void delay(unsigned int k)
{
unsigned int i;
unsigned int j;
for(i=0;i<k;i++)
for(j=0;j<20;j++);
}
/***********************写命令左***********************/
void write_cmd_1(unsigned char command)
{
cs1=1;cs2=0;
Di=0;
RW=0;
Lcd_Bus=command;
delay(0);
Enable=1;
delay(0);
Enable=0;
}
/***********************写命令右***********************/
void write_cmd_2(unsigned char command)
{
cs1=0;cs2=1;
Di=0;
RW=0;
Lcd_Bus=command;
delay(0);
Enable=1;
delay(0);
Enable=0;
}
/***********************写数据左***********************/
void write_data_1(unsigned char dis_data)
{
cs1=1;cs2=0;
Di=1;
RW=0;
Lcd_Bus=dis_data;
delay(0);
Enable=1;
delay(0);
Enable=0;
}
/***********************写数据右***********************/
void write_data_2(unsigned char dis_data)
{
cs1=0;cs2=1;
Di=1;
RW=0;
Lcd_Bus=dis_data;
delay(0);
Enable=1;
delay(0);
Enable=0;
}
/***********************清内存左***********************/
void clear_1(void)
{
unsigned char j,k;
cs1=1;cs2=0;
write_cmd_1(Page_Add+0);
write_cmd_1(Col_Add+0);
for(k=0;k<8;k++)
{
write_cmd_1(Page_Add+k);
for(j=0;j<64;j++)
write_data_1(0x00);
}
}
/***********************清内存右***********************/
void clear_2(void)
{
unsigned char j,k;
cs1=0;cs2=1;
write_cmd_2(Page_Add+0);
write_cmd_2(Col_Add+0);
for(k=0;k<8;k++)
{
write_cmd_2(Page_Add+k);
for(j=0;j<64;j++)
write_data_2(0x00);
}
}
/***********************显示汉字16*16左************************/
void Chinese_disp_1(unsigned char pag,unsigned char col,unsigned char n)
{
unsigned char i=0;
unsigned char j=0;
cs1=1;cs2=0;
for(i=0;i<2;i++)
{
write_cmd_1(Page_Add+pag+i);
write_cmd_1(Col_Add+col);
for(j=0;j<16;j++)
write_data_1(Chinese_character[n][16*i+j]);
}
}
/***********************显示汉字16*16右***********************/
void Chinese_disp_2(unsigned char pag,unsigned char col,unsigned char n)
{
unsigned char i=0;
unsigned char j=0;
cs1=0;cs2=1;
for(i=0;i<2;i++)
{
write_cmd_2(Page_Add+pag+i);
write_cmd_2(Col_Add+col);
for(j=0;j<16;j++)
write_data_2(Chinese_character[n][16*i+j]);
}
}
/***********************显示英文16*8左************************/
void E_disp_1(unsigned char pag,unsigned char col,unsigned char n)
{
unsigned char i=0;
unsigned char j=0;
cs1=1;cs2=0;
for(i=0;i<2;i++)
{
write_cmd_1(Page_Add+pag+i);
write_cmd_1(Col_Add+col);
for(j=0;j<8;j++)
write_data_1(E[n][8*i+j]);
}
}
/***********************显示英文16*8右***********************/
void E_disp_2(unsigned char pag,unsigned char col,unsigned char n)
{
unsigned char i=0;
unsigned char j=0;
cs1=0;cs2=1;
for(i=0;i<2;i++)
{
write_cmd_2(Page_Add+pag+i);
write_cmd_2(Col_Add+col);
for(j=0;j<8;j++)
write_data_2(E[n][8*i+j]);
}
}
/***********************液晶屏初始化***********************/
void init_lcd()
{
Lcd_Rst=0;
delay(100);
Lcd_Rst=1;
delay(100);
write_cmd_1(Disp_Off); write_cmd_2(Disp_Off);
write_cmd_1(Page_Add+0); write_cmd_2(Page_Add+0);
write_cmd_1(Start_Line+0); write_cmd_2(Start_Line+0);
write_cmd_1(Col_Add+0); write_cmd_2(Col_Add+0);
write_cmd_1(Disp_On); write_cmd_2(Disp_On);
}
/***********************LCD显示子程序***********************/
void display(void)
{
unsigned char i;
for(i=Start_Line;i<0xff;i++)
{
Chinese_disp_1(0,0, 0);
Chinese_disp_1(0,16,1);
Chinese_disp_1(0,32,2);
Chinese_disp_2(0,0, 4);
Chinese_disp_2(0,16,5);
Chinese_disp_2(0,32,6);
//深圳维杰科技
E_disp_1(4,16,0);
E_disp_1(4,24,1);
E_disp_1(4,32,2);
E_disp_1(4,40,3);
E_disp_1(4,48,4);
E_disp_1(4,56,5);
E_disp_2(4,0,6);
E_disp_2(4,8,7);
E_disp_2(4,16,8);
E_disp_2(4,24,9);
E_disp_2(4,32,10);
E_disp_2(4,40,11);
E_disp_2(4,48,12);
//www.wejie.com
write_cmd_1(i);
write_cmd_2(i);
delay(3000);//调整滚动速度
}
//delay(60000);
}
/***********主程序************/
void main(void)
{
init_lcd();
clear_1();
clear_2();
while(1)
{
display();
}
}
ddd.zip.zip_zip
版权申诉
109 浏览量
2022-09-24
16:16:03
上传
评论
收藏 2KB ZIP 举报
御道御小黑
- 粉丝: 61
- 资源: 1万+
最新资源
- 简单的Linux C代码,实现链表功能
- 汇编语言探索之旅:从基础到实践,解锁底层奥秘-markdown材料.zip
- Fortran语言:经典与现代交织的编程之旅-markdown材料.zip
- 基于python编写的appium自动化框架,采用PO模式,并集成了日志以及测试报告通过邮件发送的功能
- csdn.apk
- spleeter模型下载
- 微信小程序 - 图书管理系统源码.zip
- 微信小程序 - 图片自适应 ,富文本解析源码.zip
- 微信小程序 - 同乐居商城:购物车合算源码
- 1、根据输入的三条边值判断能组成何种三角形,并设计测试数据进行判定覆盖测试 三条边为变量a、b、c,范围为1≤边值≤10,不在范
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈