📄 1601.c
字号:
/************************************************************************
*文件名:1601。C *
*功能: 1601LCD驱动程序。 *
*作者: 杨乐 *
*日期: 2009年1月21日 *
************************************************************************/
#include<REG52.h>
#include<intrins.h>
#include<string.h>
#include"lcd.h"
/************************************************************************
*作者: 杨乐 *
*函数名: write_data *
*功能: 写入数据 *
*入口参数:无 *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void write_data(unsigned char i)/*写入数据*/
{
P0 = i;
RS =1;
RW =0;
E =0;
read_busy();
E =1;
}
/************************************************************************
*作者: 杨乐 *
*函数名: initi *
*功能: LCD初始化 *
*入口参数:无 *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void initi(void)
{
unsigned char c[] = {0x01,0x38,0x0c,0x06};
unsigned char i;
for(i=0;i<4;i++)
write_cmd(c[i]);
}
/************************************************************************
*作者: 杨乐 *
*函数名: write_cmd *
*功能: 写入指令 *
*入口参数:无 *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void write_cmd(unsigned char i)
{
P0 = i;
RS =0 ;
RW =0;
E =0;
read_busy();
E =1;
}
/************************************************************************
*作者: 杨乐 *
*函数名: read_busy *
*功能: 忙判别 *
*入口参数:无 *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void read_busy(void)
{
do
{
P0 &= 0xff;
RS =0;
RW =1;
E =0;
delay(50);
E =1;
}
while (p0_7 ==1);
}
/************************************************************************
*作者: 杨乐 *
*函数名: delay *
*功能: 延时 *
*入口参数:unsigned char x *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void delay(unsigned char x)
{
unsigned char j;
while((x--)!=0)
for(j=0;j<150;j++);
}
/************************************************************************
*作者: 杨乐 *
*函数名: display *
*功能: 在指定位置显示字符 *
*入口参数:unsigned char add,unsigned char *p *
*返回值: 无 *
*日期: 2009年1月21日 *
************************************************************************/
void display(unsigned char add,unsigned char p[])
{
unsigned char i=0;
write_cmd(add);
while(p[i]!='\0')
{
write_data(p[i]);
// write_cmd(0x10);
i++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -