⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cm160128c.c

📁 完整的LCD CM160128 液晶程序
💻 C
字号:
/********************************
名称:CM160128液晶显示程序
设计:河南科技大学 创达科技 陈仲库
设计日期:2007年5月13日晚
技术交流:kuzi00@163.com  	QQ:86828048

接口说明
LCD_CD=P3^5;LCD_WR=P3^6;LCD_RD=P3^7;
CE取低电平 直接接GND 
P2口为数据口 间接方式 控制T6963C
*********************************/
#include <reg51.h>
#include <LCD_ziku.c>  //LCD_ziku.c  含有字模


sbit LCD_CE=P3^4;
sbit LCD_CD=P3^5;
sbit LCD_WR=P3^6;
sbit LCD_RD=P3^7;

#define unint  unsigned int
void LCD_Busy()
{
  unint dat;
      do{
        P2=0xff;
		LCD_CD=1;
		LCD_RD=0;
        dat=P2;
		LCD_RD=1;
        dat=0x03&dat;
        }while(dat!=0x03);
}

void LCD_Data(dat)
{
	LCD_Busy();
	LCD_CD=0;
	P2=dat;
	LCD_WR=0;
	LCD_WR=1;
}

void LCD_Com1(command)//写有 1 个参数命令
{
	LCD_Busy();
	LCD_CD=1;
	P2=command;
	LCD_WR=0;
	LCD_WR=1;
}

void LCD_Com2(dat, command)//写有 2 个参数命令
{
	LCD_Data(dat);
	LCD_Com1(command);
}

void LCD_Com3(data1, data2, command)//写有 3 个参数命令
{
	LCD_Data(data1); 
	LCD_Data(data2);
	LCD_Com1(command);
}

void LCD_Clear()//清屏
{
	long i;
	LCD_Com3(0x00,0x00,0x24); 
	LCD_Com1(0xb0);
	for(i=0;i<20500;i++) LCD_Data(0x00);//160*128
	LCD_Com1(0xb2); 
}


void LCD_Init()//初始化LCD
{
	LCD_CD=1;
	LCD_WR=1;
	LCD_RD=1;
	LCD_Com1(0x90); 
	LCD_Com3( 0x00,0x00,0x42 ); 
	LCD_Com3( 0x14,0x00,0x43);
	LCD_Com1(0x80); 
	LCD_Com1(0x98); 
	LCD_Clear();
}

//汉字显示 参数说明LCD_HZ(行点阵数,列点阵,第几个字)行0~127  列 0~159
void LCD_HZ(unint x,unint y,unint n)
{
	char i; 
	long StartAddr;
	StartAddr=x*320+y;      //
	for(i=0;i<16;i++)
	{
		LCD_Com3(StartAddr,((StartAddr)/256),0x24);
		LCD_Com2(HZTable [n][i*2]  , 0xc0); 
		LCD_Com2( HZTable[n][i*2+1], 0xc4); 
		StartAddr=StartAddr + 20;
	}
}

//显示字母
void LCD_Char(char x,char y,char ch)
{
	char i, dat;
	int StartAddr;
	StartAddr=x*320+y; 
	for(i=0;i<16;i++)
	{
		dat=ASCII816[ch][i];
		LCD_Com3(StartAddr,StartAddr>>8, 0x24); 
		LCD_Com2(dat, 0xc4);
		StartAddr=StartAddr + 20;
	}
}

void charline(char x,char y ,char n,char m)
{
	char i;
	for(i=0;i<m;i++)
	LCD_Char(x,y+i,n+i);
}

//显示数字
void LCD_No(char x,char y,char ch)
{
	char i, dat;
	int StartAddr;
	StartAddr=x*320+y;  
	for(i=0;i<16;i++)
	{
		dat=number[ch][i];
		LCD_Com3(StartAddr,StartAddr>>8, 0x24); 
		LCD_Com2(dat, 0xc4);
		StartAddr=StartAddr + 20;
	}
}

void main(void)
{
  char i;
  LCD_CE=0;
  LCD_Init();

  LCD_HZ(1,5,0);  //陈
  LCD_HZ(1,9,1);  //仲
  LCD_HZ(1,13,2);  //库

  LCD_HZ(3,0,3);//河南科技大学 机电工程学院
  LCD_HZ(3,2,4);
  LCD_HZ(3,4,5);
  LCD_HZ(3,6,6);
  LCD_HZ(3,8,7);
  LCD_HZ(3,10,8);
  LCD_HZ(3,12,9);
  LCD_HZ(3,14,10);
  LCD_HZ(3,16,11);
  LCD_HZ(3,18,12);
  LCD_HZ(5,7,13);
  LCD_HZ(5,11,14);
  charline(2,4,0,11);  //ChenZhongku
  for (i=0;i<10;i++)   //在最下行(第8行)显示0123456789 //显示数字
  LCD_No(7,5+i,i);
while(1)
{
};
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -