发布网友 发布时间:2022-05-18 01:33
共5个回答
热心网友 时间:2023-10-03 06:21
假如,你的程序在执行key_scan();是触发了两次中断导致num>20,你的显示函数将永远被跳过,你应该写成热心网友 时间:2023-10-03 06:21
呵呵,找你的程序看,应该是当你按下键后,TR0=0;而又刚好定时器再执行中断void timer0();这样定时器不起作用了,它只能一直停在时间中断程序里面,无法进入主函数,自然无法你的按键扫描了,所以此时你不管怎么按也没有反应。。热心网友 时间:2023-10-03 06:22
问题出在键盘扫描,有可能按键时根本没有执行到扫描程序处,因此可能漏掉按键,可以考虑将键盘扫描程序安在定时中断里,发现有按键就置一个按键标志,在主循环中判断键盘标志来决定显示或停止热心网友 时间:2023-10-03 06:22
你把键盘扫描程序里的延时改小些 并试一下再TR0=~TR0后加一句init();热心网友 时间:2023-10-03 06:23
将程序if(num==20)