单片机C语言怎样编程才可也使两个不用的I/O口同时执行程序
打个比方P0口的蜂鸣器奏乐,P2口的流水灯不停从左往右闪,这两个程序要同时执行,怎样才能办到最好举些例子...
打个比方P0口的蜂鸣器奏乐,P2口的流水灯不停从左往右闪,这两个程序要同时执行,怎样才能办到
最好举些例子 展开
最好举些例子 展开
5个回答
展开全部
给个思路吧,理论上单片机是不可以同时执行的,楼下说的很对!你可以利用单片机的定时器中断试试。因为定时器计数计数时不影响程序的执行只有计数计满时才去响应中断。先设置定时器,在中断函数服务里将蜂鸣器i o 口设置个取反,再写流水灯程序。理论上这样的程序当然是有延迟的偏差。但人眼是感觉不到微妙级的时间的,看上去就是同时执行一样!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机只能执行一条指令。同时执行的就是嵌入式了。
所以用定时器中断吧。
楼上的说的已经很对了。
我也来凑哈热闹。
我就来给个例子吧。
比如我们的课程设计时用51的做个北京时间显示调整和秒表,倒计时,闹钟,整点报时的功能。
我做个定时器,然后北京时间就一直走,相当于你的流水灯原理,然后在我规定的时间到了,闹钟也就是蜂鸣器嘛,也开始响,这个时候我的北京时间也是在走的。应该就相当于你那个。
如果你觉得可以,我的程序可以给你。357541640。
所以用定时器中断吧。
楼上的说的已经很对了。
我也来凑哈热闹。
我就来给个例子吧。
比如我们的课程设计时用51的做个北京时间显示调整和秒表,倒计时,闹钟,整点报时的功能。
我做个定时器,然后北京时间就一直走,相当于你的流水灯原理,然后在我规定的时间到了,闹钟也就是蜂鸣器嘛,也开始响,这个时候我的北京时间也是在走的。应该就相当于你那个。
如果你觉得可以,我的程序可以给你。357541640。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面是一个大概的例子,由主程序mian和两个中断程序组成。
mian()
{
TL0=0XXX;
TH0=0XXX;
TR0=1;
EX0=1;
EA=1; //初始化程序
while(1) //等待键盘中断或者定时器中断结果
{
p0=0xXX:
p2=0xXX;
}
}
time0 interuper() //定时器中断程序
{
}
extr0 interuper() //键盘中断程序
mian()
{
TL0=0XXX;
TH0=0XXX;
TR0=1;
EX0=1;
EA=1; //初始化程序
while(1) //等待键盘中断或者定时器中断结果
{
p0=0xXX:
p2=0xXX;
}
}
time0 interuper() //定时器中断程序
{
}
extr0 interuper() //键盘中断程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询