📄 test.c
字号:
//#include <at91sam7s64.h>
#include <sam7s.h> //自定义的S64寄存器名函数
#include <delay.h> //自定义的DELAY函数
#define LCD_RS 8
#define LCD_RW 9
#define LCD_EN 10
//#define LCD_BACK_LIGHT PORTC.2
void LCD_init (void);
void LCD_en_write (void);
void LCD_write_char (uchar command,uchar data);
void io_set(uchar pin) //单个IO口置位函数
{
ulong io_data=1;
io_data=io_data<<pin;
PIO_SODR=io_data; //PIO_ODSR为IO线上置位寄存器,1有效,0无
}
void io_clear(uchar pin) //单个IO口清零函数
{
ulong io_data=1;
io_data=io_data<<pin;
PIO_CODR=io_data; //PIO_CODR为IO线上清零寄存器,1有效,0无
}
void LCD_init(void) //液晶初始化
{
unsigned char i=0;
delay_nms(1000);
for(i=0;i<5;i++)
{
LCD_write_char(1,0x38); //8位显示,5*7点阵字符
delay_nms(40);
}
LCD_write_char(1,0x06); //8位显示,5*7点阵字符
delay_nms(40);
LCD_write_char(1,0x01); //清屏
delay_nms(40);
// delay_nms(100);
LCD_write_char(1,0x0f); //显示开,光标开,闪烁开
delay_nms(40);
}
void LCD_write_char(uchar command,uchar data) // 写数据
{
uchar i=0,temp=0;
delay_nus(50);
if(command==0) io_set(LCD_RS); //RS=1
else io_clear(LCD_RS);
for(i=0;i<8;i++)
{
if(data&1) {io_set(i+24);} //把相应的IO口置位或者清零
else {io_clear(i+24);}
data=data>>1;
} //写入8位控制字
// LCD_DATA_PORT=data; //写8位控制字
delay_nus(20);
// LCD_en_write();
io_clear(LCD_EN);
delay_nus(200);
io_set(LCD_EN);
delay_nus(200);
}
void LCD_set_xy( unsigned char x, unsigned char y ) //写地址函数
{
unsigned char address;
if (y == 0) address = 0x80 + x;
else
address = 0xc0 + x;
LCD_write_char(1,address);
}
void main(void)
{
uint a=0;
PMC_PCER=0x0F; //PMC外设时钟使能
PIO_PER=0xffffffff; //PIOA0-31作为I/O使用
PIO_OER=0xffffffff; //I/O输出使能
delay_nus(10);
LCD_init(); //1602初始化
while(1)
{
LCD_set_xy(0,0);
LCD_write_char(0,'m');
LCD_write_char(0,'y');
LCD_write_char(0,'h');
LCD_write_char(0,'k');
LCD_write_char(0,'0');
LCD_write_char(0,'0');
LCD_write_char(0,'7');
delay_nms(1000);
LCD_set_xy(4,1);
LCD_write_char(0,'m');
LCD_write_char(0,'c');
LCD_write_char(0,'u');
LCD_write_char(0,'z');
LCD_write_char(0,'o');
LCD_write_char(0,'n');
LCD_write_char(0,'e');
LCD_write_char(0,'.');
LCD_write_char(0,'c');
LCD_write_char(0,'o');
LCD_write_char(0,'m');
delay_nms(1000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -