控制/MCU
考试考完了,闲得无聊,正好手头有一块51学习板,捣鼓一下。控制任务如下:
P1.0 控制一个LED灯,亮0.5s,灭0.5s。
设计思路:这里我们只用定时器,不用软延时。51的定时器最多定时60ms,所以我们设置定时器每50ms中断一次,通过在中断程序设置一个变量来统计中断次数,从而实现较长时间的定时。这里我们是每500ms执行一次灯亮灯灭的动作,所以每10个中断等于500ms(50ms x 10)。第6行,全局变量timer50msCount 就是中断次数。第19-23行,当timer50msCount 为10时,代表500ms时间到,把P1.0 取反,动作一次。
这里有个繁琐的地方,定时器的初值需要手工计算。不过前人开发了一下小程序,直接拿过来用就可以了。
见下图。把自动生成代码中的第一行删掉就可以了。
下面是程序。
全部0条评论
快来发表一下你的评论吧 !