📄 main.c
字号:
/*******************************************************************
*File :main.c
*功能 :向LCD输出字符
********************************************************************/
#include "config.h"
#define rs (1<<8)
#define rw (1<<9)
#define en (1<<10)
#define busy (1<<7)
uint8 txt0[]={"sunlei comes"};
uint8 txt1[]={"from"};
uint8 txt2[]={"yangzhou"};
uint8 txt3[]={"sunlei"};
uint8 txt4[]={"is a good boy"};
/**********************************************************************
*名称 :Chkbusy()
*功能 :检测总线是否忙
************************************************************************/
void Chkbusy()
{
IO0DIR = 0x700;
while(1)
{
IO0CLR = rs;
IO0SET = rw;
IO0SET = en;
if((IO0PIN&busy)==0) break;
IO0CLR = en;
}
IO0DIR = 0x7FF;
IO0CLR = en;
}
/*************************************************************************
*名称 :Wrop()
*功能 :写指令
**************************************************************************/
void Wrop(uint8 dat)
{
Chkbusy();
IO0CLR = rs;
IO0CLR = rw;
IO0CLR = 0xFF;
IO0SET = dat;
IO0SET = en;
IO0CLR = en;
}
/*************************************************************************
*名称 :Wrdat()
*功能 :写数据
**************************************************************************/
void Wrdat(uint8 dat)
{
Chkbusy();
IO0SET = rs;
IO0CLR = rw;
IO0CLR = 0xFF;
IO0SET = dat;
IO0SET = en;
IO0CLR = en;
}
/*************************************************************************
*名称 :lcdinit()
*功能 :LCD初始化
**************************************************************************/
void Lcdinit()
{
Wrop(0x38);
Wrop(0x06);
Wrop(0x0c);
}
/*************************************************************************
*名称 : Distext()
*功能 :显示文本文件
**************************************************************************/
void Distext(uint8 addr,uint8 *p)
{
Wrop(addr);
while(*p!='\0') Wrdat(*(p++));
}
/**************************************************************************
*名称 :Delayns()
*功能 :长软件延迟
****************************************************************************/
void Delayns(uint32 dly)
{
uint32 i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*************************************************************************
*名称 : main()
*功能 :显示文本
**************************************************************************/
int main(void)
{
Lcdinit();
IO0DIR = 0x7FF;
IO0CLR = 0x7FF;
while(1)
{
Wrop(0x01);
Distext(0x82,txt0);
Distext(0xc2,txt1);
Distext(0xc8,txt2);
Delayns(50);
Wrop(0x01);
Distext(0x82,txt3);
Distext(0xc2,txt4);
Delayns(50);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -