导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→现在能用了,这样对了吧
#include <reg51.h

* 46320: hd44780显示程序,请大家帮忙看一下

   baolqkun 
baolqkun发表的帖子 

 
现在能用了,这样对了吧
#include   <reg51.h>  
#include   <intrins.h>  

sbit rs=P1^5; //指令和数据寄存器//
sbit rw=P1^6; //读写控制//
sbit e=P1^7; //片选//
sbit flag=P0^7;

unsigned char busy(int); //判忙//
void w_dat(unsigned char); //写显示数据子程序//
void w_com(unsigned char); //写指令代码子程序//
void init(void); //初始化子程序//
void disp(unsigned char); //显示//
void wait(unsigned int ); //延时//

void busy()
{   
   while(1)
   {
     P0=0xff;
     rs=0;
     rw=1;
     e=1;
     if(!flag) break;
     e=0;
   }
 }

void wait(unsigned int w)
{ int time;
 for(time=0;time  <w;time++);
 return;
}
void w_dat(unsigned char dat) //写数据//
{busy(  );
 P0=dat;
 rs=1;
  rw=0;
 e=1;
 e=0;
 return;
 }

void w_com(unsigned char com) //写指令//
{busy( );
 P0=com;
 rs=0;
  rw=0;
 e=1;
 e=0;
 }

void init(void) {
 unsigned char i;
 P1=0;
 for (i=0;i  <2;i++) {
  w_com(0x30);
  wait(100);
 }
 w_com(0x38);
 w_com(0x0f);
 w_com(0x18);
 w_com(0x06);
 w_com(0x01);
 w_com(0x80);
}
 main( )
 {
 init( );
 w_com(0x01);
 w_com(0x80);
 w_dat('f');
 w_dat('e');
 w_com(0xc0);
 w_dat('e');
 }

发表时间:2003年12月15日15:25:48

  
回复该帖

本主题共有 7 帖,分页:>>>>>该主题的所有内容[7]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  57234.[详细]劳烦各位高手
摘要:劳烦大家,我不知道HD44780一行显示和两行显示怎么样设置,我怎么用了一种16个字一行的液晶,两行显示没问题,但我改成让它一行显示就不显示了,请教大家了......(145字)
- [guest][992次] 2004年6月28日

  46357.[详细]我的lcd程序,调试通过的#include <global.h>/*rs--..
摘要:我的lcd程序,调试通过的 #include <global.h>  /*rs---------P0.0 经锁存器后   rw---------P0......(942字)
- [guest][987次] 2003年12月16日

[上一篇帖子]:2003年ARM公司年会资料及OKI-ARM在线研讨会各位OKIARMFORUM会员:您们好! /P
[下一篇帖子]:if(busy(flag )==0)    改成b