欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

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

QQ登錄

只需一步,快速開始

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

單片機(jī)控制1602液晶顯示電路圖+程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
利用51單片機(jī)控制lcd1602是非常普遍的,在此我將原理圖和程序分享出來(lái),供大家一起學(xué)習(xí)
這個(gè)程序?qū)崿F(xiàn)的將超聲波模塊所檢測(cè)到的距離和溫度傳感器接收到的溫度顯示到lcd上,只是一個(gè)參考
大家想顯示其他的東西,原理圖可以照著用,但是程序可能就要進(jìn)行修改了

電路原理圖如下:


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


  2. #define uchar unsigned char // 以后unsigned char就可以用uchar代替
  3. #define uint  unsigned int  // 以后unsigned int 就可以用uint 代替


  4. sbit LcdRs_P  = P1^2;       // 1602液晶的RS管腳
  5. sbit LcdRw_P  = P1^3;       // 1602液晶的RW管腳
  6. sbit LcdEn_P  = P1^4;       // 1602液晶的EN管腳



  7. /*********************************************************/
  8. // 毫秒級(jí)的延時(shí)函數(shù),time是要延時(shí)的毫秒數(shù)
  9. /*********************************************************/
  10. void DelayMs(uint time)
  11. {
  12.     uint i,j;
  13.     for(i=time;i>0;i--)
  14.         for(j=112;j>0;j--);
  15. }


  16. /*********************************************************/
  17. // 1602液晶寫命令函數(shù),cmd就是要寫入的命令
  18. /*********************************************************/
  19. void LcdWriteCmd(uchar cmd)
  20. {
  21.     LcdRs_P = 0;
  22.     LcdRw_P = 0;
  23.     LcdEn_P = 0;
  24.     P0=cmd;

  25.         DelayMs(1);

  26.     LcdEn_P = 1;   
  27.         DelayMs(1);
  28.     LcdEn_P = 0;   
  29. }


  30. /*********************************************************/
  31. // 1602液晶寫數(shù)據(jù)函數(shù),dat就是要寫入的命令
  32. /*********************************************************/
  33. void LcdWriteData(uchar dat)
  34. {
  35.     LcdRs_P = 1;
  36.     LcdRw_P = 0;
  37.     LcdEn_P = 0;
  38.     P0=dat;

  39.         DelayMs(1);

  40.     LcdEn_P = 1;   
  41.         DelayMs(1);
  42.     LcdEn_P = 0;
  43. }


  44. /*********************************************************/
  45. // 1602液晶初始化函數(shù)
  46. /*********************************************************/
  47. void LcdInit()
  48. {
  49.     LcdWriteCmd(0x38);        // 16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)口
  50.     LcdWriteCmd(0x0C);        // 開顯示,不顯示光標(biāo)
  51.     LcdWriteCmd(0x06);        // 地址加1,當(dāng)寫入數(shù)據(jù)后光標(biāo)右移
  52.     LcdWriteCmd(0x01);        // 清屏
  53. }


  54. /*********************************************************/
  55. // 液晶光標(biāo)定位函數(shù)
  56. /*********************************************************/
  57. void LcdGotoXY(uchar line,uchar column)
  58. {
  59.     // 第一行
  60.     if(line==0)
  61.         LcdWriteCmd(0x80+column);
  62.      // 第二行
  63.     if(line==1)        
  64.         LcdWriteCmd(0x80+0x40+column);
  65. }



  66. /*********************************************************/
  67. // 液晶輸出字符串函數(shù)
  68. /*********************************************************/
  69. void LcdPrintStr(uchar *str)
  70. {
  71.     while(*str!='\0')
  72.         LcdWriteData(*str++);
  73. }


  74. ///*********************************************************/
  75. //// 液晶輸出數(shù)字
  76. ///*********************************************************/
  77. //void LcdPrintNum(uchar num)
  78. //{
  79. //  LcdWriteData(num/100+48);       // 百位
  80. //  LcdWriteData(num%100/10+48);    // 十位
  81. //  LcdWriteData(num%10+48);        // 個(gè)位
  82. //}


  83. /*********************************************************/
  84. // 主函數(shù)
  85. /*********************************************************/
  86. void main()
  87. {
  88.     char num=78;

  89.     // 1、首先,執(zhí)行液晶初始化
  90.     LcdInit();                      // 液晶初始化


  91.     // 2、定位,確定行(0-1)和列(0-15)的數(shù)字
  92.     LcdGotoXY(0,3);



  93.     // 3.1 如果顯示單個(gè)字符
  94.     LcdWriteData('Y');

  95.     // 3.2 如果顯示一串字符
  96.     LcdPrintStr("hello!");

  97.     // 3.3 顯示一個(gè)采集的數(shù)字
  98.     LcdWriteData(num/10+0x30);
  99.     LcdWriteData(num%10+0x30);


  100.     while(1);
  101. }
復(fù)制代碼




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

使用道具 舉報(bào)

沙發(fā)
ID:516871 發(fā)表于 2019-5-16 09:06 | 只看該作者
不錯(cuò),又長(zhǎng)了一點(diǎn)見識(shí).
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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