搜索
bottom↓
回复: 12

lcd1602

[复制链接]

出0入0汤圆

发表于 2009-10-12 09:15:13 | 显示全部楼层 |阅读模式
大家好,我是PSOC的初学者,在用1602的过程中,它不但不显示我所定义的字符,而且只亮第一行,第二行一点反应都没有,希望各位高手能帮小妹解答一下,谢谢了。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2009-10-12 15:58:05 | 显示全部楼层
亮第一行,说明1602应该没有坏。我写的程序很简单,只是想先让1602亮,程序如下:
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules


void main()
{
   BYTE LCD_SOLID_BG;
   LCD_1_Start();
   LCD_1_InitBG(LCD_SOLID_BG);
   LCD_1_DrawBG(0,0,16,72);
   LCD_1_DrawBG(1,3,10,32);
}

出0入0汤圆

 楼主| 发表于 2009-10-12 16:03:42 | 显示全部楼层
还有一个显示程序:
#include <m8c.h>        // part specific constants and macros   
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules   
void main()  
{  
   char theStr[] = "PSoC LCD";   // Define RAM string  
   LCD__1_Start();                  // Initialize LCD
   LCD_1_Delay50uTimes(BYTE 2);
   LCD__1_Position(0,5);            // Place LCD cursor at row 0, col 5.  
   LCD_PrString(theStr);         // Print "PSoC LCD" on the LCD  
}  
这两个程序编译都是正确的,但LCD一点反应都没有,还是接电只亮第一行,而且没有任何显示,我想是不是应该进行初始化,并且重设地址?还望高手指点!

出0入0汤圆

 楼主| 发表于 2009-10-13 10:06:25 | 显示全部楼层
这是我刚加的初始化程序,帮我看看:
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#define LCD_1RS         (1<<P0[5]) //0x04   portD2       out
#define LCD_1E        (1<<P0[4]) //0x08   portD3       out
#define LCD_1DATA       ((1<<P0[0])|(1<<P0[1])|(1<<P0[2])|(1<<P0[3])) //0xf0   portD4/5/6/7 out

unsigned char x=1,y=4;

void _LCD_1_Init(void)         //液晶初始化
{
  LCD_1_Control(0x28);   
  LCD_1_Delay50uTimes(200);
  LCD_1_Delay50uTimes(800);
  LCD_1_Control(0x28);  //4位显示
  LCD_1_Control(0x0c);  //显示开
  LCD_1_Control(0x01);  //清屏
  LCD_1_Delay50uTimes(4000);
}

void _LCD_1_WriteData( unsigned char address )  //写地址函数
{
    unsigned char x,y;
        while(1)
      {if (x == 0) address = 0x80 + y;
       else   address = 0xc0 + y;
       LCD_1_Control(address);
          }
}
   
void main(void)
{
   

   LCD_1_Start();               // Initialize LCD
   LCD_1_Init();
   LCD_1_Delay50uTimes(4000);
   LCD_1_Position(x,y);            // Place LCD cursor at row 0, col 5.  
   LCD_1_PrCString("PSoC LCD");         // Print "PSoC LCD" on the LCD  
   }

出0入0汤圆

 楼主| 发表于 2009-10-13 10:07:27 | 显示全部楼层
编译是成功的,但还是以前的老样子,只亮第一行

出0入0汤圆

 楼主| 发表于 2009-10-16 09:07:28 | 显示全部楼层
谢谢各位的协助,我的LCD搞好了!

出0入0汤圆

 楼主| 发表于 2009-10-20 11:29:14 | 显示全部楼层
我犯了个超低级的错误,把LCD给插错地方了,以前只是纸上谈兵,现刚开始动手,还望各位见谅!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 13:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表