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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機LCD1602在兩行顯示字符A和OK實驗 Proteus仿真加源程序

[復制鏈接]
跳轉到指定樓層
樓主
51單片機驅動LCD1602液晶屏在兩行顯示字符A和OK實驗的仿真原理圖(proteus工程文件可到本帖附件下載):



單片機源程序:
  1. //-----------------------------------------------------------------------------------
  2. //程序名:  LCD8-2.c
  3. //程序功能:LCD在兩行顯示字符A和OK
  4. //-------------------------------------------------------------------------------------
  5. #include <reg51.h>   
  6. sbit RS=P2^5;                                   // 引腳定義  
  7. sbit RW=P2^6;                                                           
  8. sbit EN=P2^7;      
  9. sbit busy=P0^7;                                 // "忙"標志位      
  10. #define LCD P0                                  //命令或數據線
  11. //字符串表
  12. unsigned char code str2[]={" OK "};  

  13. //---------------------------------- 判斷液晶顯示器是否忙函數 ----------------------------

  14. CHECK_BF()                                      //判斷是否忙碌
  15. {
  16.   do
  17.    {
  18.     LCD=0xff;   
  19.     RS=0;                                       // RS=0,選擇指令寄存器
  20.     RW=1;                                       // RW=1,選擇讀模式
  21.     EN=0;                                       // 執行顯示命令
  22.     EN=1;                                       // 允許讀/寫
  23.    }  
  24.   while(busy);                                  //busy為高電平表示忙,循環等待
  25. }

  26. //--------------------------------------  寫命令函數  -----------------------------------

  27. WR_COMM()                                       //寫命令
  28. {
  29.   RS=0;                                         // RS=0,選擇指令寄存器
  30.   RW=0;                                         // RW=0,選擇寫模式
  31.   EN=0;                                         // 執行顯示命令
  32.   CHECK_BF();                                   // 等待
  33.   EN=1;                                         // E=1,允許讀/寫LCD
  34. }

  35. //-------------------------------------- 寫數據函數 -------------------------------------

  36. WR_DATA()                                       //寫數據
  37. {
  38.   RS=1;                                         // RS=1,選擇數據寄存器
  39.   RW=0;                                         //準備寫入數據
  40.   EN=0;                                         //執行顯示命令
  41.   CHECK_BF();                                   //判斷液晶模塊是否忙
  42.   EN=1;                                         // E=1,允許讀/寫LCD
  43. }

  44. //------------------------------------- 初始化函數 ---------------------------------

  45. INIT_LCD()                                       //初始化
  46. {
  47.    unsigned char i=200;
  48.     {
  49.       while(--i);
  50.       LCD=0x01;                               //清屏并光標復位
  51.       WR_COMM();                              //寫入命令
  52.       LCD=0x38;                               //設置顯示模式:8位2行5x7點陣
  53.       WR_COMM();
  54.       LCD=0x0f;                               //顯示器開、光標關、光標禁止閃爍
  55.       WR_COMM();
  56.       LCD=0x06;                               //文字不動,光標自動右移
  57.       WR_COMM();                              //寫入命令
  58.     }
  59. }

  60. //---------------------------------------- 主函數 -----------------------------------

  61. main()
  62. {
  63.   unsigned char i;

  64.   INIT_LCD();                                   //調用初始化函數
  65. //-----------------------------
  66. //寫入第1行字符
  67.    LCD=0x84;                                      //寫入顯示起始地址(第1行第5個位置)                 
  68.    WR_COMM();                                     //寫入命令                          
  69.    LCD=('A');                                     //寫字符
  70.    WR_DATA();                              
  71.   //  }
  72. //------------------------------
  73. //寫入第2行字符
  74. LCD=0xc7;                                      //寫入顯示起始地址(第2行第6個位置)                  
  75.   WR_COMM();                                   //寫入命令                  
  76.   for(i=0;i<3;i++)                                
  77.     {
  78.       LCD=str2[i];                              //提取字符
  79.       WR_DATA();                                //送出
  80.     }
  81.   while(1);                                     //停止到這里  
  82. }

  83. //---------------------------------------------------------------------------------------
復制代碼




該系列源碼包含有很多非常經典,代碼風格十分規范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學習特別是初學者是很有幫助的,全部源碼下載(共25個項目):http://www.zg4o1577.cn/bbs/dpj-79328-1.html

本例程下載(含proteus仿真工程文件與源碼):
單片機LCD1602在兩行顯示字符A和OK實驗.rar (27.16 KB, 下載次數: 42)



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

使用道具 舉報

沙發
ID:337513 發表于 2018-6-5 00:42 | 只看該作者
謝謝答主!很有幫助!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲另类春色偷拍在线观看 | 国产精品毛片一区二区在线看 | 日韩一区二区福利视频 | 天天色影视综合 | 免费一级片 | 国产精品99久久久久久动医院 | 97超碰在线播放 | 日韩欧美久久 | 欧美日韩国产一区二区三区不卡 | 国产免费观看一级国产 | 欧美日韩精品一区二区 | 中文精品视频 | 亚洲精品日韩一区二区电影 | 国产91一区 | 久久综合一区二区 | 超碰欧美 | 久草综合在线视频 | 亚洲一区二区在线视频 | 伦理一区二区 | 日韩久久精品电影 | 国产精品a久久久久 | 欧美日韩亚洲国产综合 | 国产精品久久久久久久久久 | 亚洲九色| 成人在线免费电影 | 日韩成人免费视频 | 国产精品久久久久一区二区三区 | 一区二区三区四区国产 | 国产成人精品一区二区三 | 国产中文视频 | 欧美黑人巨大videos精品 | 亭亭五月激情 | 午夜精品一区二区三区在线视频 | 久久久久久国产精品久久 | 91免费高清视频 | 成人欧美| 国产一区 | 久久久久久久夜 | 久久久国产一区二区 | 黄视频免费在线 | 岛国在线免费观看 |