3154|6

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【PSoC4心得】psoc 驱动1602! [复制链接]

    本来看到坛里有写1602,想换个其他的,但暂时没找到可用的外设,就只好先用这个1602折腾着,顺便发发自己的心得    PSOC使用的确是比较方便,不过刚拿到板准备玩时确发生了一些小问题,发现我的电脑安装驱动后出现的串口是一个问号,重装驱动,下载软件,搞了半天也没有搞定,后来无意中看到有人提到可能是系统问题,从网上下载了个DLL文件,放到系统目录下,终于搞定,所以如果使用GHOST 装机的要注意了,有可能发生这样的问题。  
     言归正传,以前玩过  Arduino  ,刚好手头有个Arduio上使用的1602,又看到PSOC开发板支持Arduino,就打算利用起来,先在TopDesign中将要是用的资源拖进来   
使用资源包含:   
Control Reg   
Digital Output Pin(LED ,RS ,E,D4,D5,D6,D7)lcd_rs,lcd_e,LED1
选择相同配置,如下图,记住不用选择HW Connection ,否则会报错还需要配置1602使用的数据端口,其他配置不变,但需要选中HW Connection,为了看起来好看一点,在Maping选项卡中选择Display as bus。接下来需要配置Control Reg ,选择为4路,其他不变。接下来就要写程序了,从网上找个1602 四线驱动的程序稍作修改,就可以直接使用,对于操作数据端口,就直接当成一个整体赋值,
//1602.c/* ======================================== * * Copyright YOUR COMPANY, THE YEAR * All Rights Reserved * UNPUBLISHED, LICENSED SOFTWARE. * * CONFIDENTIAL AND PROPRIETARY INFORMATION * WHICH IS THE PROPERTY OF your company. * * ========================================*
///  rs 8//  e  9//  4 -5 -6 -7//**  10 blacklight ctl
 #include <device.h>
void     lcd_en(void)
{        
          lcd_e_Write(0x01);        
          CyDelayUs(10);       
          lcd_e_Write(0x0);
}
void    lcd_cmd(unsigned char cmd)
{        
          CyDelayUs(40);       
          lcd_rs_Write(0);               
         LCD_DATA_Write(0);        
         LCD_DATA_Write(cmd>>4);       
         lcd_en();                
         LCD_DATA_Write(0);        
         LCD_DATA_Write(cmd);       
         lcd_en();
}
void    lcd_dat(unsigned char dat)
{       
         CyDelayUs(40); 
         lcd_rs_Write(1); 
         LCD_DATA_Write(0); 
         LCD_DATA_Write(dat>>4);  
         lcd_en();     
        LCD_DATA_Write(0);    
        LCD_DATA_Write(dat);   
        lcd_en();}
void lcd_clr(void)
{       
      lcd_cmd(0x01);       
      CyDelayUs(1700);
}
void lcd_pos (unsigned char x, unsigned char y)
{        
      if(y)   lcd_cmd(x | 0xc0); 
      else    lcd_cmd(x | 0x80);
}
void lcd_printc (unsigned char x, unsigned char y, unsigned char c)
{       
        lcd_pos(x, y);
        CyDelayUs(1000); 
        lcd_dat(c);  
        CyDelayUs(1000);
}/*--------------------------------------------------------------*/
void lcd_prints (unsigned char x, unsigned char y, unsigned char *s)
{        
       lcd_pos(x, y);        
       while(*s)        
      {               
       lcd_dat(*s);                
       s++;        
       }
}
void          Init_LCD(void)
{        
                lcd_cmd(0x28);     
                lcd_en();        
               lcd_cmd(0x28);                       
               lcd_cmd(0x0c);                       
               lcd_cmd(0x01);                         
               CyDelayUs(1700);                      
 }/* [] END OF FILE *..
//main.c
#include
extern void          Init_LCD(void);
extern void lcd_prints (unsigned char x, unsigned char y, unsigned char *s);
void main()

   /* Place your initialization/startup code here (e.g. MyInst_Start()) */        
  Init_LCD();   
 lcd_prints(0,0,"hello eeworld");    /* CyGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */    
   for(;;)    
  {     
   CyDelay(1000);     
   LED1_Write(1);       
   CyDelay(1000);       
   LED1_Write(0);                /* Place your application code here. */    
   }
}驱动显示 效果
[ 本帖最后由 penny2799 于 2013-11-12 23:56 编辑 ]

TopDesign.JPG (21.12 KB, 下载次数: 1)

TopDesign.JPG

ledconfig.JPG (64.05 KB, 下载次数: 0)

ledconfig.JPG

YP20131112232008847.jpeg (1.91 MB, 下载次数: 3)

YP20131112232008847.jpeg
此帖出自单片机论坛

最新回复

刚开始玩板子,也准备接个1602的显示信息,谢谢楼主分享~~~  详情 回复 发表于 2013-11-14 23:37
点赞 关注
 

回复
举报

11

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
不好意思,写好之后,一发帖,字就挤在一起了,编辑后图片到附件里面去了
此帖出自单片机论坛

点评

在要放置图片的位置,点击一下图片,图片就插入到相应位置了,楼主可以试试 呵呵 hello EEWORLD 赞  :)  详情 回复 发表于 2013-11-13 09:51
 
 

回复

1453

帖子

18

TA的资源

纯净的硅(高级)

板凳
 
楼主也可以试一下现成的“LCD驱动”模块,也很方便;
当然,用楼主的方法,引脚分配更灵活。
另外,有什么Arduino外设,多玩些,我们也见识一下。
此帖出自单片机论坛

点评

还有个以太网的,不过现在只有晚上学习,PSOC很多地方还没学到。  详情 回复 发表于 2013-11-13 11:20
 
个人签名http://weibo.com/u/1391449055
 
 

回复

2万

帖子

71

TA的资源

管理员

4
 
原帖由 penny2799 于 2013-11-12 23:52 发表
不好意思,写好之后,一发帖,字就挤在一起了,编辑后图片到附件里面去了
在要放置图片的位置,点击一下图片,图片就插入到相应位置了,楼主可以试试

呵呵  hello EEWORLD 赞  
此帖出自单片机论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身

点评

预览正常,发的时候就变了,下次发帖会注意:)  详情 回复 发表于 2013-11-13 11:29
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

5
 

回复 板凳sacq 的帖子

还有个以太网的,不过现在只有晚上学习,PSOC很多地方还没学到。
此帖出自单片机论坛
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 4楼soso 的帖子

预览正常,发的时候就变了,下次发帖会注意
此帖出自单片机论坛
 
 
 

回复

135

帖子

0

TA的资源

纯净的硅(初级)

7
 
刚开始玩板子,也准备接个1602的显示信息,谢谢楼主分享~~~
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表