作者abab7974 (幻灭)
看板ASM
标题[问题] 8051多个port同时动作的方法?及一些问题
时间Thu Mar 22 19:54:55 2012
小弟最近在弄专题
有用到led、蜂鸣器、七段显示器
然後我们有一个功能 就是当对8051触发一个讯号时
上诉三种功能会同时触发
我们三种功能的程式都有基本的功能了
led是跑马灯 一直循环
蜂鸣器我们是写个旋律给他
七段则是不段的数1-60秒
然後 我想问一下 例如说我让P1.0变1的时候 三种功能会同时动作 该怎麽结合?
我不清楚 要如何 一边播音乐边让led以及七段不断的跑
因为 我们LED是一个回圈让8个灯不断亮灭 七段也是一个回圈不断的跑,音乐的旋律也是
我有试过大概的结合 可是结果却变成 音乐的旋律不顺...
==============
还有我想请问一下 如果我想要一个温度感测器
它的功能只要当温度超过一定值就会发送一个讯号给8051的话
有哪个ic比较推荐的吗??
我有找到一个IC叫ds1820 可是他功能太多了 我们不需要那麽多功能..
我不需要记录温度甚麽的 只要超过 例如40度 就送high给8051
他让去触发 刚刚上面奖的那个让3个port同时动作的功能就好..
=========
最後再问一个问题 我们专题是使用8051+labview来做
我最近在写串列传输的时候出现一个问题
我写
-------
x=0x80; /* LED右移初值 */
time=8;
for(y=0;y<time;y++) /* 8种变化 */
{
P0=~x; /* 输出LED资料至P1 */
SBUF=x;
while(TI==0);
TI=0;
LEDdelay(10000); /* 延迟 */
x>>=1; /* 右移一位元 */
}
-------
照理来说她 应该是等x的资料送出去时才把TI变成0吧?
我有连接电脑时 他是会把资料送出去没错
但是我把RS232拔掉时 他还是会不断的做跑马灯的作用
而不是因为[while(TI==0)]而让他卡在第一个灯
所以意思是 8051就算没有接RS232,8051还是会自动把x丢给SBUF
然後把TI变成1吗?
我的问题结束了,谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.240.249.235
※ 编辑: abab7974 来自: 210.240.249.235 (03/22 19:57)
1F:推 WolfLord:把功能LOOP拆开,然後不断PULLING 03/22 20:58
2F:→ abab7974:请问可以稍微详细说明一下吗@@? 03/22 23:14
3F:推 ksmrt0123:temp.sensor有Maxim的 DS18B20 03/22 23:22
DS18B20我有看过类似的DS1820 请问两者的差别在哪边??
因为我只是需要 当温度超过一定值时 送一个讯号给8051来进行切换动作而已
其他的都用不到 可是我看DS1820的功能很多元 我怕我不太会弄..
4F:→ ksmrt0123:rs232线拔掉51的TX还是一样动作 03/22 23:23
恩恩 所以如果我要让 当电脑接收到8051传送完SBUF後才进行下一个动作的话
就要在电脑端 那边写一个 当收到资料时回传给8051的RX来判断
8051是否有接收到 然後在让她进行下一个动作吗?
EX:我要让8051从P0.0跑到P0.7来回跑
然後我想要当跑到P0.0时 就送资料给labview让labview上的灯号跟8051同步
等到labview有接收到资料且同步时 8051在往下跑到P0.1
所以我应该TX、RX都要写吗?
就是当8051接收到LABVIEW同步完成的消息 才进行下一个灯号的动作
5F:→ WolfLord:有没有束修可以收? 03/23 01:38
不好意思 请问一下"束修"是甚麽?
※ 编辑: abab7974 来自: 210.240.249.235 (03/23 12:13)
7F:→ WolfLord:Just kidding 03/23 15:11
8F:推 ruemann:你传送UART的话,有没有接上线都会传送啊 03/23 16:49
9F:→ ruemann:反正你要同时三个功能都在动作的话,就要每做完一个小步骤 03/23 16:50
10F:→ ruemann:换下一个功能执行一个小步骤,这样看起来就会很像是同时在 03/23 16:50
11F:→ ruemann:执行了 03/23 16:51
感谢各位大大的帮忙,我先研究一下 到时有问题再上来发问
谢谢
※ 编辑: abab7974 来自: 111.240.161.133 (03/24 13:41)
14F:推 ppt1:用一种叫RTOS(real-time OS)的方式,以分时的概念同时进行 04/10 12:49