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

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

QQ登錄

只需一步,快速開始

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

求一份BS18B20在LM016L上顯示的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:728898 發(fā)表于 2020-4-23 21:43 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
求一份BS18B20在LM016L上顯示的程序
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:752156 發(fā)表于 2020-6-13 15:38 | 只看該作者
  1. #include "lcd.h"
  2. /*******************************************************************************
  3. * 函 數(shù) 名         : Lcd1602_Delay1ms
  4. * 函數(shù)功能                   : 延時(shí)函數(shù),延時(shí)1ms
  5. 該函數(shù)是在12MHZ晶振下,12分頻單片機(jī)的延時(shí)。
  6. *******************************************************************************/

  7. //void Lcd1602_Delay1ms(unsigned int c)   //誤差 0us
  8. //{
  9. //    unsigned char a,b;
  10. //        for (; c>0; c--)
  11. //        {
  12. //                 for (b=199;b>0;b--)
  13. //                 {
  14. //                          for(a=1;a>0;a--);
  15. //                 }      
  16. //        }
  17. //           
  18. //}

  19. /*  忙等待  */
  20. void LcdWaitReady()
  21. {
  22.         unsigned char sta;
  23.        
  24.         LCD1602_DATAPINS = 0xFF;
  25.         LCD1602_RS = 0;
  26.         LCD1602_RW = 1;
  27.         do{
  28.                 LCD1602_E = 1;
  29.                 sta = LCD1602_DATAPINS;
  30.                 LCD1602_E = 0;
  31.         }while(sta & 0x80);
  32.         // bit7為1,表示液晶正在忙,禁止讀寫操作,當(dāng)為0時(shí)才可進(jìn)行讀寫操作。
  33. }

  34. /*  設(shè)置液晶顯示位置,RAM起始地址,(x,y)為起始坐標(biāo)*/
  35. void LcdSetCursor(unsigned char x, unsigned char y)
  36. {
  37.         unsigned char addr;
  38.         if(y == 0)
  39.                 addr = 0x00 + x;
  40.         else
  41.                 addr = 0x40 + x;
  42.         LcdWriteCom(addr|0x80);
  43. }

  44. /*  液晶顯示字符串,x,y表示起始坐標(biāo),str表示輸入內(nèi)容  */
  45. void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)
  46. {
  47.         LcdSetCursor(x, y);      // 設(shè)置起始地址
  48.         while(*str != '\0')
  49.         {
  50.                 LcdWriteData(*str++);
  51.         }
  52. }

  53. /*  液晶顯示字符串,x,y表示起始坐標(biāo),chr表示輸入字符 */
  54. void LcdShowChar(unsigned char x, unsigned char y, unsigned char chr)
  55. {
  56.         LcdSetCursor(x, y);      // 設(shè)置起始地址
  57.         LcdWriteData(chr);
  58. }

  59. /*******************************************************************************
  60. * 函 數(shù) 名         : LcdWriteCom
  61. * 函數(shù)功能                   : 向LCD寫入一個(gè)字節(jié)的命令
  62. *******************************************************************************/
  63. #ifndef         LCD1602_4PINS         //當(dāng)沒有定義這個(gè)LCD1602_4PINS時(shí)
  64. void LcdWriteCom(unsigned char com)          //寫入命令
  65. {
  66.         LcdWaitReady();                  //LCD忙等待
  67.        
  68.         LCD1602_RS = 0;           //選擇發(fā)送命令
  69.         LCD1602_RW = 0;           //選擇寫入
  70.        
  71.         LCD1602_DATAPINS = com;     //放入命令

  72.         LCD1602_E = 1;                  //寫入時(shí)序
  73.         LCD1602_E = 0;
  74. }
  75. #else
  76. void LcdWriteCom(unsigned char com)          //寫入命令
  77. {
  78.         LCD1602_E = 0;         //使能清零
  79.         LCD1602_RS = 0;         //選擇寫入命令
  80.         LCD1602_RW = 0;         //選擇寫入

  81.         LCD1602_DATAPINS = com;        //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
  82.         Lcd1602_Delay1ms(1);

  83.         LCD1602_E = 1;         //寫入時(shí)序
  84.         Lcd1602_Delay1ms(5);
  85.         LCD1602_E = 0;

  86. //        Lcd1602_Delay1ms(1);
  87.         LCD1602_DATAPINS = com << 4; //發(fā)送低四位
  88.         Lcd1602_Delay1ms(1);

  89.         LCD1602_E = 1;         //寫入時(shí)序
  90.         Lcd1602_Delay1ms(5);
  91.         LCD1602_E = 0;
  92. }
  93. #endif
  94. /*******************************************************************************
  95. * 函 數(shù) 名         : LcdWriteData
  96. * 函數(shù)功能                   : 向LCD寫入一個(gè)字節(jié)的數(shù)據(jù)
  97. * 輸    入         : dat
  98. * 輸    出         : 無
  99. *******************************************************************************/                  
  100. #ifndef         LCD1602_4PINS                  
  101. void LcdWriteData(unsigned char dat)                        //寫入數(shù)據(jù)
  102. {
  103.         LcdWaitReady();                //LCD忙等待
  104.        
  105.         LCD1602_RS = 1;        //選擇輸入數(shù)據(jù)
  106.         LCD1602_RW = 0;        //選擇寫入

  107.         LCD1602_DATAPINS = dat; //寫入數(shù)據(jù)
  108.         LCD1602_E = 1;                                   //寫入時(shí)序
  109.         LCD1602_E = 0;
  110. }
  111. #else
  112. void LcdWriteData(unsigned char dat)                        //寫入數(shù)據(jù)
  113. {
  114.         LCD1602_E = 0;          //使能清零
  115.         LCD1602_RS = 1;          //選擇寫入數(shù)據(jù)
  116.         LCD1602_RW = 0;          //選擇寫入

  117.         LCD1602_DATAPINS = dat;        //由于4位的接線是接到P0口的高四位,所以傳送高四位不用改
  118.         Lcd1602_Delay1ms(1);

  119.         LCD1602_E = 1;          //寫入時(shí)序
  120.         Lcd1602_Delay1ms(5);
  121.         LCD1602_E = 0;

  122.         LCD1602_DATAPINS = dat << 4; //寫入低四位
  123.         Lcd1602_Delay1ms(1);

  124.         LCD1602_E = 1;          //寫入時(shí)序
  125.         Lcd1602_Delay1ms(5);
  126.         LCD1602_E = 0;
  127. }
  128. #endif
  129. /*******************************************************************************
  130. * 函 數(shù) 名       : LcdInit()
  131. * 函數(shù)功能                 : 初始化LCD屏
  132. *******************************************************************************/                  
  133. #ifndef                LCD1602_4PINS
  134. void LcdInit()                                                  //LCD初始化子程序
  135. {
  136.         LcdWriteCom(0x38);  //開顯示
  137.         LcdWriteCom(0x0c);  //開顯示不顯示光標(biāo)
  138.         LcdWriteCom(0x06);  //寫一個(gè)指針加1
  139.         LcdWriteCom(0x01);  //清屏
  140. //        LcdWriteCom(0x80);  //設(shè)置數(shù)據(jù)指針起點(diǎn)
  141. }
  142. #else
  143. void LcdInit()                                                  //LCD初始化子程序
  144. {
  145.         LcdWriteCom(0x32);         //將8位總線轉(zhuǎn)為4位總線
  146.         LcdWriteCom(0x28);         //在四位線下的初始化
  147.         LcdWriteCom(0x0c);  //開顯示不顯示光標(biāo)
  148.         LcdWriteCom(0x06);  //寫一個(gè)指針加1
  149.         LcdWriteCom(0x01);  //清屏
  150.         LcdWriteCom(0x80);  //設(shè)置數(shù)據(jù)指針起點(diǎn)
  151. }
  152. #endif
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久国产综合 | 国产精品成人一区二区三区 | 日韩午夜 | 成人在线精品视频 | 欧洲一级毛片 | 美女人人操 | 国产欧美日韩精品一区 | 欧美 中文字幕 | 自拍偷拍第一页 | 99热播精品 | 免费久久久久久 | 国产亚洲一区二区三区 | 青青草这里只有精品 | 精品一区二区三区四区外站 | 日韩av免费在线观看 | 毛片网站免费观看 | 国产一级片免费看 | 日韩一区二区三区在线观看视频 | 久久国产精品久久久久 | 久久久久久久久淑女av国产精品 | 国产一区二区三区色淫影院 | 亚洲成人网在线观看 | 中文字幕乱码视频32 | 在线播放国产一区二区三区 | 国产精品视频免费看 | 草久网| 欧美一区二区三区在线看 | 成年人视频免费在线观看 | 男女视频在线观看网站 | 免费观看一级毛片 | 午夜精品 | 国产免费色 | 午夜三级在线观看 | 国产91精品久久久久久久网曝门 | 免费观看成人鲁鲁鲁鲁鲁视频 | 国产小视频精品 | 国产一区二区三区在线 | 九九成人 | 中文字幕一二三 | 国产精品福利在线 | 日韩国产精品一区二区三区 |