📄 cm160128c.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 + -