|
發布時間: 2021-9-13 19:09
正文摘要:本帖最后由 hslcac 于 2021-9-16 21:20 編輯 學習調試過程中,單獨顯示輸入沒問題,關鍵的ADC0809的數據不顯示,請幫忙看一下哪里除了問題,謝謝。問題已經解決,謝謝各位老師指點,謝謝,后面附完成后的程序。 / ... |
hslcac 發表于 2021-9-16 21:16 謝謝樓主分享啦 |
| 溫度和AD0809輸入電壓名稱標錯位置了,電壓顯示的是LM358輸出至0809IN0的電壓,制作板子的時候沒有計算好,358的最大輸出電壓測量3.74V,實際與顯示的電壓準確(沒有具體檢測),有借鑒制作溫度及數控電源的程序比較接近(針對新手)。 |
lkc8210 發表于 2021-9-16 15:03 為什么要加個‘’+48‘’,非常感謝,已經找到問題了,第一、沒有加48,第二,num定義錯誤應該是uint型。再次非常感謝各位老師指點,謝謝,上傳完成程序。 |
hslcac 發表于 2021-9-16 12:44 在網頁看,沒留意到那一段注釋掉了 正因為注釋掉了 又重覆了5樓的問題1 沒有定時器1的中斷函數,又當機了 第117行 volt_data[6]=num/1000; //取處理后的數據千位,對應顯示溫度值的十位 缺了個"+48" 又重覆了5樓的問題2 |
188610329 發表于 2021-9-16 12:55 嗯嗯明白了,謝謝, |
hslcac 發表于 2021-9-16 12:44 液晶屏刷新是電壓翻轉一次就定格了,一般,沒有內容變化就不必反復刷新,和數碼管需要不斷的供電點亮是不同的,所以,8210才提醒你一下。 |
lkc8210 發表于 2021-9-16 00:40 是使用的1602,原來的數碼管顯示沒問題,修改的,定時器是1ms的啊 |
|
定時器1的中斷是2ms一次吧? 對LCD1602來說太頻密了 再加上注釋 你好像抄錯了數碼管的動態掃描代碼了吧 |
| 請路過的大師幫我看一下 |
yzwzfyz 發表于 2021-9-14 15:04 謝謝指導,我按您的辦法試試。 |
lkc8210 發表于 2021-9-14 11:20 非常感謝,開始測試使用的中斷刷新顯示,調試后放在主函數內做顯示,我再改一下試試。 |
|
1、顯示程序:應能顯示某個變量于LED上,如A3。 2、采樣程序:應能將采樣的數值,轉換成溫度,再放入A3中。 做到以上兩點不就OK了嗎?有什么難度呢? |
|
經過半天排查 發現是你初始化了定時器1但又沒有相應的中斷函數 結果在定時器1第一次溢出后單片機就當機了 應加上 void timer1() interrupt 3 { } 另外,LCD1602要顯示字符,lcd_wdat();的形參要以ASCII值輸入 lcd_wdat(volt);//自己想一下怎樣改 lcd_wdat(seg1);>>>>>>>>>>>>lcd_wdat('0'+seg1); lcd_wdat(seg2);>>>>>>>>>>>>lcd_wdat('0'+seg2); lcd_wdat(seg3);>>>>>>>>>>>>lcd_wdat('0'+seg3); |
munuc_w 發表于 2021-9-14 08:28 出現亂碼是不是0809數據錯誤啊 |
| 顯示不顯示和0809無關,問題可能出現在數據處理上,仔細檢查0809后的數據處理過程。 |