请教,一个单片机程序里能不能写两个,或两个以上的循环?怎么写?请教大家,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:47:20
你这还只是每次只能运行一个循环,不能两个或两个以上的没有联系循环程序同时运行。就好像打个比方,C51内核的单片机P1口运行8个LED花样1闪(程序自己定)P3口运行8个LED花样2闪(程序自己定,但两个时间是无法有联系的,)就是花样1运行完了从0开始了,花样2还没有复位。或p1.1到p3.5花样闪(14路)p3.6跟p3.7输出200kHZ的频率。等等,我看了一些书,应该要用到定时器,但我试了一下,有问题、、、、、、、

可以,用一个寄存器保存一个数,在主程序中判断这个数,然后跳到相应的循环里,当然在那个循环里也要实时判断那个数。改变这个数可以在中断里实现,用按键控制。

这个很简单呀,比如P1口的八个灯每隔2秒交替一下(可以是一个亮,其余全灭,也可以一个灭,其余全亮),P3口的八个灯每隔3秒交替一下的程序为例;
首先你可以确定两个寄存器,比如说是30H,31H,你可以设一个50mS的定时器,第一次中断时把寄存器30H、31H中的数加1,用查询的方式,看30H中的数是否到40,31H中的数是否到60,30H中的数到如40后,把P1口的数左移或右移一位,再把30H中的数清零,如果不到继续查询,再查询果31H中的数是否到60了,,如果不到,继续查询,如果到了就把31H清零,然后把P3口中的数左移或右移