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

📄 main.c

📁 自己做的一个lcd240*128的液晶模块显示程序,里面包含proteus仿真
💻 C
字号:
/*模拟时序*/
#include <reg51.h>
#include <cncode.h>
#include <encode.h>

sbit cd = P2^0;
sbit ce = P2^1;
sbit rd = P2^2;
sbit wr = P2^3;
sbit md2 = P2^4;
sbit fs1 = P2^5;
sbit halt = P2^6;
sbit res = P2^7;
unsigned char x, y;

void delay(unsigned char tt){
	for(;tt!=0; --tt);
}

void writed(unsigned char dat){//把数值传送到D口
	cd = 0;//传输类型是数据
	ce = 0;
	wr = 0;
	P0 = dat;
	delay(1);//lcm占用时间,晶振较快时需要
	wr = 1;
	//ce = 1;
}

void writec(unsigned char command){//把命令传送到D口
	cd = 1;//传输类型是命令
	ce = 0;
	wr = 0;
	P0 = command;
	delay(1);
	wr = 1;
	//ce = 1;
}

void wprintf(char *ptr){
	unsigned int posi, i=0;
	unsigned char c1, c2, j, k;
	while(ptr[i]!=0x00){
		c1 = ptr[i];
		c2 = ptr[i+1];
		posi = x*30 + y;
		if(c1 <= 128){//ascii大于128为汉字
			for(k=0; k<16; ++k){//16*8
				writed(posi&0xff);
				writed(posi/256);
				writec(0x24);
				writec(0xb0);
				writed(ASC_MSK[(c1-0x20)*16+k]);
				writec(0xb2);
				posi += 30;
			}
			if(y>28){//换行
				x += 16;
				y = 0;
			}else ++y;
			++i;
		}
		else{
			if(y>28){//换行
				x += 16;
				y = 0;
			}else{
				for(j=0;j<sizeof(GB_16)/sizeof(GB_16[0]);++j){//找到汉字
					if(c1 == GB_16[j].Index[0] && c2 == GB_16[j].Index[1]) break;
				}
				if(j<sizeof(GB_16)/sizeof(GB_16[0])){
					for(k=0;k<16;++k){
						writed(posi&0xff);
						writed(posi/256);
						writec(0x24);
						writec(0xb0);
						writed(GB_16[j].Msk[k*2]);
						writed(GB_16[j].Msk[k*2+1]);//16*16,每行2字节
						writec(0xb2);
						posi += 30;//下一行
					}
				}
				else{//没找到则涂黑
					for(k=0;k<16;k++){
						writed(posi&0xff);
						writed(posi/256);
						writec(0x24);
						writec(0xb0);
						writed(0xff);
						writed(0xff);
						writec(0xb2);
						posi += 30;//下一行
					}
				}
				y += 2;
		      	i += 2;//下一字
			}
		}
	}
}

void main(void){
	//unsigned int i;
	fs1 = 0;//fs1管脚高电平时表示字体为8*6;低电平时为8*8,8*6写不了16*16中文,所以不用了
	md2 = 0;
	halt = 0;
	writed(0);
	writed(0);
	writec(0x42);
	writed(30);
	writed(0);
	writec(0x43);
	writec(0x80);
	writec(0x9a);//关闭文本显示,开图形显示
	x = 0;//坐标
	y = 0;
	wprintf("My Name Is 黄伟钳, Think You  For Download! ^_^\0");
	while(1);
}

⌨️ 快捷键说明

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