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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求助單片機(jī)Proteus仿真LCD1602亮屏不顯示字符

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
求助,為什么顯示屏上什么都不顯示呀,代碼如下



單片機(jī)源程序如下:
  1. #include <REGX52.H>

  2. //引腳配置:
  3. sbit LCD_RS=P2^6;
  4. sbit LCD_RW=P2^5;
  5. sbit LCD_EN=P2^7;
  6. #define LCD_DataPort P0

  7. //函數(shù)定義:
  8. /**
  9.   * @brief  LCD1602延時(shí)函數(shù),12MHz調(diào)用可延時(shí)1ms
  10.   * @param  無
  11.   * @retval 無
  12.   */
  13. void LCD_Delay()
  14. {
  15.         unsigned char i, j;

  16.         i = 2;
  17.         j = 239;
  18.         do
  19.         {
  20.                 while (--j);
  21.         } while (--i);
  22. }

  23. /**
  24.   * @brief  LCD1602寫命令
  25.   * @param  Command 要寫入的命令
  26.   * @retval 無
  27.   */
  28. void LCD_WriteCommand(unsigned char Command)
  29. {
  30.         LCD_RS=0;
  31.         LCD_RW=0;
  32.         LCD_DataPort=Command;
  33.         LCD_EN=1;
  34.         LCD_Delay();
  35.         LCD_EN=0;
  36.         LCD_Delay();
  37. }

  38. /**
  39.   * @brief  LCD1602寫數(shù)據(jù)
  40.   * @param  Data 要寫入的數(shù)據(jù)
  41.   * @retval 無
  42.   */
  43. void LCD_WriteData(unsigned char Data)
  44. {
  45.         LCD_RS=1;
  46.         LCD_RW=0;
  47.         LCD_DataPort=Data;
  48.         LCD_EN=1;
  49.         LCD_Delay();
  50.         LCD_EN=0;
  51.         LCD_Delay();
  52. }

  53. /**
  54.   * @brief  LCD1602設(shè)置光標(biāo)位置
  55.   * @param  Line 行位置,范圍:1~2
  56.   * @param  Column 列位置,范圍:1~16
  57.   * @retval 無
  58.   */
  59. void LCD_SetCursor(unsigned char Line,unsigned char Column)
  60. {
  61.         if(Line==1)
  62.         {
  63.                 LCD_WriteCommand(0x80|(Column-1));
  64.         }
  65.         else if(Line==2)
  66.         {
  67.                 LCD_WriteCommand(0x80|(Column-1+0x40));
  68.         }
  69. }

  70. /**
  71.   * @brief  LCD1602初始化函數(shù)
  72.   * @param  無
  73.   * @retval 無
  74.   */
  75. void LCD_Init()
  76. {
  77.         LCD_WriteCommand(0x38);//八位數(shù)據(jù)接口,兩行顯示,5*7點(diǎn)陣
  78.         LCD_WriteCommand(0x0c);//顯示開,光標(biāo)關(guān),閃爍關(guān)
  79.         LCD_WriteCommand(0x06);//數(shù)據(jù)讀寫操作后,光標(biāo)自動加一,畫面不動
  80.         LCD_WriteCommand(0x01);//光標(biāo)復(fù)位,清屏
  81. }

  82. /**
  83.   * @brief  在LCD1602指定位置上顯示一個(gè)字符
  84.   * @param  Line 行位置,范圍:1~2
  85.   * @param  Column 列位置,范圍:1~16
  86.   * @param  Char 要顯示的字符
  87.   * @retval 無
  88.   */
  89. void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char)
  90. {
  91.         LCD_SetCursor(Line,Column);
  92.         LCD_WriteData(Char);
  93. }

  94. /**
  95.   * @brief  在LCD1602指定位置開始顯示所給字符串
  96.   * @param  Line 起始行位置,范圍:1~2
  97.   * @param  Column 起始列位置,范圍:1~16
  98.   * @param  String 要顯示的字符串
  99.   * @retval 無
  100.   */
  101. void LCD_ShowString(unsigned char Line,unsigned char Column,char *String)
  102. {
  103.         unsigned char i;
  104.         LCD_SetCursor(Line,Column);
  105.         for(i=0;String[i]!='\0';i++)
  106.         {
  107.                 LCD_WriteData(String[i]);
  108.         }
  109. }

  110. /**
  111.   * @brief  返回值=X的Y次方
  112.   */
  113. int LCD_Pow(int X,int Y)
  114. {
  115.         unsigned char i;
  116.         int Result=1;
  117.         for(i=0;i<Y;i++)
  118.         {
  119.                 Result*=X;
  120.         }
  121.         return Result;
  122. }

  123. /**
  124.   * @brief  在LCD1602指定位置開始顯示所給數(shù)字
  125.   * @param  Line 起始行位置,范圍:1~2
  126.   * @param  Column 起始列位置,范圍:1~16
  127.   * @param  Number 要顯示的數(shù)字,范圍:0~65535
  128.   * @param  Length 要顯示數(shù)字的長度,范圍:1~5
  129.   * @retval 無
  130.   */
  131. void LCD_ShowNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
  132. {
  133.         unsigned char i;
  134.         LCD_SetCursor(Line,Column);
  135.         for(i=Length;i>0;i--)
  136.         {
  137.                 LCD_WriteData(Number/LCD_Pow(10,i-1)%10+'0');
  138.         }
  139. }

  140. /**
  141.   * @brief  在LCD1602指定位置開始以有符號十進(jìn)制顯示所給數(shù)字
  142.   * @param  Line 起始行位置,范圍:1~2
  143.   * @param  Column 起始列位置,范圍:1~16
  144.   * @param  Number 要顯示的數(shù)字,范圍:-32768~32767
  145.   * @param  Length 要顯示數(shù)字的長度,范圍:1~5
  146.   * @retval 無
  147.   */
  148. void LCD_ShowSignedNum(unsigned char Line,unsigned char Column,int Number,unsigned char Length)
  149. {
  150.         unsigned char i;
  151.         unsigned int Number1;
  152.         LCD_SetCursor(Line,Column);
  153.         if(Number>=0)
  154.         {
  155.                 LCD_WriteData('+');
  156.                 Number1=Number;
  157.         }
  158.         else
  159.         {
  160.                 LCD_WriteData('-');
  161.                 Number1=-Number;
  162.         }
  163.         for(i=Length;i>0;i--)
  164.         {
  165.                 LCD_WriteData(Number1/LCD_Pow(10,i-1)%10+'0');
  166.         }
  167. }

  168. /**
  169.   * @brief  在LCD1602指定位置開始以十六進(jìn)制顯示所給數(shù)字
  170.   * @param  Line 起始行位置,范圍:1~2
  171.   * @param  Column 起始列位置,范圍:1~16
  172.   * @param  Number 要顯示的數(shù)字,范圍:0~0xFFFF
  173.   * @param  Length 要顯示數(shù)字的長度,范圍:1~4
  174.   * @retval 無
  175.   */
  176. void LCD_ShowHexNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
  177. {
  178.         unsigned char i,SingleNumber;
  179.         LCD_SetCursor(Line,Column);
  180.         for(i=Length;i>0;i--)
  181.         {
  182.                 SingleNumber=Number/LCD_Pow(16,i-1)%16;
  183.                 if(SingleNumber<10)
  184.                 {
  185.                         LCD_WriteData(SingleNumber+'0');
  186.                 }
  187.                 else
  188.                 {
  189.                         LCD_WriteData(SingleNumber-10+'A');
  190.                 }
  191.         }
  192. }

  193. /**
  194.   * @brief  在LCD1602指定位置開始以二進(jìn)制顯示所給數(shù)字
  195.   * @param  Line 起始行位置,范圍:1~2
  196.   * @param  Column 起始列位置,范圍:1~16
  197.   * @param  Number 要顯示的數(shù)字,范圍:0~1111 1111 1111 1111
  198.   * @param  Length 要顯示數(shù)字的長度,范圍:1~16
  199.   * @retval 無
  200.   */
  201. void LCD_ShowBinNum(unsigned char Line,unsigned char Column,unsigned int Number,unsigned char Length)
  202. {
  203.         unsigned char i;
  204.         LCD_SetCursor(Line,Column);
  205.         for(i=Length;i>0;i--)
  206.         {
  207.                 LCD_WriteData(Number/LCD_Pow(2,i-1)%2+'0');
  208.         }
  209. }

  210. #include <REGX52.H>
  211. #include "LCD1602.H"

  212. void main()
  213. {
  214.         LCD_Init();
  215.         LCD_ShowChar(1,1,'A');
  216.         LCD_ShowString(1,3,"Hello");
  217.         while(1)
  218.         {
  219.                
  220.         }
  221.         
  222. }
