|
發布時間: 2023-4-26 23:28
正文摘要:原理圖如上,測試STC8G1K08的NTC溫度采樣,3位數碼管始終顯示000。P5.4口接LED測試發現ADC轉換函數未采樣出數值。 單片機代碼如下: #include "STC8xxxx.h" ... |
| 鐵汁,有沒有完整程序包拿來研究研究 |
兄弟,求完整程序包![]() |
Hephaestus 發表于 2023-4-27 15:09 感謝大佬提點 問題已經解決了 |
coody_sz 發表于 2023-4-27 10:10 大佬 感激不盡 問題解決了 |
angmall 發表于 2023-4-27 08:27 大佬 感激不盡 問題解決了 |
wulin 發表于 2023-4-27 06:05 大佬 感激不盡 把掃描顯示調用從中斷揪到主函數 并且去掉其中的while(1)完美解決問題 |
| 運算放主循環里面,中斷只負責顯示好了,最基本的編程思路都不對。 |
| 因為你的程序永遠在中斷里調用的 DisplayScan(),不退出,根本就沒有運行其余程序。 |
|
你的顯示掃描函數有問題。 //顯示掃描函數 void DisplayScan(void) { while(1) <---------------- 進了中斷,就不出來了。 { Write595((u8)(temperature%1000/100)); //顯示00-999計數百位 COM1 = 0; COM2 = 0; COM3 = 1; //共陽極數碼管,公共端給高電平點亮,點亮數碼管左起第1位 delayms(3); //延時3毫秒 /********************** Timer0 1ms中斷函數 ************************/ void timer0 (void) interrupt 1 { DisplayScan(); //1ms掃描顯示一位 B_1ms = 1; //1ms標志 } |
| 由于你DisplayScan函數中用了死循環while(1)并放在中斷中運行,一旦進入中斷就再也出不來。 |