• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于PIC單片機數(shù)字式溫度計電路設(shè)計與仿真

      2011-10-21 06:06:12田苗法
      大眾科技 2011年5期
      關(guān)鍵詞:北京航空航天大學(xué)電路設(shè)計液晶

      田苗法

      (安徽機電職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241000)

      基于PIC單片機數(shù)字式溫度計電路設(shè)計與仿真

      田苗法

      (安徽機電職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241000)

      文章采用PIC單片機和數(shù)字溫度傳感器TC74設(shè)計數(shù)字式溫度計,硬件電路設(shè)計簡單,工作可靠,易于實現(xiàn),程序設(shè)計采用C語言編程實現(xiàn),最后利用電路仿真軟件proteus對電路進行仿真。

      PIC單片機;數(shù)字式溫度計;電路設(shè)計

      本設(shè)計主控制芯片采用 16F877A單片機,該單片機內(nèi)置I2C總線模塊,利用該模塊可以更方便地跟 I2C芯片進行通信,簡化了C程序代碼設(shè)計。利用I2C器件TC-74將溫度轉(zhuǎn)變?yōu)殡娦盘?,然后發(fā)給單片機,單片機對數(shù)據(jù)進行分析和計算等處理,最后通過1602液晶顯示屏顯示溫度值。

      (一)各元件簡介

      1.PIC16F877A單片機

      PIC16F877A單片機是美國Microchip公司生產(chǎn)的8位單片機,具有獨特的RISC結(jié)構(gòu),即數(shù)據(jù)總線和指令總線分離的哈佛結(jié)構(gòu),該結(jié)構(gòu)具有執(zhí)行效率高和速度快等優(yōu)點。另外,片內(nèi)帶有EEPROM、A/D轉(zhuǎn)換器、USART通信模塊、MSSP通信模塊等,功能強大,可以簡化外圍硬件電路設(shè)計和程序設(shè)計。本次電路設(shè)計應(yīng)用了其內(nèi)部的 I2C通信功能模塊,作為 I2C通信硬件電路中的主控制器件使用,按照I2C通信協(xié)議與I2C從控制器件TC-74進行數(shù)據(jù)通信,實現(xiàn)溫度信號的傳輸。

      圖1 PIC16F877A引腳示意圖

      2.溫度傳感器TC-74

      TC-74是適用于低成本和小尺寸應(yīng)用場合的可串行讀取的數(shù)字溫度傳感器,內(nèi)部溫度檢測元件將周圍環(huán)境溫度轉(zhuǎn)變?yōu)槟M信號,再通過內(nèi)部電路轉(zhuǎn)換成數(shù)字信號對外輸出。該芯片為I2C芯片,內(nèi)部置有I2C通信協(xié)議,作為I2C通信硬件電路中的從控制器件使用,數(shù)據(jù)按照該通信協(xié)議與主控制器件進行數(shù)據(jù)交換。圖2為TC-74各引腳的功能說明,其中VDD和GND分別接電源正極和電源負極,SDA和SCLK為I2C數(shù)據(jù)傳輸接口。

      圖2 TC-74引腳示意圖

      3.字符型1602液晶

      圖3 1602液晶引腳示意圖

      字符型1602液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用的有16×1、16×2、20×2和40×2等模塊,該電路設(shè)計采用的是16×1型號,該模塊采用標(biāo)準(zhǔn)的16引腳接口,如圖3所示。其中,DB0—DB7八個引腳為并行數(shù)據(jù)傳輸接口,各引腳功能見表1。

      表1 1602液晶引腳接口說明表

      (二)電路設(shè)計與仿真

      1.硬件電路設(shè)計

      應(yīng)用 proteus電路仿真軟件對硬件電路進行了設(shè)計與仿真,圖4所示,1602液晶芯片的并行數(shù)據(jù)接口DB0—DB7與單片機B端口的8個引腳連接,TC74的數(shù)據(jù)接口SCLK和SDA分別與單片機SCL、SDA引腳連接。R1和R2為I2C總線上的上拉電阻。打開仿真按鈕,液晶屏能夠正確顯示溫度傳感器上顯示的模擬溫度值。

      圖4 proteus電路設(shè)計圖與仿真

      2.程序設(shè)計

      采用 C語言編程,按照結(jié)構(gòu)化程序設(shè)計和模塊化思想,

      分別對1602液晶和TC74進行編程,C程序代碼如下:

      #include〈pic.h〉

      #define uchar unsigned char

      #define uint unsigned int

      #define RS RD0

      #define E RD1

      const uchar a[]="temp:";

      void port_init() //單片機端口初始化

      {

      TRISB=0; TRISD0=0;

      TRISD1=0; PORTB=0;

      RD0=0; RD1=0;

      TRISC=0xff;

      }

      void delay(uchar x) //延時函數(shù)

      {

      uchar i;

      while(x--) for(i=0;i〈110;i++);

      }

      void lcd_com(uchar dat) //向LCD寫入命令函數(shù)

      {

      RS=0; PORTB=dat;

      E=0; delay(2);

      E=1; delay(2);

      E=0; delay(2);

      }

      void lcd_date(uchar dat) //向LCD寫入數(shù)據(jù)函數(shù)

      {

      RS=1; PORTB=dat;

      E=0; delay(2);

      E=1; delay(2);

      E=0; delay(2);

      }

      void lcd_init() //LCD初始化

      {

      lcd_com(0x30); delay(2);

      lcd_com(0x0c); delay(2);

      lcd_com(0x01); delay(2);

      }

      void i2c_init() //單片機I2C控制寄存器初始化

      {

      SSPSTAT=0x80; SSPCON=0X38;

      SSPCON2=0X00; SSPADD=0X09;

      }

      uchar i2c_read() //讀取TC74中數(shù)據(jù)的函數(shù)

      {

      uchar dat; SSPIF=0;

      SEN=1;

      while(!SSPIF); SSPIF=0;

      SSPBUF=0X9A;

      while(!SSPIF); SSPIF=0;

      SSPBUF=0X00;

      while(!SSPIF); SSPIF=0;

      RSEN=1;

      while(!SSPIF); SSPIF=0;

      SSPBUF=0X9B;

      while(!SSPIF); SSPIF=0;

      RCEN=1;

      while(!(SSPSTAT & 0x01));

      dat=SSPBUF; SSPIF=0;

      ACKDT=1; SSPIF=0;

      PEN=1;

      while(!SSPIF); SSPIF=0;

      return(dat);

      }

      void lcd_display(uchar dat) //液晶顯示溫度值函數(shù)

      {

      uchar shi,ge;

      ge=dat % 10; shi=dat/10;

      lcd_com(0x80+7); lcd_date(0x30+shi);

      lcd_com(0x80+8); lcd_date(0x30+ge);

      }

      void main() //主函數(shù)

      {

      uchar i;

      port_init(); i2c_init();

      lcd_init(); lcd_com(0x80);

      for(i=0;i〈8;i++)

      {

      lcd_date(a[i]);

      }

      while(1)

      {

      delay(500);

      lcd_display((int)i2c_read());

      }

      }

      (三)結(jié)論

      通過對電路進行仿真,證明該電路設(shè)計是正確的,具有較強的實用性,并且電路硬件接線簡單,測量精度高,溫度測量范圍廣泛,抗干擾能力強,誤差較小??蓮V泛應(yīng)用于對溫度的檢測和控制等領(lǐng)域。

      [1] 徐瑋,沈建良,莊建清.PIC單片機快速入門[M].北京:北京航空航天大學(xué)出版社,2010.

      [2] 李學(xué)海.PIC 單片機實用教程—提高篇[M].北京:北京航空航天大學(xué)出版社,2002.

      [3] 張明峰.PIC 單片機入門與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2004.

      [4] 李廣弟,朱月秀,冷祖祈.單片機基礎(chǔ)(第三版)[M].北京:北京航空航天大學(xué)出版社,2007.

      [5] 譚浩強.C 程序設(shè)計(第二版)[M].北京:清華大學(xué)出版社,2004.

      TP311

      A

      1008-1151(2011)05-0027-02

      2011-02-12

      田苗法(1984-),男,山東定陶人,安徽機電職業(yè)技術(shù)學(xué)院汽車工程系助教,研究方向為汽車電子與電控技術(shù)。

      猜你喜歡
      北京航空航天大學(xué)電路設(shè)計液晶
      《北京航空航天大學(xué)學(xué)報》征稿簡則
      《北京航空航天大學(xué)學(xué)報》征稿簡則
      不可壓液晶方程組的Serrin解
      《北京航空航天大學(xué)學(xué)報》征稿簡則
      《北京航空航天大學(xué)學(xué)報》征稿簡則
      《液晶與顯示》征稿簡則
      液晶與顯示(2020年8期)2020-08-08 07:01:46
      Altium Designer在電路設(shè)計中的應(yīng)用
      電子制作(2019年16期)2019-09-27 09:34:58
      負反饋放大電路設(shè)計
      電子制作(2019年23期)2019-02-23 13:21:36
      基于UC3843的60W升壓電路設(shè)計
      液晶與顯示2015年第30卷第1期 目錄
      液晶與顯示(2015年1期)2015-02-28 21:15:54
      南丰县| 天门市| 金沙县| 嘉定区| 鄂托克前旗| 临西县| 昌平区| 阳西县| 芦溪县| 澳门| 博爱县| 河池市| 铁岭市| 兴化市| 正安县| 繁昌县| 游戏| 阳谷县| 松潘县| 博客| 穆棱市| 金华市| 泗水县| 呼图壁县| 汤阴县| 沙河市| 来宾市| 乌拉特后旗| 黄山市| 同江市| 桂阳县| 老河口市| 金堂县| 乌恰县| 金川县| 定结县| 隆子县| 衡水市| 沙雅县| 韶山市| 枞阳县|