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

📄 peri.c

📁 At91sam7s64+ucosII+pid温度控制
💻 C
字号:
#include "AT91SAM7S128.h"
#include "lib_at91sam7s128.h"

#include "includes.h"

#define ADS1110 0X90
#define AT24CXX 0xa1


#define LCD_RW 1<<23
#define LCD_EN 1<<24
#define LCD_RS 1<<25
#define DABUS   0XFF << 15

char logo0[]= {" ************** "};
char logo1[]= {" Hello World!!! "};
char logo2[]= {" -------------- "};





//=================LCD_DRIVER===============================
int get_lcd()
{
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LCD_EN);
	return((AT91F_PIO_GetInput(AT91C_BASE_PIOA) & DABUS) >> 15);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_EN);
}
void put_lcd(int val)
{
	AT91F_PIO_OutputEnable(AT91C_BASE_PIOA,DABUS);
	AT91F_PIO_ForceOutput(AT91C_BASE_PIOA,(val<<15));
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LCD_EN);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_EN);
}
int lcd_wr_cmd(unsigned char val)         //lcd 写命令函数
{
int i;
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LCD_RW);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_RS);
	i = get_lcd();
	
	if(i&0x0080)
	{
		return(0x1);
	}
	else
	{
		AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_RW);
		put_lcd(val);
	}
	return(0x0);
}

//----------------------------------------------
int lcd_wr_dat(unsigned char val)			//lcd 写数据函数
{
int i;
	AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LCD_RW);
	AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_RS);
	i = get_lcd();
	if(i&0x0080)
	{
		return(0x1);
	}
	else
	{
		AT91F_PIO_SetOutput(AT91C_BASE_PIOA,LCD_RS);
		AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,LCD_RW);
		put_lcd(val);
	}
	return(0);
}
int lcd_sprint(char* s,char row,char col,char num)
{
int i,j;
	switch(row)
	{
		case 0:
			i = 0x80;
			break;
		case 1:
			i = 0x90;
			break;
		case 2:
			i = 0xa0;
			break;
		case 3:
			i = 0xb0;
			break;
		default:
			break;
	}
	i = i + col;
	lcd_wr_cmd(i);
	for(j = 0;j < num;j++)
	{
		if(lcd_wr_dat(*s)==1)
		{
			return(1);
		}
		s++;
	}
	return(0);
}
		
			
		
//-----------------------------------------------------

void lcd_init()
{
	lcd_wr_cmd(0x30);		//8bit interface and base intr
	lcd_wr_cmd(0x0c);		//显示打开,光标关,反白显示关 
	lcd_wr_cmd(0x01);		//清除屏幕显示,将DDRAM的地址计数器归零
	lcd_wr_cmd(0x06);		//DDRAM的地址计数器(AC)加1
	lcd_wr_cmd(0x80);		//DD RAM 地址-----0000000
	lcd_sprint(logo0,0,0,16);
	lcd_sprint(logo1,1,0,16);
	lcd_sprint(logo2,2,0,16);
}
	

⌨️ 快捷键说明

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