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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2581|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)驅(qū)動(dòng)LCD1602液晶液晶滾動(dòng)顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:361216 發(fā)表于 2018-7-6 14:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)源程序如下:
  1. /********************************************************************************
  2. *  描述:                LCD1602 滾動(dòng)顯示                                       *
  3. * 顯示方式:                                                                   *
  4. * 1、從左到右逐字顯示,閃動(dòng)二次,清屏。                                        *
  5. * 2、再?gòu)挠业阶笾鹱诛@示,閃動(dòng)二次,清屏。                                      *
  6. * 3、周期性地重復(fù)上述顯示方式。                                                *                           
  7. ********************************************************************************/

  8. #include <reg51.h>
  9. #include <intrins.h>

  10. typedef unsigned char BYTE;
  11. typedef bit BOOL;  

  12. sbit LCD_RS = P2^6;            
  13. sbit LCD_RW = P2^5;
  14. sbit LCD_EP = P2^7;

  15. BYTE code dis1[] = {"   WELCOME  TO   "};
  16. BYTE code dis2[] = {" WWW.baidu.COM "};
  17. BYTE code dis3[] = {"   OT  EMOCLEW   "};
  18. BYTE code dis4[] = {" MOC*udiab*WWW "};

  19. delay(int ms)
  20. {                           // 延時(shí)子程序
  21. int i;
  22. while(ms--)
  23. {
  24.   for(i = 0; i< 250; i++)
  25.   {
  26.    _nop_();
  27.    _nop_();
  28.    _nop_();
  29.    _nop_();
  30.   }
  31. }
  32. }

  33. BOOL lcd_bz()
  34. {                          // 測(cè)試LCD忙碌狀態(tài)
  35. BOOL result;
  36. LCD_RS = 0;
  37. LCD_RW = 1;
  38. LCD_EP = 1;
  39. _nop_();
  40. _nop_();
  41. _nop_();
  42. _nop_();
  43. result = (BOOL)(P0 & 0x80);
  44. LCD_EP = 0;
  45. return result;
  46. }

  47. lcd_wcmd(BYTE cmd)
  48. {                          // 寫(xiě)入指令數(shù)據(jù)到LCD
  49. while(lcd_bz());
  50. LCD_RS = 0;
  51. LCD_RW = 0;
  52. LCD_EP = 0;
  53. _nop_();
  54. _nop_();
  55. P0 = cmd;
  56. _nop_();
  57. _nop_();
  58. _nop_();
  59. _nop_();
  60. LCD_EP = 1;
  61. _nop_();
  62. _nop_();
  63. _nop_();
  64. _nop_();
  65. LCD_EP = 0;  
  66. }

  67. lcd_pos(BYTE pos)
  68. {                          //設(shè)定顯示位置
  69. lcd_wcmd(pos | 0x80);
  70. }

  71. lcd_wdat(BYTE dat)
  72. {                          //寫(xiě)入字符顯示數(shù)據(jù)到LCD
  73. while(lcd_bz());
  74. LCD_RS = 1;
  75. LCD_RW = 0;
  76. LCD_EP = 0;
  77. P0 = dat;
  78. _nop_();
  79. _nop_();
  80. _nop_();
  81. _nop_();
  82. LCD_EP = 1;
  83. _nop_();
  84. _nop_();
  85. _nop_();
  86. _nop_();
  87. LCD_EP = 0;
  88. }

  89. lcd_init()
  90. {                        //LCD初始化設(shè)定
  91. lcd_wcmd(0x38);          //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)
  92. delay(1);
  93. lcd_wcmd(0x0c);          //顯示開(kāi),關(guān)光標(biāo)
  94. delay(1);
  95. lcd_wcmd(0x06);          //移動(dòng)光標(biāo)
  96. delay(1);
  97. lcd_wcmd(0x01);          //清除LCD的顯示內(nèi)容
  98. delay(1);
  99. }

  100. main()
  101. {
  102.       BYTE i;
  103.       lcd_init();               // 初始化LCD
  104.       delay(10);

  105.     while(1)              
  106.    {
  107.       lcd_wcmd(0x06);            //向右移動(dòng)光標(biāo)
  108.       lcd_pos(0);                //設(shè)置顯示位置為第一行的第1個(gè)字符
  109.       i = 0;
  110.      while(dis1[ i ] != '\0')
  111.      {                           //顯示字符"WLCOME  TO"
  112.        lcd_wdat(dis1[ i ]);
  113.        i++;
  114.        delay(30);                //控制兩字之間顯示速度
  115.      }
  116.       lcd_pos(0x40);             //設(shè)置顯示位置為第二行第1個(gè)字符
  117.       i = 0;
  118.      while(dis2[ i ] != '\0')
  119.      {
  120.        lcd_wdat(dis2[ i ]);      //顯示字符
  121.        i++;
  122.        delay(30);                //控制兩字之間顯示速度
  123.      }
  124.       delay(800);                //控制停留時(shí)間

  125.       lcd_wcmd(0x01);            //清除LCD的顯示內(nèi)容
  126.       delay(1);
  127.       lcd_wcmd(0x04);            //向左移動(dòng)光標(biāo)

  128.       lcd_pos(15);               //設(shè)置顯示位置為第一行的第16個(gè)字符
  129.       i = 0;
  130.      while(dis3[ i ] != '\0')
  131.      {                           //顯示字符"WLCOME  TO"
  132.        lcd_wdat(dis3[ i ]);
  133.        i++;
  134.        delay(30);                //控制兩字之間顯示速度
  135.      }
  136.       lcd_pos(0x4F);             //設(shè)置顯示位置為第二行的第16個(gè)字符
  137.       i = 0;
  138.      while(dis4[ i ] != '\0')
  139.      {
  140.        lcd_wdat(dis4[ i ]);      //顯示字符" WWW.baidu.COM  "
  141.        i++;
  142.        delay(30);                //控制兩字之間顯示速度
  143.      }
  144.       delay(800);                //控制停留時(shí)間

  145.       lcd_wcmd(0x01);            //清除LCD的顯示內(nèi)容
  146.       delay(200);                //控制兩屏轉(zhuǎn)換時(shí)間

  147.    }
  148. }
復(fù)制代碼

所有資料51hei提供下載:
液晶滾動(dòng)顯示.zip (42.21 KB, 下載次數(shù): 17)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文天堂在线一区 | 爱高潮www亚洲精品 中文字幕免费视频 | 中文字幕在线一区二区三区 | 欧美韩一区二区三区 | 欧美又大粗又爽又黄大片视频 | 99热热| 国产精品久久久久久婷婷天堂 | 久久成人一区二区三区 | 国产日韩电影 | 天堂视频一区 | 中文天堂在线观看 | av在线免费观看网站 | 久久久久久国模大尺度人体 | 激情伊人网 | 一级毛片网| 999国产精品视频免费 | 国产免费视频 | 在线观看中文字幕一区二区 | 久久91 | 日韩精品免费在线观看 | 精品视频一区二区三区 | 男人天堂免费在线 | 9999在线视频 | 日韩有码一区 | 国产成人在线播放 | 中文字幕一级毛片视频 | 国产黄色在线 | 7777在线| 中文字幕人成乱码在线观看 | 国产日韩欧美一区二区 | 日韩超碰在线 | 国产十日韩十欧美 | av中文字幕在线 | 国产精品久久久久久妇女 | 欧美xxxⅹ性欧美大片 | 91麻豆产精品久久久久久夏晴子 | 曰韩三级 | 福利在线看 | 日韩电影免费观看中文字幕 | 欧美一级黄色片 | 国产精品视频一区二区三 |