标题: 单片机独立按键代码没错误但单片机毫无反应? [打印本页]

作者: 可以小帅    时间: 2019-3-13 10:55
标题: 单片机独立按键代码没错误但单片机毫无反应?
自己写的代码,想实现独立按键按下LED灯亮起,语法都没错误但是单片机毫无反应不知道原因
单片机1602液晶显示屏 也是语法么有错误但是单片机毫无反应

单片机代码.doc

15.5 KB, 下载次数: 11


作者: 可以小帅    时间: 2019-3-13 10:56
#include<reg52.h>
sbit key_5=P3^7;
sbit le=P2^5;
#define uchar unsigned char
void delay(uchar z)
{
        uchar x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void main()
{
        le=1;
        while(1)
        {
     
                if(key_5==0)
                 {
                   delay(5);
                        P0=0xfe;
                        delay(5);
                       
                 }
                else
                P0=0xff;
        }
}
作者: 可以小帅    时间: 2019-3-13 10:57
#include<reg52.h>
#define uchar unsigned char
uchar num;
sbit lcd_rs=P3^5;
sbit lcd_en=P3^4;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]="What Fuck!!";
uchar code table1[]="2019 3 13";
void delay(uchar z)
{
        uchar x,y;
        for(x=z;x<0;x--)
                for(y=110;y<0;y--);
}
void write_com(uchar com)
{
        lcd_rs=0;
        P0=com;
        delay(5);
        lcd_en=1;
        delay(5);
        lcd_en=0;
               
}
void write_data(uchar date)
{
        lcd_rs=0;
        P0=date;
        delay(5);
        lcd_en=1;
        delay(5);
        lcd_en=0;
               
}
void init()
{
        dula=0;
        wela=0;
        lcd_en=0;
        write_com(0x38);
        write_com(0x0f);
        write_com(0x06);
        write_com(0x01);
}
void main()
{
  init();
  write_com(0x80);
  for(num=0;num<11;num++)
  {
  write_data(table[num]);
  }
  write_com(0x80+0x40);
   for(num=0;num<9;num++)
  {
  write_data(table1[num]);
  }

}
作者: lfc315    时间: 2019-3-13 11:24
你的LED接在P2.5,你却操作P0口当然不会亮了
作者: 可以小帅    时间: 2019-3-13 13:33
lfc315 发表于 2019-3-13 11:24
你的LED接在P2.5,你却操作P0口当然不会亮了

你看错了 我是把LED的锁存器的使能端打开了
作者: lilili171    时间: 2019-3-13 13:37
按键引脚连接正确,液晶屏引脚注意正反,LED引脚连接正确,有好多小细节需要多注意,多次调试就能运行正常。玩这个就要多尝试。
作者: llccll    时间: 2019-3-13 15:48
你看一下你的引脚连对了么
作者: lfc315    时间: 2019-3-13 17:06
可以小帅 发表于 2019-3-13 13:33
你看错了 我是把LED的锁存器的使能端打开了

那你得把电路也放上来 不然不知道你是怎么连接的
作者: 7358655    时间: 2019-3-13 19:53
  delay(5);
5毫秒你肉眼看不到变化的,最少50以上你改200试试。
作者: 行走在消逝中1    时间: 2019-4-24 18:50
前面定义了le,在if循环中直接令le为1或为0就行了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1