找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3579|回復: 12
收起左側

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

[復制鏈接]
ID:150793 發(fā)表于 2017-4-20 21:23 | 顯示全部樓層 |閱讀模式
atmega 16控制lcd1602 仿真可以,實物電路為什么不行?
回復

使用道具 舉報

ID:82765 發(fā)表于 2017-4-21 10:50 | 顯示全部樓層
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
回復

使用道具 舉報

ID:183740 發(fā)表于 2017-4-21 13:24 | 顯示全部樓層
在仔細檢查,問題可能性很多,比如型號不一致,線路問題,芯片壞的.....細節(jié)決定成敗
回復

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 14:14 | 顯示全部樓層
1300584512 發(fā)表于 2017-4-21 13:24
在仔細檢查,問題可能性很多,比如型號不一致,線路問題,芯片壞的.....細節(jié)決定成敗

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

使用道具 舉報

ID:96682 發(fā)表于 2017-4-21 14:36 | 顯示全部樓層
3029936164 發(fā)表于 2017-4-21 14:14
在程序方面atmega16與51系列單片機有什么不同嗎?

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

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 16:13 | 顯示全部樓層
wc86110 發(fā)表于 2017-4-21 14:36
有差別一個是 AVR,一個是 C51

就是在寫程序?qū)懨畹炔僮魇怯袥]有與51有什么不同的地方
回復

使用道具 舉報

ID:160513 發(fā)表于 2017-4-21 16:18 | 顯示全部樓層
cd1602  不怎么用仿真 不太懂
回復

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 18:08 | 顯示全部樓層

幾個意思?
回復

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 18:10 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-4-21 10:50
發(fā)程序和原理圖,還有實物

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

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 18:12 | 顯示全部樓層
lovexiaodong 發(fā)表于 2017-4-21 16:18
cd1602  不怎么用仿真 不太懂

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

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 21:09 | 顯示全部樓層
cjjcjj1 發(fā)表于 2017-4-21 10:50
發(fā)程序和原理圖,還有實物
  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. }
復制代碼
回復

使用道具 舉報

ID:150793 發(fā)表于 2017-4-21 21:12 | 顯示全部樓層
原理圖
回復

使用道具 舉報

ID:187614 發(fā)表于 2017-4-21 22:00 | 顯示全部樓層
仿真環(huán)境是理想環(huán)境,實物有問題主要是時序問題,根據(jù)技術資料調(diào)整時序
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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