铁汁,有没有完整程序包拿来研究研究 |
兄弟,求完整程序包![]() |
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)并放在中断中运行,一旦进入中断就再也出不来。 |