找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2637|回复: 12
打印 上一主题 下一主题
收起左侧

atmega 16控制lcd1602 仿真可以,实物电路为什么不行?

[复制链接]
跳转到指定楼层
楼主
ID:150793 发表于 2017-4-20 21:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
atmega 16控制lcd1602 仿真可以,实物电路为什么不行?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:82765 发表于 2017-4-21 10:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:183740 发表于 2017-4-21 13:24 | 只看该作者
在仔细检查,问题可能性很多,比如型号不一致,线路问题,芯片坏的.....细节决定成败
回复

使用道具 举报

地板
ID:150793 发表于 2017-4-21 14:14 | 只看该作者
1300584512 发表于 2017-4-21 13:24
在仔细检查,问题可能性很多,比如型号不一致,线路问题,芯片坏的.....细节决定成败

在程序方面atmega16与51系列单片机有什么不同吗?
回复

使用道具 举报

5#
ID:96682 发表于 2017-4-21 14:36 | 只看该作者
3029936164 发表于 2017-4-21 14:14
在程序方面atmega16与51系列单片机有什么不同吗?

有差别一个是 AVR,一个是 C51
回复

使用道具 举报

6#
ID:150793 发表于 2017-4-21 16:13 | 只看该作者
wc86110 发表于 2017-4-21 14:36
有差别一个是 AVR,一个是 C51

就是在写程序写命令等操作是有没有与51有什么不同的地方
回复

使用道具 举报

7#
ID:160513 发表于 2017-4-21 16:18 | 只看该作者
cd1602  不怎么用仿真 不太懂
回复

使用道具 举报

8#
ID:150793 发表于 2017-4-21 18:08 | 只看该作者

几个意思?
回复

使用道具 举报

9#
ID:150793 发表于 2017-4-21 18:10 | 只看该作者
cjjcjj1 发表于 2017-4-21 10:50
发程序和原理图,还有实物

我的程序太乱了,你可能看起来比较费劲,大神可有那种仿真通过、实物可调出来的,分享一下?O(∩_∩)O谢谢
回复

使用道具 举报

10#
ID:150793 发表于 2017-4-21 18:12 | 只看该作者
lovexiaodong 发表于 2017-4-21 16:18
cd1602  不怎么用仿真 不太懂

大神有程序吗?分享学习一下
回复

使用道具 举报

11#
ID:150793 发表于 2017-4-21 21:09 | 只看该作者
cjjcjj1 发表于 2017-4-21 10:50
发程序和原理图,还有实物
  1. #include <iom16v.h>
  2. #include <macros.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define lcd_RS_1 PORTD|=BIT(PD0)
  6. #define lcd_RS_0 PORTD&=~BIT(PD0)
  7. #define lcd_RW_1 PORTD|=BIT(PD1)
  8. #define lcd_RW_0 PORTD&=~BIT(PD1)
  9. #define lcd_EN_1 PORTD|=BIT(PD2)
  10. #define lcd_EN_0 PORTD&=~BIT(PD2)

  11. char  table1[]= {"  Good morning "};
  12. char  table2[]= {"   wodediana! "};

  13. void delay(int x)
  14. {
  15.     int i;
  16.     while(x--)
  17.     {
  18.         for(i=0; i<1140; i++);

  19.     }
  20. }

  21. void writedata(char dat)
  22. {
  23.        
  24.         DDRD|=0x01;
  25.         lcd_RS_1;
  26.         DDRD|=0x02;
  27.         lcd_RW_0;
  28.         DDRC=0xff;
  29.         PORTC=dat;
  30.         delay(5);
  31.        
  32.         DDRD|=0x04;
  33.         lcd_EN_1;
  34.         delay(1);
  35.         DDRD|=0x04;
  36.         lcd_EN_0;
  37. }

  38. void writecommand(char com)
  39. {
  40.    
  41.        
  42.     DDRD|=0x01;
  43.         lcd_RS_0;
  44.         DDRD|=0x02;
  45.         lcd_RW_0;
  46.         DDRC=0xff;
  47.         PORTC=com;
  48.         delay(5);
  49.        
  50.         DDRD|=0x04;
  51.         lcd_EN_1;
  52.         delay(1);
  53.         DDRD|=0x04;
  54.         lcd_EN_0;
  55.        
  56. }

  57. void init()
  58. {   
  59.     DDRD|=0x04;
  60.     lcd_EN_0;
  61.     writecommand(0x38);           
  62.     writecommand(0x0c);           
  63.     writecommand(0x06);           
  64.     writecommand(0x01);         
  65. }

  66. void main(void)
  67. {
  68.     int j;
  69.     init();
  70.         DDRD=0xff;
  71.         DDRC=0xff;
  72.     while(1)
  73.     {
  74.         j=0;
  75.         while(table1[j]!='\0')
  76.         {

  77.             writedata(table1[j]);
  78.             j++;
  79.             delay(10);
  80.         }
  81.         j=0;
  82.         writecommand(0x80+0x40);
  83.         while(table2[j]!='\0')
  84.         {
  85.             writedata(table2[j]);
  86.             j++;
  87.             delay(10);
  88.         }
  89.         writecommand(0x01);
  90.         delay(100);
  91.     }
  92. }
复制代码
回复

使用道具 举报

12#
ID:150793 发表于 2017-4-21 21:12 | 只看该作者
原理图
回复

使用道具 举报

13#
ID:187614 发表于 2017-4-21 22:00 | 只看该作者
仿真环境是理想环境,实物有问题主要是时序问题,根据技术资料调整时序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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