下面是我的程序,我把1602的RS,RW,E用P2【3】P2【4】
P2【5】
数据端口用P0【0——7】
系统编译时无错,不知道哪里有问题,请高手指教啊 软件使用的LPCXpresso v3.6.3_317
#include "LPC17xx.h"
#include <cr_section_macros.h>
#include <NXP/crp.h>
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
unsigned char _table1_[]=" 2011-9-10 ";
unsigned char _table2_[]=" HELLO CHINA ^_^";
int i;
void write_com(unsigned char com)
{
delay_Ms(0,500);
LPC_GPIO2->FIOCLR0=0XFF; //把P2[]清零
LPC_GPIO2->FIOSET0=1<<6; //把P2【5】置1,其余位不变 0010 0000
LPC_GPIO0->FIOCLR0=0XFF;
LPC_GPIO0->FIOSET0=com;
// LPC_GPIO0->FIOPIN0=com;//P0[0..7]读入com
LPC_GPIO2->FIOCLR0=1<<6; //给P2[5]置0 ,其余位不变
}
void write_date(unsigned char date)
{
delay_Ms(0,500);
LPC_GPIO2->FIOCLR0=0XFF;
LPC_GPIO2->FIOSET0|=0X08;//把P2[3]置1,P2[4],P2[5]不变为0
LPC_GPIO2->FIOSET0=1<<6;//使P2[5]置1,其余位不变
LPC_GPIO0->FIOCLR0=0XFF;
LPC_GPIO0->FIOSET0=date;
// LPC_GPIO0->FIOPIN0=date;
LPC_GPIO2->FIOCLR0=1<<6; //给P2[5]置0 ,其余位不变1<<5
}
void init()
{
LPC_GPIO2->FIOCLR0|=0X20; //给P2[5]置0,其余位不变
write_com(0x38); //设置液晶的显示模式
write_com(0x0c);
write_com(0x80);//数据指针初始化,从第一行开始?
for(i=0;i<14;i++)
{
write_date(_table1_
);
delay_Ms(100);
}
write_com(0x80+0x40);
for(i=0;i<16;i++)
{
write_date(_table2_);
delay_Ms(100);
}
}
int main()
{
SystemCoreClockUpdate ();//
SystemInit();
LPC_PINCON->PINSEL0=0X00; //定义P0[0..7]为普通IO口
LPC_GPIO0->FIODIR0=0XFF; //把端口P0设置为输出引脚
// LPC_GPIO0->FIOCLR0=0XFF;
LPC_PINCON->PINSEL4=0X00;//定义P2[0..7]为普通IO口
LPC_GPIO2->FIODIR=0XFF; //把端口2 设置为输出引脚
// LPC_GPIO2->FIOCLR0=0XFF;
init();
while(1);
}
此帖出自小平头技术问答
一周热门 更多>