大神们快来看一下LCD2004A Arduino(Atmega2560R3)程序,怎么就是不显示呢?

2019-03-24 20:18发布

就下面几段程序,LCD2004A只用了高四位,时序和1602一样,延迟时间改了好多变了,怎么就是调不通,电路管脚、电源校验过,郁闷,看到蓝屏就头大,谁有没有源码,参考一下,说实话Arduino用起来真别扭。。。
  1. char LCD7=29;
  2. char LCD6=27;
  3. char LCD5=25;
  4. char LCD4=23;
  5. char LCDE=17;
  6. char LCDRS=16;

  7. void Lcd2004A_WriteCom(char cmd){
  8.   
  9.   char temp=(cmd&0x0f)<<4;
  10.       
  11.   digitalWrite(LCD7,cmd & 0x80);
  12.   digitalWrite(LCD6,cmd & 0x40);
  13.   digitalWrite(LCD5,cmd & 0x20);
  14.   digitalWrite(LCD4,cmd & 0x10);
  15.   
  16.   digitalWrite(LCDE,LOW);
  17.   digitalWrite(LCDRS,LOW);
  18.   delay(1);//1ms
  19.   digitalWrite(LCDE,HIGH);
  20.   delay(20);//20ms
  21.   digitalWrite(LCDE,LOW);
  22.   
  23.   digitalWrite(LCD7,temp & 0x80);
  24.   digitalWrite(LCD6,temp & 0x40);
  25.   digitalWrite(LCD5,temp & 0x20);
  26.   digitalWrite(LCD4,temp & 0x10);
  27.   
  28.   delay(1);
  29.   digitalWrite(LCDE,HIGH);
  30.   delay(20);
  31.   digitalWrite(LCDE,LOW);
  32.   delay(1);
  33. }
  34. void Lcd2004A_WriteDat(char data){
  35.   
  36.   char temp=(data&0x0f)<<4;
  37.   
  38.   digitalWrite(LCD7,data & 0x80);
  39.   digitalWrite(LCD6,data & 0x40);
  40.   digitalWrite(LCD5,data & 0x20);
  41.   digitalWrite(LCD4,data & 0x10);
  42.   
  43.   digitalWrite(LCDE,LOW);
  44.   digitalWrite(LCDRS,HIGH);  
  45.   delay(1);
  46.   digitalWrite(LCDE,HIGH);
  47.   delay(20);
  48.   digitalWrite(LCDE,LOW);

  49.   digitalWrite(LCD7,temp & 0x80);
  50.   digitalWrite(LCD6,temp & 0x40);
  51.   digitalWrite(LCD5,temp & 0x20);
  52.   digitalWrite(LCD4,temp & 0x10);
  53.   
  54.   delay(1);
  55.   digitalWrite(LCDE,HIGH);
  56.   delay(20);
  57.   digitalWrite(LCDE,LOW);
  58.   delay(1);
  59. }

  60. void InitLCD2004(){
  61.   pinMode(LCD7,OUTPUT);
  62.   pinMode(LCD6,OUTPUT);
  63.   pinMode(LCD5,OUTPUT);
  64.   pinMode(LCD4,OUTPUT);
  65.   delay(5);
  66.   Lcd2004A_WriteCom(0x32);
  67.   delay(5);
  68.   Lcd2004A_WriteCom(0x28);
  69.   delay(5);
  70.   Lcd2004A_WriteCom(0x06);
  71.   delay(5);
  72.   Lcd2004A_WriteCom(0x0c);
  73.   delay(5);
  74.   Lcd2004A_WriteCom(0x80);
  75.   delay(5);
  76.   Lcd2004A_WriteCom(0x01);
  77.   delay(5);
  78. }

  79. void setup() {
  80.   delay(5);
  81.   InitLCD2004();
  82.   SetLCD2004_Win(1,0);
  83. }

  84. void loop() {

  85.   Lcd2004A_WriteCom(0x01);
  86.   delay(5);
  87.   Lcd2004A_WriteDat("a");
  88. }
复制代码

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
wugx
1楼-- · 2019-03-25 02:13
没人啊,冒个泡

一周热门 更多>