9回答

0收藏

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

其他 其他 4357 人阅读 | 9 人回复 | 2012-08-29


已经迷惑俩天了 求大家帮忙!!!
之前从一个视频教程里面看了下面那个程序 我把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);
}

分享到:
回复

使用道具 举报

回答|共 9 个

倒序浏览

沙发

expertss

发表于 2012-8-29 14:25:01 | 只看该作者

http://wenku.baidu.com/view/a3e565d6360cba1aa811da92.html看看这个
板凳

mahongtu

发表于 2012-8-29 14:28:21 | 只看该作者

你什么意思?
看看这个?
地板

玉米地的西瓜

发表于 2012-8-29 14:33:15 | 只看该作者

不用去文库了,这里给你拿来了。@expertss
AVR_LCD1602_点C程序.pdf (71.73 KB, 下载次数: 14)
5#

curious

发表于 2012-8-29 14:46:13 | 只看该作者

补充一下:在这里PA接的是数据口,PC的5、6、7管脚分别接的RS、RW、E。硬件连接应该都没问题我检查过的,时序也没问题 就是不知道哪错了 唉~~
6#

E08610225

发表于 2012-8-29 22:12:52 | 只看该作者

具体程序就不看了。注意初始程序。实在不行,去抄一份程序下载进去。你程序好像只有初始化啊? 没有writedata写数据没有啊!
①人生最重要的三件事:一孝顺;二行善;三学习。
②人欲立业,首要立德。做自己想做的人,一个用心听事、用心做事的人。
③树欲静而风不止,子欲养而亲不待。父母养我育我,他们能够再等多久?
④切记戒骄戒躁。
7#

QQ哥

发表于 2012-8-30 09:34:31 | 只看该作者

建议楼主把延时稍微给长点,变到10ms试试!
我就是QQ哥,QQ哥就是我!
https://www.cirmall.com/bbs/?fromuser=QQ%E5%93%A5
8#

curious

发表于 2012-8-30 14:11:18 | 只看该作者

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

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

curious

发表于 2012-8-30 14:15:30 | 只看该作者

QQ哥 发表于 2012-8-30 09:34
建议楼主把延时稍微给长点,变到10ms试试!

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

QQ哥

发表于 2012-8-30 14:40:46 | 只看该作者

本帖最后由 QQ哥 于 2012-8-30 14:43 编辑

对的,1602资料的写时序图的波形就是可以用示波器观察到的,顺腾摸瓜吧!
难道是AVR的板子I/O口连接问题,有可能的。。
我就是QQ哥,QQ哥就是我!
https://www.cirmall.com/bbs/?fromuser=QQ%E5%93%A5
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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