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

📄 main.c

📁 TMS320F2812液晶显示学习例程所以请不要将文件放在这两个目录下能够在dsp2812的开发板上实现
💻 C
字号:
#include <AT89X52.H>
#include"lcd_header.h"

#define Disp_On  0x3f
#define Disp_Off 0x3e
#define Col_Add  0x40///////Y地址
#define Page_Add 0xb8////////x地址
#define Start_Line 0xc0//启始行 


sbit CSZ=P0^4;  //Master chip enable ---左半部分CS2
sbit CSY=P0^3;  //Slave chip enable ---右半部分CS1
sbit Enable=P0^2; //6800 mode Enable single ---据说是下降沿有效
sbit RS=P0^0;  //Data or Instrument Select ---
sbit RW=P0^1;  //Write or Read ---读写选择位
sbit Lcd_Rst=P0^5; //Lcm reset ---LCD复位
#define Lcd_Bus P2  //MCU P1<------> LCM
/*------------------延时子程序-----------------------------*/

void delay(unsigned int t)
	{
		unsigned int i,j;

		for( i = 0 ; i < t ; i ++ )
			for( j = 0 ; j < 10 ; j ++ ) ;
	}
/*------------------写命令到LCD------------------------------*/
void write_com( unsigned char cmdcode )
	{
		RS = 0 ;
		RW = 0 ;
		//tran164(cmdcode);//
		Lcd_Bus = cmdcode ;
		delay ( 0 ) ;
		Enable = 1 ;
		delay ( 0 ) ;
		Enable = 0 ;
	}
/*-------------------写数据到LCD----------------------------*/
void write_data ( unsigned char Dispdata )
	{
		RS = 1 ;
		RW = 0 ;
		//tran164(Dispdata);//
		Lcd_Bus = Dispdata ;
		delay ( 0 ) ;
		Enable = 1 ;
		delay ( 0 ) ;
		Enable = 0 ;
	}
/*------------------清除内存---------------*/
void Clr_Scr ( )
	{
		unsigned char j , k ; 
		
		CSZ= 1 ;
		CSY = 1 ;
		write_com ( Page_Add + 0 ) ;
		write_com ( Col_Add  + 0 ) ;
		for( k = 0 ; k < 8 ; k ++ )
			{
				write_com( Page_Add + k ) ;
  				for ( j = 0 ; j < 64 ; j++ )
					{
						write_data( 0x00 ) ;
					}
 			}
	}



/*---------------------指定位置显示汉字16*16-----------------------*/
void hz_disp16( unsigned char pag , unsigned char col, unsigned char code  *hzk )
	{
		unsigned char j , i ;

		for(j=0;j<2;j++)
			{
				write_com(Page_Add+pag+j);
				write_com(Col_Add+col);
				for(i=0;i<16;i++) 
					{
						write_data(hzk[16*j+i]);
					}
			}
	}

void init_lcd( void )
	{
		Lcd_Rst = 0 ;				//复位LCD
 		delay ( 100 ) ;
		Lcd_Rst = 1 ;
 		delay ( 100 ) ;
		CSZ = 1 ;
		CSY = 1 ;
		delay ( 100 ) ;
		write_com ( Disp_Off ) ;
		write_com ( Page_Add ) ;
		write_com ( Start_Line );
		write_com ( Col_Add ) ;
		write_com ( Disp_On );
	}
void writecuit( unsigned char pag,unsigned char col,unsigned char code *dat , unsigned char pagc,unsigned char colc)
//                     显示起始页     显示起始列        显示图案数据                图案所占页          图案所占列
	{
		unsigned char i,j;
		
		for(j = 0 ; j < pagc ; j++ )
		{
			CSZ = 1 ;
			CSY = 0 ;
			write_com ( Page_Add + pag + j ) ;
			write_com ( Col_Add + col ) ;
			for( i = 0 ; i < colc ; i ++ )
				{
					if ( ( i+col ) == 64 ) 
						{
							CSZ = 0 ;
							CSY = 1 ;
							write_com ( Col_Add ) ;
					    	write_com ( Page_Add + pag + j ) ;
						}
					else if ((i+col)==127)
						{
							CSZ = 1 ;
							CSY = 0 ;
							write_com ( Col_Add ) ;
					    	write_com ( Page_Add + pag + j ) ;
						}
					write_data ( dat [colc * j + i ] ) ;
	   			}
		}
	}

void main (void )

	{   
		init_lcd( );
		Clr_Scr();
		while(1)
			{ 
			  writecuit(0,0,yan,2,16);
			  writecuit(4,46,yanxinwei,2,34);
               writecuit(0,0,Bmp005,8,128);
			}
	 }

⌨️ 快捷键说明

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