Writing to HD47780 LCD After 4-bit initialization

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Writing to HD47780 LCD After 4-bit initialization

ソリューションへジャンプ
1,720件の閲覧回数
jonathan_abbati
Contributor III

Hello Friends!

 

I am working with the HD47780 LCD and have come across many examples and codes which state how to initialize the LCD in 4-bit mode. However, I am still having a problem writing to the LCD. I have placed my code below and I would greatly appreciate any help that anyone could offer:

 

#include <hidef.h>      /* common defines And mAcros */
#include "derivative.h"      /* derivAtive-specific definitions */


void outcmd(unsigned char commAnd);
void clear (void);
void output(unsigned char letter);

 


void main(void) {
unsigned int z;

DDRS = 0xFF;
DDRE = 0xFF;
PORTE_BIT4 = 0;
PORTE_BIT7 = 0;


for (z=0;z<=26666;z++);
outcmd(0x30);
for (z=0;z<=5465;z++);
outcmd(0x30);
for (z=0;z<=266;z++);
outcmd(0x30);
for (z=0;z<=266;z++);

PTS = 0x20;
PORTE_BIT4 = 1;
PORTE_BIT4 = 0;
for (z=0;z<=5465;z++);

outcmd(0x20);
for (z=0;z<=5465;z++);


outcmd(0x08);
for (z=0;z<=5465;z++);

clear();

 


outcmd(0x06);
for (z=0;z<=5465;z++);

outcmd(0x0E);
for (z=0;z<=5465;z++);


output ('H');

 

 

 

EnableInterrupts;


  for(;:smileywink: {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* pleAse mAke sure thAt you never leAve mAin */
}


void outcmd(unsigned char command){

  unsigned int z;
  PTS = 0xF0 & command;
  PORTE_BIT4 = 0;
  PORTE_BIT4 = 1;
    PORTE_BIT4 = 0;
  PTS = 0xF0 & (command<<4);
  PORTE_BIT4 = 1; 

  PORTE_BIT4 = 0;
   PORTE_BIT4 = 0;
  for (z=0;z<=5465;z++);
 
}

void clear(void){

  unsigned int z;
  outcmd(0x01);
  for (z=0;z<=5465;z++);
  outcmd(0x02);
  for (z=0;z<=5465;z++);
 
}

void output(unsigned char letter){

  unsigned int z;
  PORTE_BIT4 = 0;
  PORTE_BIT7 = 1;
  PTS = 0xF0 & letter;
  PORTE_BIT4 = 1;
   PORTE_BIT4 = 0;
  PTS = 0xF0 & (letter<<4);
  PORTE_BIT4 = 1;
   PORTE_BIT4 = 0;
  for (z=0;z<=266;z++);
 
}

 

Thank you so very much for your time and any input you could give would be greatly appreciated!

 

Sincerely,

Jonathan

ラベル(1)
0 件の賞賛
返信
1 解決策
1,073件の閲覧回数
jonathan_abbati
Contributor III

This code actually works fine, but the problem was that the debugger has a problem running the code and displaying it. For some reason this is not possible, so if anyone else is having this problem please try closing the debugger and resetting your uC with the code already loaded in.

元の投稿で解決策を見る

0 件の賞賛
返信
1 返信
1,074件の閲覧回数
jonathan_abbati
Contributor III

This code actually works fine, but the problem was that the debugger has a problem running the code and displaying it. For some reason this is not possible, so if anyone else is having this problem please try closing the debugger and resetting your uC with the code already loaded in.

0 件の賞賛
返信