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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2520|回復: 0
收起左側

基于PIC單片機溫度-脈搏-DS18B20溫度-液晶12864顯示(proteus仿真+源程序)

[復制鏈接]
ID:190577 發表于 2023-8-25 16:24 | 顯示全部樓層 |閱讀模式
一、系統方案
1、上電初始化液晶第一行顯示脈搏,第二行顯示溫度,第三行顯示模式,第四行顯示強度;按下K1按鍵可以選擇模式,催眼模式或治療模式。
2、治療模塊下,可以通過K2、K3修改強度。
1.png

二、硬件設計
原理圖如下:
2.png

三、單片機軟件設計
1、首先是系統初始化
        //lcdrw = 0; //關閉               
    TRISE = 0x00; //輸出口                                       
    PORTE = 0x00;
    TRISD = 0x00; // 輸出口                                       

    TRISB = 0x0f; // 輸入        
    TRISC = 0x00; // 輸出
    TRISA=0x04;
    PORTA=0;

Lcd_Initial();     //LCD初始化
Reset_DS18B20();

      T1CKPS0=1;           //定時器分頻器8分頻
  T1CKPS1=1;                //定時器分頻器8分頻
  TMR1CS=0;                 //TMR1工作于定時器方式
  TMR1L=(65536-100)%256;  //定時12500個時鐘初始值
  TMR1H=(65536-100)/256;  //定時12500個時鐘初始值
  GIE=1;     //總中斷允許
  PEIE=1;    //外圍功能模塊中斷允許
  TMR1IE=1;  //TMR1中斷允許
  TMR1ON=1;  //啟動TMR1
  pwm(20);
2、液晶顯示程序
/********************************************************************************************
* 函數名稱:Lcd_Write_Command()
* 功    能:寫指令代碼
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void Lcd_Write_Command(uchar temp)
{  
   port=temp;
   rs=0;
   rw=0;
   e=1;
   e=0;  
}
/********************************************************************************************
* 函數名稱:Lcd_Write_Byte()
* 功    能:寫數據
* 入口參數:無
* 出口參數:無
*********************************************************************************************/
void Lcd_Write_Byte(uchar temp)
{  
   port=temp;
   rs=1;
   rw=0;
   e=1;
   e=0;  
}
3、按鍵程序
void key()
{
        if (RB0 == 0)//                                
        {
                       delay(10); //延時
                 if (RB0 == 0)//        
            {
              while (RB0== 0);   
          mode=!mode;
          if(mode==0){ dangwei=2;pwm(20);}
           }
        }
       if (RB1 == 0)//                                
        {
                       delay(10); //延時
                 if (RB1== 0)//        
            {
            while (RB1== 0);
                 if(mode==1)  
                 {
                     dangwei++;
                     if(dangwei>6)dangwei=1;
                     pwm(dangwei*10);

                 }
                 }
            }

     if (RB2 == 0)//                                
        {
                       delay(10); //延時
                 if (RB2 == 0)//        
            {
              while (RB2== 0);   
                   if(mode==1)  
                 {

                     if(dangwei>1)dangwei--;
                     pwm(dangwei*10);

                 }
           }
        }

}

4、核心算法程序
    while (1)
    {



         Lcd_Character_16X16(0,0,8,data_shuju[2]);        //顯示溫
            Lcd_Character_16X16(0,0,24,data_shuju[3]);        //顯示度
         Lcd_Character_16X8( 0,0,40, data_shuju1[10]);//顯示:
        Lcd_Character_16X8( 0,0,48, data_shuju1[ad/100]);//顯示:
          Lcd_Character_16X8( 0,0,56, data_shuju1[ad%100/10]);//顯示:
         Lcd_Character_16X8( 0,0,64, data_shuju1[ad%10]);//顯示:




         Lcd_Character_16X16(0,2,8,data_shuju[0]);        //顯示溫
            Lcd_Character_16X16(0,2,24,data_shuju[1]);        //顯示度
         Lcd_Character_16X8( 0,2,40, data_shuju1[10]);//顯示:
        Lcd_Character_16X8( 0,2,48, data_shuju1[temp/10]);//顯示:
        Lcd_Character_16X8( 0,2,56, data_shuju1[temp%10]);//顯示:

             Lcd_Character_16X16(0,4,8,data_shuju[4]);        //顯示溫
            Lcd_Character_16X16(0,4,24,data_shuju[5]);        //顯示度
         Lcd_Character_16X8( 0,4,40, data_shuju1[10]);//顯示:
         if(mode==0)
         {
            Lcd_Character_16X16(0,4,48,data_shuju[6]);        //顯示溫
            Lcd_Character_16X16(0,4,64,data_shuju[7]);        //顯示度  

         }
         else
         {
               Lcd_Character_16X16(0,4,48,data_shuju[8]);        //顯示溫
            Lcd_Character_16X16(0,4,64,data_shuju[9]);        //顯示度  


         }

               Lcd_Character_16X16(0,6,8,data_shuju[10]);        //顯示溫
            Lcd_Character_16X16(0,6,24,data_shuju[11]);        //顯示度
         Lcd_Character_16X8( 0,6,40, data_shuju1[10]);//顯示
        Lcd_Character_16X8( 0,6,48, data_shuju1[dangwei]);//顯示:

    ad=get_ad();
     key();

     temp=DS18B20_Get();
    if((ad>alarm)||(temp>th))  TMR1ON=1;
    else { TMR1ON=0;RC7=1;}


    }
四、proteus仿真設計
Proteus軟件是一款應用比較廣泛的工具,它可以在沒有硬件平臺的基礎上通過自身的軟件仿真出硬件平臺的運行情況,這樣就可以通過軟件仿真來驗證我們設計的方案有沒有問題,如果有問題,可以重新選擇器件,連接器件,直到達到我們設定的目的,避免我們搭建實物的時候,如果當初選擇的方案有問題,我們器件都已經焊接好了,再去卸載下去,再去焊接新的方案的器件,測試,這樣會浪費人力和物力,也給開發者帶來一定困惑,Proteus仿真軟件就很好的解決這個問題,我們在設計之初,就使用該軟件進行模擬仿真,測試,選擇滿足我們設計的最優方案。最后根據測試沒問題的仿真圖紙,焊接實物,調試,最終完成本設計的作品。
3.png

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费99精品国产自在在线 | 亚洲 中文 欧美 日韩 在线观看 | 真人一级毛片 | 精品视频在线免费观看 | 亚洲国产精品99久久久久久久久 | 久久精品亚洲精品国产欧美kt∨ | 欧美二三区 | 日本成人综合 | 国产欧美精品一区二区三区 | 6996成人影院网在线播放 | 日韩中文视频 | 成人不卡| 一区二区高清 | 久久剧场 | 日韩中文字幕高清 | 婷婷福利视频导航 | 欧美成人一区二区 | 久久久久精 | 久久久999精品 | 久久精品亚洲精品国产欧美 | 精品福利一区二区三区 | 日本三级电影免费 | 成人欧美一区二区三区在线播放 | 久久97精品| 日韩精品视频在线 | 午夜av影院| 日本精品网站 | 日韩欧美在 | 综合一区二区三区 | 福利社午夜影院 | 一区二区在线不卡 | 羞羞午夜| 国产色婷婷久久99精品91 | 波多野结衣中文字幕一区二区三区 | av在线播放不卡 | 欧美日韩综合精品 | 日本一二三区在线观看 | 欧美国产精品一区二区三区 | 国产在线网址 | 最新国产视频 | 欧美激情视频一区二区三区免费 |