欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3702|回復: 12
打印 上一主題 下一主題
收起左側

atmega 16控制lcd1602 仿真可以,實物電路為什么不行?

[復制鏈接]
跳轉到指定樓層
樓主
ID:150793 發表于 2017-4-20 21:23 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
atmega 16控制lcd1602 仿真可以,實物電路為什么不行?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

14#
ID:187614 發表于 2017-4-21 22:00 | 只看該作者
仿真環境是理想環境,實物有問題主要是時序問題,根據技術資料調整時序
回復

使用道具 舉報

13#
ID:150793 發表于 2017-4-21 21:12 | 只看該作者
原理圖
回復

使用道具 舉報

12#
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. }
復制代碼
回復

使用道具 舉報

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

大神有程序嗎?分享學習一下
回復

使用道具 舉報

10#
ID:150793 發表于 2017-4-21 18:10 | 只看該作者
cjjcjj1 發表于 2017-4-21 10:50
發程序和原理圖,還有實物

我的程序太亂了,你可能看起來比較費勁,大神可有那種仿真通過、實物可調出來的,分享一下?O(∩_∩)O謝謝
回復

使用道具 舉報

9#
ID:150793 發表于 2017-4-21 18:08 | 只看該作者

幾個意思?
回復

使用道具 舉報

8#
ID:160513 發表于 2017-4-21 16:18 | 只看該作者
cd1602  不怎么用仿真 不太懂
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
6#
ID:150793 發表于 2017-4-21 16:13 | 只看該作者
wc86110 發表于 2017-4-21 14:36
有差別一個是 AVR,一個是 C51

就是在寫程序寫命令等操作是有沒有與51有什么不同的地方
回復

使用道具 舉報

5#
ID:96682 發表于 2017-4-21 14:36 | 只看該作者
3029936164 發表于 2017-4-21 14:14
在程序方面atmega16與51系列單片機有什么不同嗎?

有差別一個是 AVR,一個是 C51
回復

使用道具 舉報

地板
ID:150793 發表于 2017-4-21 14:14 | 只看該作者
1300584512 發表于 2017-4-21 13:24
在仔細檢查,問題可能性很多,比如型號不一致,線路問題,芯片壞的.....細節決定成敗

在程序方面atmega16與51系列單片機有什么不同嗎?
回復

使用道具 舉報

板凳
ID:183740 發表于 2017-4-21 13:24 | 只看該作者
在仔細檢查,問題可能性很多,比如型號不一致,線路問題,芯片壞的.....細節決定成敗
回復

使用道具 舉報

沙發
ID:82765 發表于 2017-4-21 10:50 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表