国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于msp430單片機1602 DS1802溫度顯示

發布時間:2016-9-13 11:21    發布者:designapp
關鍵詞: msp430 , 1602 , DS1802
  最近調好了DS1802溫度傳感器,用的是430G2553單片機,溫度保留兩位小數。把源代碼分享給大家。
  /*****************************************
  msp430g2553實現1602溫度顯示
  來源:汪中原的博客
  ******************************************/
  #include
  #define uchar unsigned char
  #define uint unsigned int
  #define CPU_F ((double)1000000)
  #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) //延時x us
  #define ds_1 P2OUT |=BIT3 //DS18B20數據端高電平輸入(P2.3端口)
  #define ds_0 P2OUT &=~BIT3 //DS18B20數據端低電平輸入(P2.3端口)
  #define lcdrs_1 P2OUT |=BIT1; //1602 RS寫數據(P2.1端口)
  #define lcdrs_0 P2OUT &=~BIT1; //1602 RS寫指令(P2.1端口)
  #define lcden_1 P2OUT |=BIT0; //1602使能信號開(P2.0端口)
  #define lcden_0 P2OUT &=~BIT0; //1602使能信號關(P2.0端口)
  uchar table[]="wzy,come on"; //開機第一行顯示
  uchar table1[]="believe yourself"; //開機第二行顯示
  uint temp,T;
  float temp_f;
  uchar shi,ge,dian1,dian2,num; //定義溫度十位、各位、小數點后一位、后二位
  /*************************************************************
  * 名 稱:void init(void)
  * 功 能:1602顯示配置端口初始化
  * 入口參數:無
  * 出口參數:無
  * 說 明: P1、P2端口設為輸出低電平
  *************************************************************/
  void init(void)
  {
  WDTCTL=WDTPW + WDTHOLD;
  P1DIR=0xff;
  P2DIR=0x1f;
  P1OUT=0x00;
  P2OUT=0x00;
  }
  /*************************************************************
  * 名 稱:void delay(uint a)
  * 功 能:簡單的延時
  * 入口參數:uint a
  * 出口參數:無
  * 說 明: 可作為1602顯示簡單的延時
  *************************************************************/
  void delay(uint a)
  {
  uint i,j;
  for(i=a;i>0;i--)
  for(j=110;j>0;j--);
  }
  /*************************************************************
  * 名 稱:void write_date(uchar date)
  * 功 能:1602寫數據
  * 入口參數:date
  * 出口參數:無
  * 說 明: 用P1口輸入數據
  *************************************************************/
  void write_date(uchar date)
  {
  lcdrs_1;
  P1OUT=date;
  delay(5);
  lcden_1;
  delay(5);
  lcden_0;
  }
  /*************************************************************
  * 名 稱:void write_com(uchar com)
  * 功 能:1602寫指令
  * 入口參數:com
  * 出口參數:無
  * 說 明: 用P1口輸入指令
  *************************************************************/
  void write_com(uchar com)
  {
  lcdrs_0;
  P1OUT=com;
  delay(5);
  lcden_1;
  delay(5);
  lcden_0;
  }
  /*************************************************************
  * 名 稱:void uinit()
  * 功 能:初始化及其他顯示設置指令
  * 入口參數:無
  * 出口參數:無
  * 說 明: 1602初始化設置
  *************************************************************/
  void uinit()
  {
  lcden_0;
  write_com(0x38);
  write_com(0x0c);
  write_com(0x06);
  write_com(0x01);
  }
  /*************************************************************
  * 名 稱:void LCD_display()
  * 功 能:1602顯示
  * 入口參數:無
  * 出口參數:無
  * 說 明: 將前幾個函數綜合起來,顯示字符內容及區域
  *************************************************************/
  void LCD_display()
  {
  init();
  uinit();
  write_com(0x80);
  for(num=0;num>= 1;
  ds_0;
  delay_us(6);
  ds_1;
  delay_us(8);
  P2DIR &= ~BIT3;
  _NOP();
  if(P2IN & BIT3)
  temp |= 0x80;
  delay_us(45);
  P2DIR |=BIT3;
  ds_1;
  delay_us(10);
  }
  return temp;
  }
  /*************************************************************
  * 名 稱:void write_temp(uchar data)
  * 功 能:DS18B20寫入數據
  * 入口參數:data
  * 出口參數:無
  * 說 明: 寫入一個字節
  *************************************************************/
  void write_temp(uchar data)
  {
  uchar i;
  for(i = 0; i >= 1;
  ds_1;
  delay_us(10);
  }
  }
  /*************************************************************
  * 名 稱:void temp_change(void)
  * 功 能:DS18B20溫度轉化指令
  * 入口參數:無
  * 出口參數:無
  * 說 明: 跳過rom并溫度轉化
  *************************************************************/
  void temp_change(void)
  {
  write_temp(0xcc);
  write_temp(0x44);
  }
  /*************************************************************
  * 名 稱:uint temp_get()
  * 功 能:DS18B20溫度獲取
  * 入口參數:無
  * 出口參數:T
  * 說 明: 獲取溫度并四舍五入為保留兩位小數
  *************************************************************/
  uint temp_get()
  {
  uchar a,b;
  DS18B20_init();
  delay(1);
  write_temp(0xcc);
  write_temp(0xbe);
  a=read_temp(); //讀低8位
  b=read_temp(); //讀高8位
  T=b;
  T 0;a--)
  delay_us(60000);
  do
  {
  a = DS18B20_init();
  }
  while(a);
  dis_temp(temp_get());
  init();
  uinit();
  write_com(0x80+0x0b);
  write_date('0'+shi);
  delay(5);
  write_date('0'+ge);
  delay(5);
  write_date('.');
  delay(5);
  write_date('0'+dian1);
  delay(5);
  write_date('0'+dian2);
  delay(5);
  }
  }
  效果圖:上面的數字即為當前溫度
  

                                
                                                               
                                
               
本文地址:http://m.qingdxww.cn/thread-173700-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關在線工具

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美国产亚洲一区二区三区 | 亚洲精品一二三四区 | 日本深夜福利19禁在线播放 | 四虎国产精品影库永久免费 | 一级黄色片a | 国内久久精品 | 久久亚洲日本不卡一区二区 | 日本久久网 | 欧洲做视频在线观看 | 996久久国产精品线观看导航 | www男女| 亚洲国产欧美另类 | 99久久免费国产精品特黄 | 欧美大片一区二区三区 | 古代级a毛片在线 | 天堂网在线.www天堂在线 | 一级待一黄aaa大片在线还看 | ww亚洲ww亚在线观看 | h视频免费在线观看 | 欧美日韩亚洲一区二区三区 | 午夜视频污| 欧美日韩一区二区三区免费 | 极品美女在线 | 国产青草 | 日本爽视频 | 免费一区二区三区久久 | 在线视频欧美亚洲 | 日本天堂在线视频 | 久久99热这里只有精品高清 | 色噜噜色噜噜天天拍一拍 | 亚洲国产一区在线二区三区 | 精品国产三级v | 色综合久久98天天综合 | 亚洲黄色片网站 | 自拍偷拍亚洲图片 | 日本一区二区在线播放 | 99久久国产综合精品1尤物 | 日韩城人网| 久久噜噜久久久精品66 | 狠狠色综合久久婷婷 | 日本高清不卡一区久久精品 |