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

QQ登錄

只需一步,快速開始

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

大神看那部分出錯(cuò)了,1602不顯示 求幫助

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:418392 發(fā)表于 2018-10-31 10:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <reg51.h>   
  2. sbit RS=P2^5;                                   // 引腳定義  
  3. sbit RW=P2^6;                                                           
  4. sbit EN=P2^7;      
  5. sbit busy=P0^7;                                 // "忙"標(biāo)志位      
  6. #define LCD P0                                  //命令或數(shù)據(jù)線
  7. //字符串表
  8. unsigned char code str1[]={" Hello! "};  
  9. unsigned char code str2[]={" My name is LCD,"};  
  10. //---------------------------------- 判斷液晶顯示器是否忙函數(shù) ----------------------------
  11. CHECK_BF()                                      //判斷是否忙碌
  12. {
  13.   do
  14.    {
  15.     LCD=0xff;   
  16.     RS=0;                                       // RS=0,選擇指令寄存器
  17.     RW=1;                                       // RW=1,選擇讀模式
  18.     EN=0;                                       // 執(zhí)行顯示命令
  19.     EN=1;                                       // 允許讀/寫
  20.    }  
  21.   while(busy);                                  //busy為高電平表示忙,循環(huán)等待
  22. }
  23. //--------------------------------------  寫命令函數(shù)  -----------------------------------

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

  32. //-------------------------------------- 寫數(shù)據(jù) 函數(shù)-------------------------------------

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

  41. //------------------------------------- 初始化函數(shù) ---------------------------------

  42. INIT_LCD()                                      //初始化
  43. {
  44.    unsigned char i=200;
  45.     {
  46.       while(--i);
  47.       LCD=0x01;                                //清屏并光標(biāo)復(fù)位
  48.       WR_COMM();                               //寫入命令
  49.       LCD=0x38;                                //設(shè)置顯示模式:8位2行5x7點(diǎn)陣
  50.       WR_COMM();
  51.       LCD=0x0f;                                //顯示器開、光標(biāo)關(guān)、光標(biāo)禁止閃爍
  52.       WR_COMM();
  53.       LCD=0x06;                                //文字不動(dòng),光標(biāo)自動(dòng)右移
  54.       WR_COMM();                               //寫入命令
  55.     }}

  56. //------------------------------------- 延時(shí)函數(shù) -----------------------------------

  57. void delay10ms(unsigned int count)             //延時(shí)函數(shù)
  58.     {  
  59.       unsigned int i,j,k;         
  60.           for(i=0; i<count; i++)
  61.         for(j=0; j<10; j++)   
  62.                    for(k=0; k<120; k++);
  63.     }

  64. //---------------------------------------- 主函數(shù) -----------------------------------

  65. main()
  66. {
  67.   unsigned char i;

  68.   INIT_LCD();                                   //調(diào)用初始化函數(shù)

  69.   while(1)
  70.     {

  71.   //-----------------------------
  72. //寫入第1行字符
  73. LCD=0x81;                                      //寫入顯示起始地址(第1行第5個(gè)位置)                 
  74.   WR_COMM();                                   //寫入命令
  75.   for(i=0;i<7;i++)                                
  76.     {
  77.       LCD=str1[i];                             //提取字符
  78.       WR_DATA();                               //送出
  79.     }
  80. delay10ms(100);  
  81.         //------------------------------
  82. //寫入第2行字符
  83. LCD=0xc0;                                      //寫入顯示起始地址(第2行第6個(gè)位置)                  
  84.   WR_COMM();                                   //寫入命令                  
  85.   for(i=0;i<16;i++)                                
  86.     {
  87.       LCD=str2[i];                              //提取字符
  88.       WR_DATA();                                //送出
  89.     }
  90. delay10ms(200);  
  91. LCD=0x01;                                      //清屏
  92. WR_COMM();  }}                                   //寫入命令
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-10-31 13:01 | 只看該作者
補(bǔ)一下圖
回復(fù)

使用道具 舉報(bào)

板凳
ID:417773 發(fā)表于 2018-10-31 15:23 | 只看該作者
發(fā)一下實(shí)物圖
回復(fù)

使用道具 舉報(bào)

地板
ID:418392 發(fā)表于 2018-12-24 09:52 | 只看該作者
ninghechuan 發(fā)表于 2018-10-31 15:23
發(fā)一下實(shí)物圖

已解決 謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表