熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2023-4-26 23:28
正文摘要:原理圖如上,測試STC8G1K08的NTC溫度采樣,3位數(shù)碼管始終顯示000。P5.4口接LED測試發(fā)現(xiàn)ADC轉(zhuǎn)換函數(shù)未采樣出數(shù)值。 單片機(jī)代碼如下: #include "STC8xxxx.h" ... |
鐵汁,有沒有完整程序包拿來研究研究 |
兄弟,求完整程序包![]() |
Hephaestus 發(fā)表于 2023-4-27 15:09 感謝大佬提點(diǎn) 問題已經(jīng)解決了 |
coody_sz 發(fā)表于 2023-4-27 10:10 大佬 感激不盡 問題解決了 |
angmall 發(fā)表于 2023-4-27 08:27 大佬 感激不盡 問題解決了 |
wulin 發(fā)表于 2023-4-27 06:05 大佬 感激不盡 把掃描顯示調(diào)用從中斷揪到主函數(shù) 并且去掉其中的while(1)完美解決問題 |
運(yùn)算放主循環(huán)里面,中斷只負(fù)責(zé)顯示好了,最基本的編程思路都不對(duì)。 |
因?yàn)槟愕某绦蛴肋h(yuǎn)在中斷里調(diào)用的 DisplayScan(),不退出,根本就沒有運(yùn)行其余程序。 |
你的顯示掃描函數(shù)有問題。 //顯示掃描函數(shù) void DisplayScan(void) { while(1) <---------------- 進(jìn)了中斷,就不出來了。 { Write595((u8)(temperature%1000/100)); //顯示00-999計(jì)數(shù)百位 COM1 = 0; COM2 = 0; COM3 = 1; //共陽極數(shù)碼管,公共端給高電平點(diǎn)亮,點(diǎn)亮數(shù)碼管左起第1位 delayms(3); //延時(shí)3毫秒 /********************** Timer0 1ms中斷函數(shù) ************************/ void timer0 (void) interrupt 1 { DisplayScan(); //1ms掃描顯示一位 B_1ms = 1; //1ms標(biāo)志 } |
由于你DisplayScan函數(shù)中用了死循環(huán)while(1)并放在中斷中運(yùn)行,一旦進(jìn)入中斷就再也出不來。 |
Powered by 單片機(jī)教程網(wǎng)