• 大小: 13KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: 其他
  • 标签: 12864  

资源简介

lcd12864显示波形函数程序,用51单片机为主控芯片调试成功,需要的拿去

资源截图

代码片段和文件信息

#include
#include“logo.h“
#include“math.h“

#define uint  unsigned int
#define uchar unsigned char
#define X1    0x80
#define X2    0x88
#define Y     0x80
#define comm  0
#define dat   1
#define DATA  P0

sbit RS = P3^0;   //H=data; L=“command“;
sbit RW = P3^1;   //H=read; L=“write“;
sbit  E = P3^2;   //input enable;
sbit PSB= P3^3;   //H=并口; L=“串口“;
sbit RST= P3^5;   //Reset Signal 低电平有效

sbit busy=P0^7;   //lcd busy bit


uchar code AC_TABLE[]={ 
0x800x810x820x830x840x850x860x87
0x900x910x920x930x940x950x960x97
0x880x890x8a0x8b0x8c0x8d0x8e0x8f
0x980x990x9a0x9b0x9c0x9d0x9e0x9f
};

uchar code tab1[]={
“程序设计:黎佩才“
“成功将离我不远!“
“努力做好一个细节“
“每天进步一小步!“
};

//μs延时函数 
void delay(uint us)   //delay time
{
   while(us--);
}

//ms延时函数
void delay1(uint ms)
{
   uint ij;
   for(i=0;i   for(j=0;j<15;j++)
   delay(1);
}


//忙检测
void Check_Busy()
{
DATA = 0xff;
RS = 0;
    RW = 1;
    E = 1;
    while(busy==1);
    E = 0;
}


//写数据或命令到LCD
void LCD_Write(uchar comm_datuchar content )
{
Check_Busy();
if(comm_dat)
{
RS=1;
RW=0;
}
else
{
RS=0;
RW=0;
}
DATA=content;
E=1;
delay(5);
E=0;
}

uchar Read_data()
{
uchar shuju;
RS=1;                           // D/I=1,代表数据
RW=1;                           // R/W=1.读取
delay(10);
E=1;
delay(100);
shuju=DATA;                   //读取当前显示的数据
E=0;
return(shuju);  
 }


//LCD清屏
void LCD_Clr()
{
LCD_Write(comm0x30);
LCD_Write(comm0x01);

LCD_Write(comm0x34);
LCD_Write(comm0x01);
}

//LCD初始化
void LCD_Init()
{
RST=1;
PSB=1;
LCD_Write(comm0x30);
LCD_Write(comm0x01);
LCD_Write(comm0x06);
LCD_Write(comm0x0c);
}


//显示汉字
void LCD_Dispchn(uchar code *chn)
{
uchar i  j;
LCD_Write(comm0x30);
LCD_Write(comm0x80);
for(i=0;i<4;i++)
{
for(j=0;j<16;j++)
LCD_Write(datchn[i*16+j]);
}
}

//上半屏显示汉字
void LCD_Dispchn1(uchar code *chn)  
{
uchar i  j;
LCD_Write(comm0x30);
LCD_Write(comm0x80);
j=0;
for(i=0;i<16;i++)
LCD_Write(datchn[j*16+i]);
LCD_Write(comm0x90);
j=1;
for(i=0;i<16;i++)
LCD_Write(datchn[j*16+i]);
}


//显示图片
void LCD_Dispimg(uchar code *img)
{
char i  j;
for(j=0;j<32;j++)
for(i=0;i<8;i++)
{
LCD_Write(comm0x34);
LCD_Write(commY+j);  //y=0x80 设置y坐标,纵向起始位置
LCD_Write(commX1+i);  //x1=0x80 设置横向显示起始位置
LCD_Write(comm0x30);
LCD_Write(datimg[j*16+i*2]);
LCD_Write(datimg[j*16+i*2+1]);
}
for(j=32;j<64;j++)
for(i=0;i<8;i++)
{
LCD_Write(comm0x34);
LCD_Write(commY+j-32);  //y=0x80 设置y坐标,纵向起始位置
LCD_Write(commX2+i);  //x2=0x88 设置横向显示起始位置
LCD_Write(comm0x30);
LCD_Write(datimg[j*16+i*2]);
LCD_Write(datimg[j*16+i*2+1]);

LCD_Write(comm0x36);
}


//上半屏显示图像
void LCD_Dispimg1(uchar code *img)  
{
uchar ij;
for(j=0;j<32;j++)
for(i=0;i<8;i++)
{
LCD_Write(comm0x3

评论

共有 条评论