📄 yejingexp.c
字号:
#include <reg52.h> //52系列单片机定义文件
#include <absacc.h>
#include <string.h>
#include <intrins.h>
#define uchar unsigned char
//液晶程序
#define disp_off 0x3e
#define disp_on 0x3f
#define disp_x 0xb8
#define disp_z 0xc0
#define disp_y 0x40
//#define comm 0
//#define dat 1
#define data_ora P0 //MCU P0<------> LCM
//sbit on = P3^7; //在io方式操作液晶下
sbit LCM_CS1 = P2^6;
sbit LCM_CS2 = P2^5;
sbit LCM_RW = P2^4;
sbit LCM_RS = P2^3;
sbit LCM_E = P2^7;
#define LCD1RD 0x5800 //01011000 00000000
#define LCD2RD 0x3800 //00111000 00000000
#define LCD1WRCOM 0x4000 //01000000 00000000
#define LCD1WRDAT 0x4800 //01001000 00000000
#define LCD2WRCOM 0x2000 //00100000 00000000
#define LCD2WRDAT 0x2800 //00101000 00000000
#define LCDWRCOM 0x3000 //01100000 00000000
void delay(uchar x)
{
while(x--);
}
/**************************************************************
//key4---按键4执行子程序
//液晶显示程序
**************************************************************/
void main(void){
uchar i;
uchar xdata *addr;
/* on = 0;
CS1 = 1;
CS2 = 1;
E = 1;
RS = 0;
RW = 0;
data_ora = disp_on; //打开显示开关
E = 0;
WAIT;
E = 1;
data_ora = disp_z; //设置显示起始行为0
E = 0;
WAIT;
E = 1;
data_ora = disp_x; //设置显示起始页地址为0
E = 0;
WAIT;
E = 1;
data_ora = disp_y; //设置显示起始列地址为0
E = 0;
WAIT;
E = 1;
//1屏
CS1 = 1;
CS2 = 0;
RS = 1;
data_ora = 0X00;
E = 0;
WAIT;
E = 1;
data_ora = 0XFf;
E = 0;
WAIT;
E = 1;
data_ora = 0X0F;
E = 0;
WAIT;
E = 1;
data_ora = 0XF0;
E = 0;
WAIT;
E = 1;
//2屏
CS1 = 0;
CS2 = 1;
RS = 1;
data_ora = 0X00;
E = 0;
WAIT;
E = 1;
data_ora = 0XFf;
E = 0;
WAIT;
E = 1;
data_ora = 0X0F;
E = 0;
WAIT;
E = 1;
data_ora = 0XF0;
E = 0;
WAIT;
E = 1;
*/
addr = LCD1WRCOM; //写入命令
*addr = disp_off; //关上显示开关
*addr = disp_on; //打开显示开关
*addr = disp_z; //设置显示起始行为0
*addr = disp_x; //设置显示起始页地址为0
//////////////////////////////
addr =LCD1RD; //读LCD1
i = *addr;
////////////////////////////////
*addr = disp_y; //设置显示起始列地址为0
addr = LCD1WRDAT;
for(i=0;i<64;i++){
*addr=0; //LCD1第一行清空
delay(10);
}
addr = LCD2WRCOM;
*addr = disp_off; //打开显示开关
*addr = disp_on; //打开显示开关
*addr = disp_z; //设置显示起始行为0
*addr = disp_x; //设置显示起始页地址为0
*addr = disp_y; //设置显示起始列地址为0
addr = LCD2WRDAT;
for(i=0;i<64;i++){
*addr=0; //LCD2第一行清空
delay(10);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -