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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3790|回復: 3
打印 上一主題 下一主題
收起左側

十年來第一個單片機成果

[復制鏈接]
跳轉到指定樓層
樓主
ID:71235 發表于 2014-12-28 00:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是運行照片


這是去掉顯示器后的線路板


終結:
    1:元件選擇;全部選用低功耗低電壓的串行模塊,包括一總線溫度傳感器DS18B20,串行時鐘DS1302,串行8位筆劃液晶顯示器SMS0801b(長沙太陽人公司產),及89C2051單片機,原本要增加一個頻率輸出的濕度傳感器,因89C2051代碼空間有限而作罷.

    2:開發工具,51開發板,KEIL C51,自己用試驗板焊的板子(開發完成,試驗板就成了成品板了),EP51PRO編程器,XL1000主要用來測試DS18B20及重新熟悉C51程序,因開發板輸出端子接觸不牢靠,影響DS1302正常讀數,故而DS1302其實是在試驗板上用燒片的方式完成測試(沒有仿真器很苦)

    3:程序,全部用C51書寫編譯(搞習慣了高級語言.寫不來匯編了),編譯后大約占用了1.84K的代碼空間,56字節的XDATA空間,一片89C51正好裝下,程序采用模塊化設計,顯示,數據寫入讀出,鍵盤處理全部是集中處理的,使用了一定的編程技巧.

    4:功能,參照本人的卡西歐手表的按鍵操作方式設計了功能模塊的顯示,調整,切換,
      按鍵一:開機復位后顯示時間界面,按一下切換到日期顯示,再按是溫度,再按是鬧鐘,再按返回時間界面,若在調整界面則用于調整項目的循環切換;
      按鍵二:在時間,日期,鬧鐘顯示界面下按2秒,出現各自的調整界面,再按2秒退出調整界面,進入調整界面后,要調整的項目0.5秒間隔閃爍;
      按鍵三:調整---數字加1,或啟停鬧鐘(暫不支持連續按鍵)
      按鍵四:調整---數字減1,或啟停鬧鐘

    5:精度,時間精確到秒(具體精度由32.768K晶振決定),鬧鐘以分為單位響鬧,每次響鬧20秒,按任意鍵停止.溫度精確到0.5度,分辨率是0.1度

    6:電源問題:起初用DC-DC升壓模塊+兩節鎳氫電池供電,后測試電池輸出電流達20毫安,2400毫安時的電池5天不到就完了, 而89C2051本身只耗7毫安電流,其他模塊加起來耗電還不到1毫安,可見DC-DC升壓模塊的效率實在太低,不具備實用的價值,起碼用在電池供電電路要求長期供電的成品中是不行的,后來去掉DC-DC模塊,直接用3.7v鋰電池供電,則電流減小到3毫安,比原來足足少了6倍之多.
    采用3.7v供電后產生了一個問題,到現在還不知道原因,就是板上的模塊理論上都支持2.7v的低壓,DS1302支持2.5V,但是在實際使用中發現供電電源小于3.6V時,DS1302讀數就出現混亂了,離器件手冊所說的2.5v相差很大,以至于用鋰電池供電都有一定的困難了,因為鋰電的放電終止電壓有2.75v,用3節鎳氫供電存在同樣的問題,3節電池總電壓是1.35*3=4.05v,放電到1.2*3=3.6v就不能正常工作,但是他的終止電壓有1.1v,加起來才3.3v,除非用堿性電池,這樣問題是解決了,成本也上去了.

     7:改進,未來想更換12M的晶振為4M的,進一步減少耗電,但是要改動程序,因為DS18B20對時序要求很嚴格,為了保證DS18B20的正常讀數,甚至要暫時關閉中斷.還可以試驗用讓系統進入空閑方式的方法減少耗電.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:71235 發表于 2014-12-28 00:48 | 只看該作者
    從下午開始搞起一直到晚上一直在測試這個來自網上的驅動程序,程序很不穩定,按復位鍵后經常顯示不出來,最后從網上找了其他的程序,比較后發現是液晶初始化程序有問題,大部分程序都是根據一個1602的數據手冊寫的,大致如下:
1.LCM_WriteCommand(0x38,0);
delaytime(5);
2.LCM_WriteCommand(0x38,0);
delaytime(5);
3.LCM_WriteCommand(0x38,0);
4.LCM_WriteCommand(0x38,1);
5.LCM_WriteCommand(0x08,1);
6.LCM_WriteCommand(0x01,1);
7.LCM_WriteCommand(0x06,1);
8.LCM_WriteCommand(0x0c,1);
有問題的就是第五個調用,是關閉顯示的操作!!!
回復

使用道具 舉報

板凳
ID:71235 發表于 2014-12-28 00:49 | 只看該作者
  下午禁不住手癢癢,做了一條DS18B20的探頭線,是用鼠標線、電容鋁殼、3P接插件及熱縮管做成的,質量還是不錯的,就是線粗了點。程序重新寫了一下,加入了讀取探頭溫度的程序,編譯后了以后89C2051只剩下了80字節的空間,今后想做點其他功能也是沒辦法了,除非換用89C4051,不過有沒有這個必要要看自己的心情了。整個模塊完成后,到廚房冰箱那里測試了一下零下溫度顯示功能程序,基本正常。
回復

使用道具 舉報

地板
ID:71235 發表于 2014-12-28 00:49 | 只看該作者


    當初做好那個溫控器的時候,就已經打算好要增加個通訊功能的,時間已經過去一年多,可還是什么都沒做,因為最近在DIY上動作挺多,不如干脆也把這個功能實現了吧。

    上周六,開始準備工作,首先要實現的是單向通訊功能,單片機只定時發送溫度數據到串口,PC機接收后顯示在軟件窗口上,PC控制單片機就不打算實現了,沒這個必要了。這樣只需要一個單向的RS232接口就行了,剛好夏天的時候去買了一個M8電子負載的套件,其中就有這個單向的RS232接口,是用分立元件實現的,很簡單(3電阻,1三極管),于是把這個電路給抄了下來,在焊接線路板前,先用這個現成的電路測試一下。

    單片機軟件部分,比較費勁的看了一下有關文檔,還好只需要簡單的發送功能,沒有復雜的通訊協議,這樣就先用CVAVR的代碼向導生成了串口參數,然后加入到工程中,發送函數直接使用putchar函數發送4位溫度值,每隔500ms發送一次,

    PC程序使用c#編寫,也很簡單,用串口事件接收4個字節,轉成字符串后寫入LABEL控件就可以了,不過要注意的是,要先設置串口控件的ReceivedBytesThreshold屬性為要接收數據的字節數,否則不能正確區分前后發過來的數據,還有就是在.net下串口控件工作在輔助線程,不能直接向主線程發送數據,比如將數據寫入label控件,這是只要設置Label(類名,不是具體的控件名稱).CheckForIllegalCrossThreadCalls = false就可以了;

    費了點勁兒,打通了通訊環節,然后就是在線路板上搭建RS232轉換接口,經測試完全沒問題,接下了就是安裝到服務器上測試了,串口線是用普通的電線絞成的,因為通訊距離不太遠,也沒什么問題。安裝好后,程序全部正常工作,只是界面有一點問題,家里用的是WIN7,有微軟雅黑字體,而服務器上只有黑體,所以溫度數字顯示的有點別扭,重新修改了一下界面,順便加上了發送溫度上限的功能。

    至此這次改造獲得成功!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久久久久久久久久久久 | 亚洲成人一区二区三区 | 黑人巨大精品欧美一区二区免费 | 日韩精品一区二区三区免费视频 | 亚洲精品在线看 | 999re5这里只有精品 | 国产精品久久久久久亚洲调教 | 亚洲一视频 | 精品国产一区三区 | 视频三区| 久久久久国产精品免费免费搜索 | 亚洲一区二区中文字幕 | 久久只有精品 | 亚洲有码转帖 | 精品久久亚洲 | 久久久久国产一区二区三区 | 97人人草 | 欧美日韩在线综合 | 国产精品高潮呻吟久久久久 | av大片| 日韩欧美国产不卡 | 99精品网| 99re在线视频免费观看 | 欧美激情久久久 | 精品综合网 | 欧美一级全黄 | 久久综合一区二区三区 | 中文字幕av网| 欧美色综合天天久久综合精品 | 999精彩视频| 成人在线观看免费 | 国产美女精品视频 | 青青草一区二区三区 | 日本不卡一区二区三区在线观看 | 特级a欧美做爰片毛片 | 亚洲一区二区三区高清 | 日韩成人中文字幕 | 久久综合伊人 | 91视频麻豆 | 蜜桃一区二区三区 | 久久免费看 |