打印

STM32F103RBT6 接LCD12864的配置

[复制链接]
2094|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chujidashi|  楼主 | 2013-9-26 13:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LCD控制器为ST7920,8位并行方式
硬件连接:
PC0-PC7:LCD_D0-D7  8位数据线  
PC8:    LCD_RS          并行数据选择信号         
PC9:    LCD_R/W        读写选择信号                     
PC10:   LCD_EN         使能信号      
其它:    LCD_PSB  并行选择,硬件接高电平         
          LCD_/RST 复位信号,硬件接地
上述硬件连接是否有问题?

软件配置:
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |GPIO_Pin_3 |   \
                                                  GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 |GPIO_Pin_7 |   \
                                                  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 ;            
      因数据端和控制命令端口都用C口,在分别执行数据写入 GPIO_RWite(GPIOC,data)  和指令写入 GPIO_RWite(GPIOC,Command) 时,程序能否自动分辨数据口和指令口?
   请大侠们指教。
沙发
craaazyfor| | 2013-9-26 14:08 | 只看该作者
发送数据还是命令是通过RS管脚来控制的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
chujidashi + 1 赞一个!
板凳
chujidashi|  楼主 | 2013-9-27 14:16 | 只看该作者
2楼大侠:
下面的模块应该没有问题吧
/**  数据写入 **/
void Write_Data(u8 Data)
         {
         u16 data=0x0;
         delay_ms(100);
         GPIO_ResetBits(GPIOC,GPIO_RW);        // LCD_R/W = 0 写入
     GPIO_SetBits(GPIOC,GPIO_RS);        // LCD_RS = 1  数据选择
     data =data|Data ;
         GPIO_Write(GPIOC,data);                // 写入数据
     delay_ms(5);
         GPIO_SetBits(GPIOC,GPIO_EN);        // 打开使能
     delay_ms(5);
         GPIO_ResetBits(GPIOC,GPIO_EN);        // 关闭使能
     }

/**  指令写入 **/
void Write_Command(u8 Cmd)
        {
        u16 temp=0x0,Command;
        delay_ms(100);
        GPIO_ResetBits(GPIOC,GPIO_RW);        // LCD_R/W = 0 写入
    GPIO_ResetBits(GPIOC,GPIO_RS);        // LCD_RS = 0  命令选择
    Command = temp | Cmd;
        GPIO_Write(GPIOC,Command);        // 写入指令
    delay_ms(5);
        GPIO_SetBits(GPIOC,GPIO_EN);        // 打开使能
    delay_ms(5);
       GPIO_ResetBits(GPIOC,GPIO_EN);        // 关闭使能
    }

使用特权

评论回复
地板
craaazyfor| | 2013-9-27 15:03 | 只看该作者
没发现问题,但程序严重可以优化,而且忙等待换成忙检测会比较好

使用特权

评论回复
5
chujidashi|  楼主 | 2013-9-29 10:47 | 只看该作者
多谢craaazyfor大侠,我正在设计板子,如果各部分的连接没有问题,就可以制作板子了。
待板子制作完开始调试程序时,还会遇到问题需要请教。

使用特权

评论回复
6
lzbf| | 2013-9-29 21:39 | 只看该作者
LCD_RS  操作的。

使用特权

评论回复
7
lzbf| | 2013-9-29 21:39 | 只看该作者
好像是RS为高是命令 rs为低是数据的。

使用特权

评论回复
8
gaochy1126| | 2013-9-29 21:44 | 只看该作者
楼主没有看12864的手册么?

使用特权

评论回复
9
gaochy1126| | 2013-9-29 21:44 | 只看该作者
或者去参考一下例程修改的

使用特权

评论回复
10
gaochy1126| | 2013-9-29 21:45 | 只看该作者
我就是使用51单片机移植的TFT的彩屏的。

使用特权

评论回复
11
chujidashi|  楼主 | 2013-9-30 10:07 | 只看该作者
仔细看了LCD12864的8位并行时序图,没错。
写入指令时,RS=0;写入数据时,RS=1。

使用特权

评论回复
12
shenpingbing| | 2013-9-30 10:35 | 只看该作者
其实仔细看看datasheet就很容易解决了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

0

粉丝