查看: 3789|回复: 9

AVR 1602液晶程序为什么下到我的单片机里就显示不出来呢??

[复制链接]

该用户从未签到

发表于 2012-8-29 14:07:35 | 显示全部楼层 |阅读模式
分享到:

已经迷惑俩天了 求大家帮忙!!!
之前从一个视频教程里面看了下面那个程序 我把RS、RW、E的定义改成我的,然后延时程序我也改了一下 我用的是1M的晶振,这个延时程序大概也就1ms左右, 检查过我的硬件 也没什么问题,真的不知道是哪里出毛病了 求大家帮忙看看


#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int

void delay(uint z)
{
         uint x,y;
         for(x=0;x<z;x++)
            for(y=0;y<159;y++);
}

void write_com(uchar com)
{   
         PORTC&=~BIT(5);
         PORTC&=~BIT(6);
        // PORTC&=~BIT(7);
         PORTA=com;
         PORTC|=BIT(7);
         delay(1);
         PORTC&=~BIT(7);
}
void write_dat(uchar dat)
{
           PORTC|=BIT(5);
         PORTC&=~BIT(6);
        // PORTC&=~BIT(7);
         PORTA=dat;
         PORTC|=BIT(7);
         delay(1);
         PORTC&=~BIT(7);
       
}
void main()
{       
         DDRA=0XFF;
         DDRC|=BIT(5)|BIT(6)|BIT(7);
         PORTC&=~BIT(7);
         write_com(0X38);
         delay(1);
         write_com(0X01);
         delay(1);
        // write_com(0x80);
        // delay(1);
         write_com(0X0F);
     delay(1);
         while(1);
}

回复

使用道具 举报

  • TA的每日心情
    开心
    2017-7-21 12:58
  • 签到天数: 907 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2012-8-29 14:25:01 | 显示全部楼层
    http://wenku.baidu.com/view/a3e565d6360cba1aa811da92.html看看这个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-8-29 14:28:21 | 显示全部楼层
    你什么意思?
    看看这个?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-8-29 14:33:15 | 显示全部楼层
    不用去文库了,这里给你拿来了。@expertss
    AVR_LCD1602_点C程序.pdf (71.73 KB, 下载次数: 14)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-8-29 14:46:13 | 显示全部楼层
    补充一下:在这里PA接的是数据口,PC的5、6、7管脚分别接的RS、RW、E。硬件连接应该都没问题我检查过的,时序也没问题 就是不知道哪错了 唉~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-5-28 19:02
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2012-8-29 22:12:52 | 显示全部楼层
    具体程序就不看了。注意初始程序。实在不行,去抄一份程序下载进去。你程序好像只有初始化啊? 没有writedata写数据没有啊!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-6-12 21:59
  • 签到天数: 647 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-8-30 09:34:31 | 显示全部楼层
    建议楼主把延时稍微给长点,变到10ms试试!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-8-30 14:11:18 | 显示全部楼层
    E08610225 发表于 2012-8-29 22:12
    具体程序就不看了。注意初始程序。实在不行,去抄一份程序下载进去。你程序好像只有初始化啊? 没有writeda ...

    我现在只是想让它光标显示, 从网上找了 好多程序修改后下进去还是不行,。。。。程序应该没啥问题 是不是avr单片机管脚输出电流大 所以不行呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-8-30 14:15:30 | 显示全部楼层
    QQ哥 发表于 2012-8-30 09:34
    建议楼主把延时稍微给长点,变到10ms试试!

    我改过了 10ms 20ms 100ms 500ms都试过了 全都不行啊,奇怪的是如果用51单片机我用示波器测“E”引脚会发现有一个个脉冲一样的电压变化,可是用avr单片机的时候测“E”引脚就没有电平变化,我加上while(1)大循环以后才会有高低电平变化。。。不知道是怎么回事
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-6-12 21:59
  • 签到天数: 647 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2012-8-30 14:40:46 | 显示全部楼层
    本帖最后由 QQ哥 于 2012-8-30 14:43 编辑

    对的,1602资料的写时序图的波形就是可以用示波器观察到的,顺腾摸瓜吧!
    难道是AVR的板子I/O口连接问题,有可能的。。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 01:57 , Processed in 0.195762 second(s), 36 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.