查看: 5962|回复: 7

为你的pcDuino开发板安装一块LCD扩展模块

[复制链接]
  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-14 11:06:32 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 xinxincaijq 于 2013-3-14 11:19 编辑

    我们从LinkSprite买了一块16×2 LCD扩展板,并为pcDuino安装上 。你只需要花半个小时进行Arduino代码转码,转码完成后我们就可以在16×2 LCD屏幕上显示文本啦。

    16-x-2-LCD-Shield-on-pcDuino-500x496.jpg

    代码如下:

    #include <core.h>

    #define RS 8

    #define EN 9

    #define backlight 10

    #define RS_L digitalWrite(RS,LOW)

    #define RS_H digitalWrite(RS,HIGH)

    #define EN_L digitalWrite(EN,LOW)

    #define EN_H digitalWrite(EN,HIGH)

    int DB[] = {7,6,5,4};

    /********************************************************************/

    void write_command(int command)

    {

    int i,temp;

    RS_L;

    EN_L;

    temp=command & 0xf0;

    for (i=0; i < 4; i++)

    {

    if(temp&0×80)

    digitalWrite(DB,HIGH);

    else digitalWrite(DB,LOW);

    temp <<= 1;

    }

    EN_H;

    delayMicroseconds(1);

    EN_L;

    temp=(command & 0x0f)<<4;

    for (i=0; i < 4; i++)

    {

    if(temp&0×80)

    digitalWrite(DB,HIGH);

    else digitalWrite(DB,LOW);

    temp <<= 1;

    }

    EN_H;

    delayMicroseconds(1);

    EN_L;

    }

    /********************************************************************/

    void write_data(int dat)

    {

    int i=0,temp;

    RS_H;

    EN_L;

    temp=dat & 0xf0;

    for (i=0; i < 4; i++)

    {

    if(temp&0×80)

    digitalWrite(DB,HIGH);

    else digitalWrite(DB,LOW);

    temp <<= 1;

    }

    EN_H;

    delayMicroseconds(1);

    EN_L;

    temp=(dat & 0x0f)<<4;

    for (i=0; i < 4; i++)

    {

    if(temp&0×80)

    digitalWrite(DB,HIGH);

    else digitalWrite(DB,LOW);

    temp <<= 1;

    }

    EN_H;

    delayMicroseconds(1);

    EN_L;

    }

    /********************************************************************/

    void LCD_write_char( int x,int y,int dat)

    {

    int address;

    if (x ==0) address = 0×80 + y;

    else address = 0xC0 + y;

    write_command(address);

    write_data(dat);

    delayMicroseconds(10);

    }

    /********************************************************************/

    void lcd1602_init()

    {

    int i = 0;

    pinMode(RS,OUTPUT);

    pinMode(EN,OUTPUT);

    pinMode(backlight,OUTPUT);

    digitalWrite(backlight,HIGH);

    for (i=0; i < 4; i++)

    {

    pinMode(DB,OUTPUT);

    }

    delay(100);

    write_command(0×28);

    delay(50);

    write_command(0×06);

    delay(50);

    write_command(0x0c);

    delay(50);

    write_command(0×80);

    delay(50);

    write_command(0×01);

    delay(100);

    }

    /********************************************************************/

    void setup (void)

    {

    lcd1602_init();

    }

    /********************************************************************/

    void loop (void)

    {

    write_command(0×02);

    delay(10);

    LCD_write_char(0,2,’W');

    LCD_write_char(0,3,’e');

    LCD_write_char(0,4,’l');

    LCD_write_char(0,5,’c');

    LCD_write_char(0,6,’o');

    LCD_write_char(0,7,’m');

    LCD_write_char(0,8,’e');

    LCD_write_char(0,10,’t');

    LCD_write_char(0,11,’o');

    LCD_write_char(1,4,’p');

    LCD_write_char(1,5,’c');

    LCD_write_char(1,6,’D');

    LCD_write_char(1,7,’u');

    LCD_write_char(1,8,’i');

    LCD_write_char(1,9,’n');

    LCD_write_char(1,10,’o');

    while(1);

    }




    爱板商城购买链接:
    猛戳 https://www.cirmall.com/shop/?c=products&a=view&id=221

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2013-9-2 09:06
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2013-3-14 11:36:18 | 显示全部楼层
    详细代码都有,太强了  LZ
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-29 20:40
  • 签到天数: 1341 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-3-15 19:22:11 | 显示全部楼层
    代码转换是什么意思呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-3-19 13:36:42 | 显示全部楼层
    碉堡了,这专业性真强
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-30 11:39
  • 签到天数: 359 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-6-7 09:41:04 | 显示全部楼层
    不知道您说的代码转换什么意思 可否详细解释一下呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

     楼主| 发表于 2013-6-7 10:14:02 | 显示全部楼层
    litiejun 发表于 2013-6-7 09:41
    不知道您说的代码转换什么意思 可否详细解释一下呢

    这个问题可以找版主@pcduino 进行咨询!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-6-13 22:49:00 | 显示全部楼层
    我买了!GY-80 想放飞pcDuino 等芯片到了拜托版主也给我代码转换一下!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2013-6-3 09:22
  • 签到天数: 29 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-6-14 09:30:26 | 显示全部楼层
    jiabin 发表于 2013-6-13 22:49
    我买了!GY-80 想放飞pcDuino 等芯片到了拜托版主也给我代码转换一下!

    我就是想说欣欣哪里搞的“代码转换”,这里不是一个功能,翻译有问题。。。这里就是移植嘛
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 16:37 , Processed in 0.188536 second(s), 30 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.