📄 peri.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 + -