单片机设计吧 关注:442贴子:1,219
  • 5回复贴,共1

为什么我的LED不亮,LCD1608不显示

只看楼主收藏回复

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define DBPort P0
void LCD_Initial();
sbit P31=P3^1; //无线信号接收端
sbit P24=P2^4; //控制快进
sbit P25=P2^5; //控制播放
sbit led=P1^0; //到站指示灯
sbit LcdRs=P2^0;
sbit LcdRw=P2^1;
sbit LcdEn=P2^2;
char i;
uchar code dis1[]="ZhaoHu Z "; //站点内容可更新或增加
uchar code dis2[]="JuYuan Z";
uchar code dis3[]="Jin Shan";
uchar code dis4[]="Shang Du";
uchar code dis5[]="Shi Da ";
uchar *p;
void Delay1ms(unsigned int count) //延时1ms
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
void delay()
{
int i,j;
for(i=0;i<255;i++)
for(j=0;j<120;j++);
}
void main()
{
LCD_Initial(); //lcd初始化
i=0;
p=dis1; //初始化界面
delay();
P31=1;
TR0=1; //启动计数器
while(1)
{
Delay1ms(300);
while(P31); //判断P31口是否为1,如果是则循环直到是0后往下执行
delay();
P24=0; // 从P24口输出一个负脉冲使FWD有效,指针指向下一段
delay();
P24=1;
delay();
P25=0; // PLAY有效,播放当前段
delay();
P25=1;
if(i==5){i=0;}else{i++;}
switch(i)
{
case 0:{p=dis1;} break;
case 1:{p=dis2;} break;
case 2:{p=dis3;} break;
case 3:{p=dis4;} break;
case 4:{p=dis5;} break;
};
while(!P31) //判断P31口是否为0,如果为0则执行led=0否则led=1
{
delay();
led=0;
}
led=1;
delay();
}
}
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
while(DBPort&0x80);
LcdEn=0;
return DBPort;
}
#define LCD_COMMAND 0
#define LCD_DATA 1
#define LCD_CLEAR_SCREEN 0x01
void LCD_Write(bit style, unsigned char input)
{
LcdEn=0;
LcdRs=style;
LcdRw=0; _nop_();
DBPort=input; _nop_();
LcdEn=1; _nop_();
LcdEn=0; _nop_();
LCD_Wait();
}
#define LCD_SHOW 0x04
#define LCD_NO_CURSOR 0x00
void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
}
#define LCD_AC_UP 0x02
#define LCD_NO_MOVE 0x00
void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND, 0x04|InputMode);
}
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND,0x38);
LCD_Write(LCD_COMMAND,0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);
LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //
}


IP属地:湖北1楼2015-12-02 22:31回复


    IP属地:上海2楼2017-03-13 02:39
    回复
      这是个什么电路啊


      来自手机贴吧4楼2017-05-22 19:02
      回复
        LCD不亮的原因可能有很多,可以主函数里面单独测试测试一下LCD1602
        其他程序全部屏蔽啦


        IP属地:上海5楼2017-05-24 18:52
        回复
          可以定做


          6楼2019-03-10 20:11
          回复
            短路了


            IP属地:辽宁7楼2021-04-02 13:01
            回复