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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
利用51單片機控制lcd1602是非常普遍的,在此我將原理圖和程序分享出來,供大家一起學習
這個程序實現的將超聲波模塊所檢測到的距離和溫度傳感器接收到的溫度顯示到lcd上,只是一個參考
大家想顯示其他的東西,原理圖可以照著用,但是程序可能就要進行修改了

電路原理圖如下:


單片機源程序如下:
  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. // 毫秒級的延時函數,time是要延時的毫秒數
  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液晶寫命令函數,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液晶寫數據函數,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液晶初始化函數
  46. /*********************************************************/
  47. void LcdInit()
  48. {
  49.     LcdWriteCmd(0x38);        // 16*2顯示,5*7點陣,8位數據口
  50.     LcdWriteCmd(0x0C);        // 開顯示,不顯示光標
  51.     LcdWriteCmd(0x06);        // 地址加1,當寫入數據后光標右移
  52.     LcdWriteCmd(0x01);        // 清屏
  53. }


  54. /*********************************************************/
  55. // 液晶光標定位函數
  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. // 液晶輸出字符串函數
  68. /*********************************************************/
  69. void LcdPrintStr(uchar *str)
  70. {
  71.     while(*str!='\0')
  72.         LcdWriteData(*str++);
  73. }


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


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

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


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



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

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

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


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




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

使用道具 舉報

沙發
ID:516871 發表于 2019-5-16 09:06 | 只看該作者
不錯,又長了一點見識.
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲欧美日韩精品专区 | 毛片一级片 | 亚洲视频一区二区三区 | 可以免费观看的av | 日韩欧美高清 | 免费能直接在线观看黄的视频 | 日本特黄a级高清免费大片 国产精品久久性 | 在线第一页 | 亚洲精品免费看 | 日日干天天操 | 人人九九精 | 日韩欧美国产一区二区 | 红桃视频一区二区三区免费 | 国产欧美精品 | 久久国产成人精品国产成人亚洲 | 欧美精品一区二区在线观看 | 黄色成人免费看 | 激情久久网 | 日韩毛片在线观看 | 国产伦精品一区二区三区四区视频 | 国产精品一区二区免费看 | 亚洲精品久久久久久久久久久久久 | 亚洲最新网址 | 国产精品爱久久久久久久 | 欧美色综合 | 日韩毛片播放 | 99久久精品免费 | 日韩中文一区二区三区 | 日韩一区二区三区在线视频 | 中文字幕亚洲一区 | 日韩欧美国产一区二区 | 欧美视频成人 | 午夜在线视频 | 午夜天堂精品久久久久 | 在线成人免费av | 人人九九精 | 日本视频免费观看 | 久久久精品网 | 久久婷婷香蕉热狠狠综合 | 欧美亚洲视频 | 毛片.com|