久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機控制1602 1602亮了 但是不顯示字符

[復制鏈接]
跳轉到指定樓層
樓主
這是程序 keil里面可以運行的 也能生成hex文件 然后放到單片機里 在peoteus里仿真1602沒顯示什么東西


單片機源程序如下:
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit LCD_RS = P1^0;            
  6. sbit LCD_RW = P1^1;
  7. sbit LCD_EN = P1^2;

  8. uchar code dis1[] = {"   WLCOME  TO   "};
  9. uchar code dis2[] = {" WWW*RICHMCU*COM "};
  10. uchar code dis3[] = {"   OT  EMOCLW   "};
  11. uchar code dis4[] = {" MOC*UCMHCIR*WWW "};

  12. void delay(int ms)
  13. {                           
  14.    int i;
  15.    while(ms--)
  16.    {
  17.      for(i = 0; i< 250; i++)
  18.      {
  19.       _nop_();
  20.       _nop_();
  21.       _nop_();
  22.       _nop_();
  23.      }
  24.    }
  25. }

  26. bit lcd_busy()
  27. {                          
  28.     bit result;
  29.     LCD_RS = 0;
  30.     LCD_RW = 1;
  31.     LCD_EN = 1;
  32.     _nop_();
  33.     _nop_();
  34.     _nop_();
  35.     _nop_();
  36.      result = (bit)(P0&0x80);
  37.     LCD_EN = 0;
  38.     return result;
  39. }


  40. void lcd_wcmd(uchar cmd)
  41. {                          
  42.    while(lcd_busy());
  43.     LCD_RS = 0;
  44.     LCD_RW = 0;
  45.     LCD_EN = 0;
  46.     _nop_();
  47.     _nop_();
  48.     P0 = cmd;
  49.     _nop_();
  50.     _nop_();
  51.     _nop_();
  52.     _nop_();
  53.     LCD_EN = 1;
  54.     _nop_();
  55.     _nop_();
  56.     _nop_();
  57.     _nop_();
  58.     LCD_EN = 0;  
  59. }


  60. void lcd_wdat(uchar dat)
  61. {                          
  62.    while(lcd_busy());
  63.     LCD_RS = 1;
  64.     LCD_RW = 0;
  65.     LCD_EN = 0;
  66.     P0 = dat;
  67.     _nop_();
  68.     _nop_();
  69.     _nop_();
  70.     _nop_();
  71.     LCD_EN = 1;
  72.     _nop_();
  73.     _nop_();
  74.     _nop_();
  75.     _nop_();
  76.     LCD_EN = 0;
  77. }


  78. void lcd_pos(uchar pos)
  79. {                          
  80.    lcd_wcmd(pos|0x80);      
  81. }



  82. void lcd_init()
  83. {                        
  84.     lcd_wcmd(0x38);      
  85.     delay(5);
  86.     lcd_wcmd(0x38);         
  87.     delay(5);
  88.     lcd_wcmd(0x38);         
  89.     delay(5);

  90.     lcd_wcmd(0x0c);        
  91.     delay(5);
  92.     lcd_wcmd(0x06);      
  93.     delay(5);
  94.     lcd_wcmd(0x01);         
  95.     delay(5);
  96. }

  97. void flash()
  98. {
  99.       delay(600);                  
  100.       lcd_wcmd(0x08);           
  101.       delay(200);                  
  102.       lcd_wcmd(0x0c);            
  103.       delay(200);                    
  104.       lcd_wcmd(0x08);            
  105.       delay(200);                    
  106.       lcd_wcmd(0x0c);            
  107.       delay(200);
  108. }


  109. main()
  110. {
  111.     uchar i;
  112.     delay(10);
  113.     lcd_init();                        


  114.     while(1)              
  115.    {
  116.       lcd_wcmd(0x06);           
  117.       lcd_pos(0);                  
  118.       i = 0;

  119.      while(dis1[i] != '\0')
  120.      {                                    
  121.        lcd_wdat(dis1[i]);
  122.        i++;
  123.        delay(30);                    
  124.      }

  125.       lcd_pos(0x40);              
  126.       i = 0;

  127.      while(dis2[i] != '\0')
  128.      {
  129.        lcd_wdat(dis2[i]);        
  130.        i++;
  131.        delay(30);                    
  132.      }

  133.       flash();                        
  134.       lcd_wcmd(0x01);           
  135.       delay(200);                  
  136.       lcd_wcmd(0x04);        
  137.       lcd_pos(15);               
  138.       i = 0;

  139.      while(dis3[i] != '\0')
  140.      {                                 
  141.        lcd_wdat(dis3[i]);
  142.        i++;
  143.        delay(30);                  
  144.      }

  145.       lcd_pos(0x4F);              
  146.       i = 0;

  147.      while(dis4[i] != '\0')
  148.      {
  149.        lcd_wdat(dis4[i]);        
  150.        i++;
  151.        delay(30);                  
  152.      }

  153.       flash();                        
  154.       lcd_wcmd(0x01);         
  155.       delay(200);                 

  156.    }
  157. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:520481 發表于 2019-4-28 17:07 | 只看該作者
有沒有大手子幫我看看啊
回復

使用道具 舉報

板凳
ID:213173 發表于 2019-4-28 17:27 | 只看該作者
縱有疾風起12138 發表于 2019-4-28 17:07
有沒有大手子幫我看看啊

仿真圖里的排阻用錯了,P1的電平無法確定。在元件庫里查找 RESPACK-8 排阻。
回復

使用道具 舉報

地板
ID:96682 發表于 2019-4-28 20:06 | 只看該作者
樓主得先弄清楚 J1 是什么器件
回復

使用道具 舉報

5#
ID:520481 發表于 2019-4-29 13:56 | 只看該作者
wulin 發表于 2019-4-28 17:27
仿真圖里的排阻用錯了,P1的電平無法確定。在元件庫里查找 RESPACK-8 排阻。

萬分感謝啊 1602能顯示了
回復

使用道具 舉報

6#
ID:520481 發表于 2019-4-29 13:56 | 只看該作者
wc86110 發表于 2019-4-28 20:06
樓主得先弄清楚 J1 是什么器件

謝謝啊 樓上幫我指正了 排阻弄錯了
回復

使用道具 舉報

7#
ID:226629 發表于 2019-4-29 14:41 | 只看該作者
現在好了就行
回復

使用道具 舉報

8#
ID:524649 發表于 2019-4-29 18:58 | 只看該作者
要用正確的排阻才可以正常顯示呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 超碰人人人| 99视频精品 | 亚洲成av人片在线观看 | 久久福利电影 | 久久免费观看一级毛片 | 久在线| 中文字幕一区二区三区不卡在线 | 99精品久久久久久中文字幕 | 久久精品国产一区 | 欧美一级在线观看 | 一本色道久久综合亚洲精品高清 | 丝袜久久| 久久狠狠 | 欧美综合久久久 | 免费看a | 国产精品久久在线 | 成年人的视频免费观看 | 毛片入口 | h视频在线免费 | 国产一级片精品 | 久久久久国产精品 | 欧美日韩在线一区二区 | 精品视频一区二区三区在线观看 | av天天操 | 成年免费大片黄在线观看岛国 | 亚洲免费视频在线观看 | www.黄色在线观看 | 国产区免费视频 | 欧美11一13sex性hd | 成人欧美一区二区三区 | 男人的天堂视频网站 | 成人国产a | 玖玖精品 | 99色综合 | 久久精品视频在线免费观看 | 国产精品久久久久久久免费观看 | 亚洲一二三区精品 | 一二三四av | 亚洲 欧美 另类 综合 偷拍 | 国内精品久久久久 | 久久久久久中文字幕 |