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

📄 st9270显示模块_l4循环输出中文字.c

📁 st9270_12832_4bitMode_chinese 四位数据接口显示中文字符程序
💻 C
字号:
/*
说明	用单片机低四位驱动ST7920版本单行显示模块显示指定字符串(4bit模式)
		按8个字符一屏循环输出自定义字符串列表
		中文字符采用 ST7920-0B 版本中文字库
		上电显示"欢迎访问阿呆科技"
文件	ST7920显示模块_L4循环输出中文字.C
作者	TEGEST 
修改	修改建议可发到21ICBBS讨论. 或 photar@126.com
版本	V1.00A Build 081212
*/

#include<reg52.h>//采用51单片机驱动ST7920 P0口低四位03-01输出数据
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P2^2;
sbit lcdrw=P2^3;
sbit lcden=P2^4;
//sbit BF=P0^7;//忙标志BUSY FLAG

uchar num,Bit_H=0xa1,Bit_L=0xf7;//字库表的高(Bit_H)和低(Bit_L)位地址

void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

void write_com(uchar com)
{
	uchar com_temp;
	com_temp=com>>4;//低四位数据
	lcdrs=0;
	delay(1);	
	P0=com_temp;
	delay(1);
	lcden=1;
	delay(1);
	lcden=0;
	delay(1);
	lcdrs=0;
	delay(1);	
	P0=com;
	delay(1);
	lcden=1;
	delay(1);
	lcden=0;
}

void write_data(uchar out_char)
{
	uchar temp;
	temp=out_char>>4;	//低四位数据

	lcdrs=1;
	delay(1);
	P0=temp;
	delay(1);
	lcden=1;
	delay(1);
	lcden=0;
	delay(1);
	lcdrs=1;			//写低四位数据
	P0=out_char;
	delay(1);
	lcden=1;
	delay(1);
	lcden=0;
	delay(1);
}


void init()
{
	delay(500);
	lcden=0;
	lcdrw=0;
	delay(1);
	write_com(0x02);//地址计数器清零
	delay(1);
	write_com(0x02);
	delay(1);
	write_com(0x20);//2line display on 4bits
	delay(1);
	write_com(0x06);//display on/off control
	delay(1);
	write_com(0x01);//display clear
	delay(1);
	write_com(0x0c);//entry mode set c0光标关  e0光标开  f0光标闪烁开
	delay(500);
	}

void main()
{
	init();

	write_data(0xbb);//欢		//TEST CHINESE CHAR
	write_data(0xb6);

	write_data(0xd3);//迎
	write_data(0xad);

	write_data(0xb7);//访
	write_data(0xc3);

	write_data(0xce);//问
	write_data(0xca);

	write_com(0x90);	//设置第五个汉字的地址

	write_data(0xb0);//阿
	write_data(0xa2);

	write_data(0xb4);//呆
	write_data(0xf4);

	write_data(0xbf);//科
	write_data(0xc6);

	write_data(0xbc);//技
	write_data(0xbc);
	delay(3000);

	write_com(0x80);//指定第1列汉字的地址  0x80
	delay(1);
	write_com(0x01);//display clear
	delay(4);
	
	while(1)
	{
		for(num=0;num<4;num++)
		{
			if(Bit_H == 0xaa)
				Bit_H=0xb0;
			if(Bit_H == 0xf7)
				Bit_H=0xa0;
			if(Bit_L == 0xff)
				{
				Bit_H++;
				Bit_L=0xa0;
				}
			
			write_data(Bit_H);
			write_data(Bit_L);
			Bit_L++;
			delay(1);
		}
	
		write_com(0x90);//指定第4列汉字的地址  0xc0=0x80+0x40
	
		for(num=4;num<8;num++)
		{
			if (num==8)
			num=0;
			if(Bit_H == 0xaa)
				Bit_H=0xb0;
			if(Bit_H == 0xf7)
				Bit_H=0xa0;
			if(Bit_L == 0xff)
			{
				Bit_H++;
				Bit_L=0xa0;
			}
			
			write_data(Bit_H);
			write_data(Bit_L);
			Bit_L++;
			delay(1);
			lcden=0;
			lcdrw=0;
		}
		delay(500);
		write_com(0x80);//指定第1列的地址  0x80
		delay(1);
		write_com(0x01);//display clear
		delay(4);
	}
}

⌨️ 快捷键说明

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