搜索
bottom↓
回复: 14

各位大哥哥,大姐姐我刚买了一块12864液晶,是(st7920芯片的),我用mega16 驱动了一个星期。

[复制链接]

出0入0汤圆

发表于 2011-3-13 14:58:34 | 显示全部楼层 |阅读模式
各位大哥哥,大姐姐我刚买了一块12864液晶,是(st7920芯片的),我用mega16 驱动了一个星期。就是不显示,希望各位给一个驱动程序。外围器件是怎么接的呀!希望各位路过的神仙,帮帮忙

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

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2011-3-13 15:12:05 | 显示全部楼层
姐姐,本坛很多的,搜一搜吧
http://www.ourdev.cn/bbs/bbs_list.jsp?search_text=st7920&search_mode=1&bbs_id=9999&Submit2=+%CB%D1+%CB%F7+
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=498829&bbs_page_no=1&search_mode=1&search_text=st7920&bbs_id=9999

出0入0汤圆

发表于 2011-3-13 16:24:50 | 显示全部楼层
给你参考下吧,自己写的,已经通过
-----------------------------------------------------------------------------------------------------------------------

//接线方式:(ST7920)
//LCD_RS ----->PB2
//LCD_WR ----->PB1
//LCD_EN ----->PB0
//LCD_PSB----->VCC(默认输出1并口)
//LCD_RST----->VCC(默认输出1置位)
//LCD_DB ----->PA

//定义MCU与LCD接口
#define LCD_CR        PORTB             //LCD控制位端口
#define LCD_DB        PORTA             //LCD数据位端口
#define LCD_DD        DDRA              //LCD数据位方向
#define LCD_DI        PINA              //BF输入方向
#define LCD_BUSY      BIT(7)            //BF状态位
#define KEY_CH        PINC              //8位单按键

#define LCD_RS_H()    LCD_CR|= BIT(2)   //LCD写数据
#define LCD_RS_L()    LCD_CR&=~BIT(2)   //LCD写指令
#define LCD_RW_H()    LCD_CR|= BIT(1)   //LCD写操作
#define LCD_RW_L()    LCD_CR&=~BIFLCD_EN ----->PB0
//LCD_PSB----->VCC(默认输出1并口)
//LCD_RST----->VCC(默认输出1置位)
//LCD_DB ----->PA

//定义MCU与LCD接口
#define LCD_CR        PORTB             //LCD控制位端口
#define LCD_DB        PORTA             //LCD数据位端口
#define LCD_DD        DDRA              //LCD数据位方向
#define LCD_DI        PINA              //BF输入方向
#define LCD_BUSY      BIT(7)            //BF状态位
#define KEY_CH        PINC              //8位单按键

#define LCD_RS_H()    LCD_CR|= BIT(2)   //LCD写数据
#define LCD_RS_L()    LCD_CR&=~BIT(2)   //LCD写指令
#define LCD_RW_H()    LCD_CR|= BIT(1)   //LCD写操作
#define LCD_RW_L()    LCD_CR&=~BIT(1)   //LCD读操作
#define LCD_EN_H()    LCD_CR|= BIT(0)   //LCD使能关闭
#define LCD_EN_L()    LCD_CR&=~BIT(0)   //LCD使能开启

//*****************************************************************LCD显示函数段
void lcd_init()//LCD初始化
{
        delay_ms(1);
        lcd_write(0,0X01);//清屏
        lcd_write(0,0X0C);//开显示关游标(0X0F开游标)
        lcd_write(0,0X80);//显示光标移动设置
}

void lcd_write(unsigned char cord,unsigned char data)//LCD写操作
{
        lcd_check_busy();
       
        LCD_EN_L();//使能开启
       
        if(!cord)
                LCD_RS_L();//0写指令
        else
                LCD_RS_H();//1写数据
       
        LCD_RW_L();//写操作
        LCD_DB=data;//传送数据
        LCD_EN_H();  //使能关闭
        delay_ms(1);
        LCD_EN_L(); //使能开启
}