復(fù)制代碼

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

使用道具 舉報(bào)

沙發(fā)
ID:94031 發(fā)表于 2023-3-3 15:17 | 只看該作者
軟件設(shè)置與硬件連接不一致.
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
回復(fù)

使用道具 舉報(bào)

板凳
ID:1064047 發(fā)表于 2023-3-3 15:18 | 只看該作者
最后while(1)里面沒有東西,程序在這個(gè)循環(huán)里沒出來
回復(fù)

使用道具 舉報(bào)

地板
ID:863590 發(fā)表于 2023-3-3 17:14 | 只看該作者
xuyaqi 發(fā)表于 2023-3-3 15:17
軟件設(shè)置與硬件連接不一致.
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;

哦哦哦我給看成25 26  27了,感謝
回復(fù)

使用道具 舉報(bào)

5#
ID:863590 發(fā)表于 2023-3-3 17:15 | 只看該作者
lixiongkuku 發(fā)表于 2023-3-3 15:18
最后while(1)里面沒有東西,程序在這個(gè)循環(huán)里沒出來

好嘞,已經(jīng)修改可以正常顯示了,感謝
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 秋霞在线一区 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 久久免费精品视频 | 欧美日韩一卡二卡 | 国产亚洲精品美女久久久久久久久久 | 看片91| 国产精品久久久久久久久久久久午夜片 | 国产精品呻吟久久av凹凸 | 欧美日韩精品久久久免费观看 | 久久久tv | 日韩精品一区二区三区在线播放 | 成人在线视频网 | 一区在线观看视频 | 久久精品小视频 | 成人欧美一区二区三区白人 | 色一情一乱一伦一区二区三区 | 国产成人精品久久二区二区91 | 春色av| 欧美一区二区三区视频 | 狠狠干网 | 99资源站 | 天天干天天干 | 国产欧美一区二区三区在线看 | 日韩欧美在线播放 | 亚洲精品欧美 | 久久99精品久久久久久国产越南 | 久久久www| 一区二区日韩 | 奇米超碰 | 国产1区2区 | 在线观看国产视频 | 精品国产91亚洲一区二区三区www | 欧美在线看片 | 久久精品99| 欧美亚洲国产成人 | 国产精品成人69xxx免费视频 | 亚洲成人午夜电影 | 亚州综合一区 | 欧美精品久久久久久久久久 | 精品国产亚洲一区二区三区大结局 | 亚洲视频欧美视频 |