导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[guest]想请高手看看我的液晶程序是什么问题?总是



No.55346
作者:guest
邮件:guest@guest.com
ID:6
登陆:16560次
文章数:7648篇
最后登陆IP:219.68.9.43
最后登陆:2005/5/20 1:37:44
注册:2003/3/10 16:21:00
财富:35062
发帖时间:2004/5/26 8:59:25
发贴者IP:202.117.14.49
标题:guest:想请高手看看我的液晶程序是什么问题?总是不显示
摘要:No.55346想请高手看看我的液晶程序是什么问题?总是不显示 //***********************************************************
//连线图:LCM-89C51  DB0-P0.0 DB1-P0.1 DB2-P0.2
   //        DB3-P0.3  DB4-P0.4 DB5-P0.5  DB6-P0.6
   //        DB7-P0.7  A0-P2.7  CS1-P2.6 CS2-P2.5 CL-P2.4
  //         RES-P2.3
//程序是2*16字符显示
//*********************************************************** /
#include  <reg51.h>  
#include  <stdio.h>  
#include  <absacc.h>  

#define LCDCOM1 XBYTE[0x2600]//lcd命令寄存器地址A0=0,CS1=0,CS2=1,CL=0,RES=0,P2.2=1;
#define LCDCOM2 XBYTE[0x4600]//lcd命令寄存器地址A0=0,CS1=1,CS2=0,CL=0,RES=0,P2.2=1;
#define LCDDAT1 XBYTE[0xA600]//LCD数据寄存器地址A0=1,CS1=0,CS2=1,CL=0,RES=0,P2.2=1
#define LCDDAT2 XBYTE[0xC600]//LCD数据寄存器地址A0=1,CS1=1,CS2=0,CL=0,RES=0,P2.2=1;
    /*   #define LCDREAD1 XBYTE[0x4000] //读取数据A0=0,CS1=1,CS2=0,CL=0,RES=0
 #define LCDREAD2 XBYTE[0x2000] //读取数据A0=0,CS1=0,CS2=1,CL=0,RES=0 */
        sbit busy_flag=ACC^7;
       sbit lcd_reset=P2^3;
 //    sbit lcd_read=P3^7;
 //    sbit lcd_write=P3^6;
    sbit lcd_cl=P2^4;

        typedef unsigned char uchar;
     //   typedef unsigned int uint;
        uchar code
        lcd_line1[16]={0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00};          //"大"字上半边
        uchar code
        lcd_line2[16]={0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00};        //"大"字下半边
             //延时1*d ms
         void delay(unsigned int d)
         {uchar j;
         while(d--){
         for(j=0;j  <125;j++){;}
         }
         }
          //复位
       void reset(void)
        { lcd_reset=0;
          delay(5);
         lcd_reset=1;
         delay(5);
         lcd_reset=0;
         }
    //时钟产生
void clock(void) interrupt 1
 {
lcd_cl=!lcd_cl;
}
    //time0 产生中断

  //测试lcd1边忙
     void wait_lcd1(void)
     {do {//lcd_read=0;

    ACC=LCDDAT1;}
 while(busy_flag==1);
     }
 //测试lcd2边忙
        void wait_lcd2(void)
         {do {//lcd_read=0;
         ACC=LCDDAT2;}
         while(busy_flag==1);
         }
          //送lcd1边命令字
          void I_SEND1(uchar y)
          {wait_lcd1();
  //        lcd_read=1;lcd_write=0;

          LCDCOM1=y;
          }
//送lcd2边命令字
          void I_SEND2(uchar y)
          {wait_lcd2();
   //       lcd_read=1;lcd_write=0;
          LCDCOM2=y;
          }
          //送lcd1边数据
          void D_SEND1(uchar x)
          {wait_lcd1();
 //         lcd_read=1;lcd_write=0;

          LCDDAT1=x;
          }
//送lcd2边数据
          void D_SEND2(uchar x)
          {wait_lcd2();
       //   lcd_read=1;lcd_write=0;

          LCDDAT2=x;
          }
   //lcd1边初始化
          void start_lcd1()
          {
          delay(5);    //等待2ms的时间或更长时间,使电压稳定
          I_SEND1(0XE2);         //soft reset
          I_SEND1(0xAE);         //关显示
          I_SEND1(0xc0);          //start line
          I_SEND1(0xA4);         //清除显示   static drive off
          I_SEND1(0X ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:28毫秒 最大:5186毫秒 查询6次