单片机C语言怎样编程才可也使两个不用的I/O口同时执行程序

打个比方P0口的蜂鸣器奏乐,P2口的流水灯不停从左往右闪,这两个程序要同时执行,怎样才能办到最好举些例子... 打个比方P0口的蜂鸣器奏乐,P2口的流水灯不停从左往右闪,这两个程序要同时执行,怎样才能办到
最好举些例子
展开
 我来答
981887910
2010-08-15 · TA获得超过109个赞
知道答主
回答量:61
采纳率:0%
帮助的人:67.2万
展开全部
理论上的同时执行是不可能的,单片机运行程序的有顺序的,顺序执行每一条指令,同一个时间只能执行一条指令。
但是单片机速度比较快,执行起来给人感觉就是同时执行。
可以尝试一下用中断方式吧,主程序里面控制流水灯,中断程序里面控制蜂鸣器。
灰TAI狼001
2010-08-15 · TA获得超过221个赞
知道答主
回答量:84
采纳率:0%
帮助的人:36.8万
展开全部
给个思路吧,理论上单片机是不可以同时执行的,楼下说的很对!你可以利用单片机的定时器中断试试。因为定时器计数计数时不影响程序的执行只有计数计满时才去响应中断。先设置定时器,在中断函数服务里将蜂鸣器i o 口设置个取反,再写流水灯程序。理论上这样的程序当然是有延迟的偏差。但人眼是感觉不到微妙级的时间的,看上去就是同时执行一样!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
白云迎着阳光
2010-08-16
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
楼上讲得非常好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ky2008lyc
2010-08-16 · TA获得超过226个赞
知道答主
回答量:102
采纳率:0%
帮助的人:87万
展开全部
单片机只能执行一条指令。同时执行的就是嵌入式了。
所以用定时器中断吧。
楼上的说的已经很对了。
我也来凑哈热闹。
我就来给个例子吧。
比如我们的课程设计时用51的做个北京时间显示调整和秒表,倒计时,闹钟,整点报时的功能。
我做个定时器,然后北京时间就一直走,相当于你的流水灯原理,然后在我规定的时间到了,闹钟也就是蜂鸣器嘛,也开始响,这个时候我的北京时间也是在走的。应该就相当于你那个。

如果你觉得可以,我的程序可以给你。357541640。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dsq4500
2012-09-08 · TA获得超过157个赞
知道答主
回答量:92
采纳率:100%
帮助的人:45万
展开全部
下面是一个大概的例子,由主程序mian和两个中断程序组成。

mian()
{
TL0=0XXX;
TH0=0XXX;
TR0=1;
EX0=1;
EA=1; //初始化程序
while(1) //等待键盘中断或者定时器中断结果
{
p0=0xXX:
p2=0xXX;
}
}

time0 interuper() //定时器中断程序
{
}

extr0 interuper() //键盘中断程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式