void lcd_check_busy()//LCD查忙
{
    LCD_DD&=~LCD_BUSY;//配置DB7对应口的方向为输入
        LCD_RS_L();//写指令
        delay_ms(1);
        LCD_RW_H();//读操作
       
        LCD_EN_H();//使能关闭
        while(!(LCD_DI&LCD_BUSY))//检查DB7判断忙否
        LCD_EN_L();//使能开启
       
        LCD_DD|=0XFF;
}

void lcd_set_grid(unsigned char x,unsigned char y)//为写内置字符选择地址8*4
{
    unsigned char addr;
       
        switch(y)
        {
            case 0:addr=0X80+x;break;//第1行
                case 1:addr=0X90+x;break;//第2行
                case 2:addr=0X

出0入0汤圆

发表于 2011-3-13 16:29:13 | 显示全部楼层
你的图纸呢?发上来也好帮你看看啊,

出0入0汤圆

发表于 2011-3-13 16:30:16 | 显示全部楼层
看这个!!!点击此处下载 ourdev_622204G29ZHW.rar(文件大小:4.41M) (原文件名:12864液晶.rar)

出0入0汤圆

发表于 2011-3-13 16:47:03 | 显示全部楼层
st7920还是很好编写驱动的,先用并行模式操作一下,并行模式对时序要求相对串行模式低的多,更容易些。并行模式调试成功后再改成串行模式的。另外注意两点,一是字符灰度可变电阻的调整,二是参照模块说明中串、并行驱动短接焊点的设置。

出0入22汤圆

发表于 2011-3-13 17:37:07 | 显示全部楼层
如果是还是没驱动起来,请怀疑你的硬件有问题。
曾经我买过2块ST7920的12864,结果就是液晶问题,导致耽误了3天时间。

出0入0汤圆

发表于 2011-3-13 17:52:53 | 显示全部楼层
我买到过并行没法驱动起来的7920,建议试试串行的

出0入0汤圆

发表于 2011-3-13 18:33:17 | 显示全部楼层
回复【7楼】qingqng
-----------------------------------------------------------------------

严重同意,我那个屏的串并选择端始终为低电平,只能串行了

出0入0汤圆

发表于 2011-3-13 18:34:46 | 显示全部楼层
回复【楼主位】tepaiyuan
各位大哥哥,大姐姐我刚买了一块12864液晶,是(st7920芯片的),我用mega16 驱动了一个星期。就是不显示,希望各位给一个驱动程序。外围器件是怎么接的呀!希望各位路过的神仙,帮帮忙
-----------------------------------------------------------------------

你买屏的时候人家给你程序了吧?先用人家的程序试试?

出0入0汤圆

发表于 2011-3-13 19:29:26 | 显示全部楼层
有些液晶背面的PCB上要改跳点选择通讯方式的,估计你的驱动方式没搞对

出0入0汤圆

发表于 2011-3-13 20:43:03 | 显示全部楼层
我04年的时候买的2块7920的屏,点了一年也没点亮,后来还是看了芯片资料才发现板上有4个电容没有焊.

出0入0汤圆

发表于 2011-3-13 22:11:45 | 显示全部楼层
5年前开始学51做实验到现在产品量产一直用的  成都飞宇达 12864 0402B 带字库的ST7920 没发现驱动不起来

出0入0汤圆

 楼主| 发表于 2011-3-14 18:19:18 | 显示全部楼层
真是谢谢各位大哥哥,大姐姐啦!小妹感激不尽,昨晚驱动出来啦!大家说的都有道理,我先把硬件检查了一下,没问题,后来是程序出错啦!

出0入0汤圆

发表于 2011-3-21 19:56:09 | 显示全部楼层
哈哈 我把这个也挖出来
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 22:08

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

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