汇编延时问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 08:18:47
当主程序跳入延时子程序的时候,而且子程序的延时又比较长,如果这个时候,又有其他请求发生,怎么办?
举个例子,有8个键和做指示的8个二极管,如果有键按下,对应的二极管就会亮30S,如果已经有个键按下,主程序就跳入延时子程序,如果这个时候再有其他键按下的话,主程序根本就没发响应啊!应为他还在运行延时子程序,还没返回去做键盘扫描啊!谁来解释下啊!谢谢

你可以把延时和扫描键盘弄到一起来执行啊:

第一步:
分配8个计数空间,每个空间可以包含多个内存单元,并将所有计数空间设置成0
第二步:
扫描键盘
第三步:
判断按键,哪个键按下了就将对应的计数空间设置成正好对应30秒的那个数
第四步:
将这8个计数空间和0比较,如果某一个计数空间不是0的话,就点亮相应的二极管
第五步:
递减不是0的计数空间
第六步:
跳到第二步

我不太了解单片机,感觉这样弄的话二极管可能会出现闪烁的情况,而且键子好像也会变得不太灵敏

另外你如果会用中断的话,这个问题可能就会很容易了,不知道你学没学到中断啊?

汇编写延时很困难的~往往都会陷入循环~或者出错出不来~即使自己认为语法逻辑没出错也会出问题~再从网上找以下关于延时的资料吧~或者执行一个空循环执行的次数多一点也可以达到延时效果~我曾经写过延时~但是失败了~。。。