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

📄 main.c

📁 使用 LPC2132驱动st7920液晶
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               Guangzou ZLG-MCU Development Co.,LTD.
**                                      graduate school
**                                 http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name:			main.c
** Last modified Date:  2004-09-16
** Last Version:		1.0
** Descriptions:		The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by:			Chenmingji
** Created date:		2004-09-16
** Version:				1.0
** Descriptions:		The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#include "config.h"

#define led1  (1<<16)
#define led2  (1<<17)
#define led3  (1<<18)
#define led4  (1<<19)
#define CS    (1<<21)  
#define SID   (1<<22)  
#define SCLK  (1<<23)


#define CS_H()  IO1SET=1<<21
#define CS_L()  IO1CLR=1<<21
#define SID_H() IO1SET=1<<22
#define SID_L() IO1CLR=1<<22
#define SCLK_H() IO1SET=1<<23
#define SCLK_L() IO1CLR=1<<23

#define ADD_SET 0x34             //定义扩充指令集合
#define MOVE 0x03            //允许垂直滚动 
#define FUNC_SET   0x30      //8位数据,基本指令集    
#define DISP_ON     0x0f      //开显示,开关标,不闪烁
#define CLR_SCREEN 0x01      //清屏幕
#define ENTRY_MODE 0x06      //光标右移动,画面不动         

#define S_CMD   0xf8        //启动命令
#define S_DATA  0xfa        //启动数据 


uint8 hz1[]={"欢迎使用ARM7平台"};
uint8 hz2[]={"版权归刘国华所有"};
uint8 hz3[]={"QQ:158655612 ^_^"};
uint8 hz4[]={"手机:15923522472"};

void delay(uint32 t)
{	
	uint32 i;
	for(i=0;i<t;i++);
}

void send_byte(uint8 data)
{
	uint8 i;
	
	SCLK_L();        //sclk=0 
	for(i=0;i<8;i++)
	{
		if(data&0x80)   //判断最高位为1不
			SID_H();
		else
			SID_L();
			
		SCLK_H();        //sclk=1
		//delay(1000); 
		SCLK_L();
		//delay(1000);
		data=data<<1;				
	}	                       //出来sclk为低电平
	delay(1000); 
}


void send_cmd(uint8 cmd)
{
	CS_H();               //cs=1
	send_byte(S_CMD);     //发送命令启动字节
	send_byte(cmd&0xf0);  //发送命令字节的高四位 
	send_byte(cmd<<4);    //发送命令字节的低四位
	CS_L();
	//delay(10000);
}
void send_data(uint8 data)
{
	CS_H();               //cs=1
	send_byte(S_DATA);     //发送数据启动字节
	send_byte(data&0xf0);  //发送数据字节的高四位 
	send_byte(data<<4);    //发送数据字节的低四位
	CS_L();
	//delay(10000);
}

void set_position(uint8 row,uint8 col)
{
	uint8 pos;
	switch(row)
	{
		case 1:
			pos=0x80+col-1;
			break;
		case 2:
			pos=0x90+col-1;
			break;
		case 3:
			pos=0x88+col-1;
			break;
		case 4:
			pos=0x98+col-1;
			break;
	}
	send_cmd(pos);
}


void lcd_init()
{
	delay(3000);    
	send_cmd(FUNC_SET);  //功能设置
	send_cmd(DISP_ON);   //开显示
	send_cmd(CLR_SCREEN);//请屏幕
	send_cmd(ENTRY_MODE);//设置模式            
}


int main (void)
{// add user source code 

	uint8 i;
	IO1DIR=led1|led2|led3|led4|CS|SID|SCLK;     //P1.16-P1.19,P1.21-P1.23设置为输出
	
	IO1SET=led1|led2|led3|led4;          //灭灯
	IO1CLR=led1|led2|led3|led4|CS|SID|SCLK;     
		
	lcd_init();
	
	set_position(1,1);                          //第1行第1列
	
	for(i=0;i<16;i++)
	{
		send_data(hz1[i]);
	}
	set_position(2,1);                          //第2行第1列
	
	for(i=0;i<16;i++)
	{
		send_data(hz2[i]);
	}
	
	set_position(3,1);                          //第2行第1列
	
	for(i=0;i<16;i++)
	{
		send_data(hz3[i]);
	}
	  
	set_position(4,1);                          //第2行第1列
	
	for(i=0;i<16;i++)
	{
		send_data(hz4[i]);
	}
	
	//send_cmd(ADD_SET);                    //改为扩充指令
	//send_cmd(MOVE);                       
	//send_cmd(0x40);               
	while(1);
    return 0;
}
/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

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