EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机程序的完善
. L9 g+ q$ v6 E: Y9 C
* f6 |0 U' \5 H+ F4 O2 g# Y2 p( e, g0 d4 I, p
怎样才能让灯不断地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行: SETB P10 CLR P10 ……… 这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETB P10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLR P10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLR P10后,不会再去执行SETB P10指令,所以以后再也没有机会让灭了。 为了解决这两个问题,我们可以做如下设想,第一,在执行完SETB P10后,延时一段时间(几秒或零点几秒)再执行第二条指令,就可以分辨出灯曾灭过了。第二在执行完第二条指令后,让计算机再去执行第一条指令,不断地在原地兜圈,我们称之为"循环",这样就可以完成任务了。 以下先给出程序(后面括号中的数字是为了便于讲解而写的,实际不用输入):
9 \( ]1 g2 A, E$ j3 m- r7 w3 S5 x |