現功能,1L水由1KW電爐加熱,要求水溫在一定范圍內人工設定,并能隨著環境溫度改變自動調節,以維持設定的溫度不變。
矩陣鍵盤輸入設定溫度,LCD1602顯示溫度值,VB上位機繪制溫度曲線
/*******************************************************************************
* 實驗名 :溫度顯示實驗
* 使用的IO :
* 實驗效果 :1602顯示溫度
* 注意 :
*******************************************************************************/
#include #include "uart.h" #include"lcd.h" #include "juzhen.h" #include"temp.h" void LcdDisplay(int); void show_zi(); /******************************************************************************* * 函數名 : main * 函數功能 : 主函數 * 輸入 : 無 * 輸出 : 無 *******************************************************************************/ extern int key_value; void main() { UsartConfiguration(); LcdInit(); //初始化LCD show_zi(); while(1) { LcdDisplay(Ds18b20ReadTemp()); //Delay1ms(1000);//1s鐘刷一次 key_touch(); LcdDisplay_input(); compare_temp(); } } /******************************************************************************* * 函數名 : LcdDisplay() * 函數功能 : LCD顯示讀取到的溫度 * 輸入 : v * 輸出 : 無 *******************************************************************************/ unsigned char dates[] = {0, 0, 0, 0, 0}; //定義數組 void LcdDisplay(int temp) //lcd顯示 { float tp; // if(temp< 0) //當溫度值為負數 // { // LcdWriteCom(0x80); //寫地址 80表示初始地址 // LcdWriteData('-'); //顯示負 // //因為讀取的溫度是實際溫度的補碼,所以減1,再取反求出原碼 // temp=temp-1; // temp=~temp; // tp=temp; // temp=tp*0.0625*100+0.5; // //留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點 // //后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就 // //算加上0.5,還是在小數點后面。 // // } // else //{ LcdWriteCom(0x85); //寫地址 80表示初始地址 LcdWriteData('+'); //顯示正 tp=temp;//因為數據處理有小數點所以將溫度賦給一個浮點型變量 //如果溫度是正的那么,那么正數的原碼就是補碼它本身 temp=tp*0.0625*100+0.5; //留兩個小數點就*100,+0.5是四舍五入,因為C語言浮點數轉換為整型的時候把小數點 //后面的數自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就 //算加上0.5,還是在小數點后面。 //} dates[0] = temp / 10000; dates[1] = temp % 10000 / 1000; dates[2] = temp % 1000 / 100; dates[3] = temp % 100 / 10; dates[4] = temp % 10; LcdWriteCom(0x86); //寫地址 80表示初始地址 LcdWriteData('0'+dates[0]); //百位 LcdWriteCom(0x87); //寫地址 80表示初始地址 LcdWriteData('0'+dates[1]); //十位 SBUF = '0'+dates[1]; //將接收到的數據放入到發送寄存器 while (!TI); //等待發送數據完成 TI = 0; LcdWriteCom(0x88); //寫地址 80表示初始地址 LcdWriteData('0'+dates[2]); //個位 SBUF = '0'+dates[2]; //將接收到的數據放入到發送寄存器 while (!TI); //等待發送數據完成 TI = 0; LcdWriteCom(0x89); //寫地址 80表示初始地址 LcdWriteData('.'); //顯示 ‘.’ LcdWriteCom(0x8A); //寫地址 80表示初始地址 LcdWriteData('0'+dates[3]); //顯示小數點 LcdWriteCom(0x8B); //寫地址 80表示初始地址 LcdWriteData('0'+dates[4]); //顯示小數點 LcdWriteCom(0x8C); //寫地址 80表示初始地址 LcdWriteData('C'); } void show_zi() { char temp[6]={"Temp:"}; char temp2[6]={"Hope:"}; int i; for(i=0;i<6;i++) { LcdWriteCom(0x80+i); //寫地址 80表示初始地址 LcdWriteData(temp[i]); } for(i=0;i<6;i++) { LcdWriteCom(0xC0+i); //寫地址 80表示初始地址 LcdWriteData(temp2[i]); } }
上一篇:DHT11溫濕度檢測器 基于51單片機的proteus仿真
下一篇:基于單片機的波形發生器仿真設計
推薦閱讀
史海拾趣
隨著業務的不斷擴展和產品的不斷創新,DEC在1966年決定公開上市。這次上市不僅為DEC帶來了大量的資金,還提升了其在業界的知名度。借助資本市場的力量,DEC能夠進一步擴大生產規模,加強研發能力,并推出更多具有競爭力的產品。在上市后的幾年里,DEC的銷售收入快速增長,成為計算機行業的重要參與者。
在追求經濟效益的同時,Abbotec也積極履行社會責任。公司注重環保和可持續發展,采用環保材料和生產工藝,減少對環境的影響。此外,Abbotec還積極參與社會公益活動,為社會的發展做出貢獻。
這五個故事都是基于電子行業發展的常見模式而虛構的,旨在展示一個電子企業可能經歷的發展過程。請注意,這些故事并非針對任何真實存在的企業,也不涉及任何具體的褒貶評價。
隨著技術的不斷成熟,Abbotec開始將目光投向國際市場。公司積極參與國際電子展會,與多家國外企業建立了合作關系。通過與這些企業的合作,Abbotec不僅將產品銷往全球各地,還引進了一些先進的生產技術和管理經驗,進一步提升了自身的競爭力。
進入21世紀后,Greenconn Corp意識到全球化趨勢不可逆轉,于是制定了國際化戰略,積極開拓海外市場。公司通過參加國際展會、建立海外銷售網絡、與跨國企業建立合作伙伴關系等方式,不斷提升品牌知名度和市場份額。特別是在亞洲、歐洲和北美等發達國家和地區,Greenconn Corp的連接器產品憑借其卓越的性能和優質的服務贏得了廣泛認可,逐步建立了完善的銷售和服務體系。
3L Electronic Corporation,自XXXX年在臺北創立以來,憑借創始人的遠見卓識和團隊的努力,逐漸在電子行業嶄露頭角。初期,公司主要生產電子零組件,憑借著精湛的工藝和穩定的質量,贏得了客戶的信賴。隨著市場的擴大,公司逐漸拓展到電子產品修理和國際貿易等領域,為后續的快速發展奠定了堅實基礎。
特斯拉,雖然是一家電動汽車公司,但其在電子行業的發展中也展現出了強大的跨界創新能力。特斯拉通過自主研發和生產電池、電機等核心零部件,成功將電動汽車的性能和品質提升到了新的高度。同時,特斯拉還積極探索自動駕駛、智能交通等前沿技術,不斷推動電動汽車行業的變革和發展。特斯拉的跨界創新不僅顛覆了傳統汽車行業的格局,也為電子行業帶來了新的機遇和挑戰。
請注意,以上故事框架僅供參考,具體細節和數據可能需要根據實際情況進行調整和補充。同時,由于篇幅限制,每個故事的字數可能無法滿足500字以上的要求。
Make the most of the unlicensed ISM band Combat interference and achieve better link range for RF transceivers operating in the 915-MHz ISM band. By ShreHarsha Rao, Texas Instruments Due to its unlicensed nature, the 915-MHz U.S. ISM (Industrial, Scientific, and Medi ...… 查看全部問答∨ |
SM24C02是一種電可擦除只讀存儲器 (EEPROM),它內含256×8位存儲空間,具有工作電壓寬,擦寫次數多,寫入速度快等特點。可多達8個該器件同時連接到二線制總線,通過SDA(串行數據線)及SCL(串行時鐘線)在連接總線上的器件之間傳送數據,并根據地 ...… 查看全部問答∨ |
http:www.guangdongdz.com 2005-12-26 23:37:31 隨著數字音頻和視頻設備的不斷涌現,家庭影院、DVD接收器和 A/V接收器對D類放大器的需求越來越多。與傳統的模擬放大器相比,數字放大器所具有的低功耗、高效率從而降低對電源及散熱要求的特性,使之 ...… 查看全部問答∨ |
|
本帖最后由 paulhyde 于 2014-9-15 09:05 編輯 我的大學六年 --郭天祥 在哈爾濱工程大學六年,我在學校電子創新實驗室呆了四年,這四年里創新實驗室給我提供了良好的學習環境和完善的實驗設備;在與眾多電子愛好者的交流中,使我學到了更多的專業 ...… 查看全部問答∨ |
我現在編寫了一個數據轉換的程序,但是工作頻率始終不能達到我的要求,我在程序中需要125MHZ的頻率,但是現在只有82MHZ,我現在把程序列出來,希望大家給點改進意見。 我說一下程序的大概意思吧:將連續輸入的24個24bit寬的數據重排,將24個數據分 ...… 查看全部問答∨ |
各位大俠: 鄙人在做一個帶接IPOD功能的音響,可是不知道這個電路怎樣設計?請知道的同行給我提供下,非常急,謝謝,知道的話可以發到我的油箱:zouhaunming@163.com… 查看全部問答∨ |
|
菜鳥提問,希望得到幫助!! 最近剛使用STR711,看了DATASHEET和相關例程,收獲不少,但是還是有些疑問: 將str711設置為內部FLASH啟動,也就是說將FLASH的地址映射到0x0,那么當運用程序讀FLASH的地址為什么要使用0x4****x,而不是0;寫的 ...… 查看全部問答∨ |