[求助] 单片机同一个引脚产生两种方波,中间间隔1S循环产生

未来星辰   2016-11-22 23:04 楼主
悬赏 3 分 芯积分未解决
如,当P1.2口检测到高电平是,单片机P1.0口输出一种方波,1S后输出另外一种方波(两种方波大小差别较大就行)
      当P1.2口检测到低电平是,单片机P1.0无输出。
当P1.3口检测到高电平是,单片机P1.1口输出一种方波,1S后输出另外一种方波(两种方波大小差别较大就行)

      当P1.3口检测到低电平是,单片机P1.1无输出。

我试过几种方式都不能成功,包括采用定时器和计数器,中断都试过,仍然不行,求大神帮忙啊,给个可行的方法都行。如有51的c程序更好。

回复评论 (10)

51的我有一个汇编程序。好久好久以前写的了。时间差很小。只能用汇编写了。其实这个很简单了。你检测到一个高电平时,马上开启PWM输出啊。定时1S在开另一个PWM输出
失恋中。。。
点赞  2016-11-23 10:29
用定时器
点赞  2016-11-23 11:45
引用: liaoyuanhong 发表于 2016-11-23 10:29
51的我有一个汇编程序。好久好久以前写的了。时间差很小。只能用汇编写了。其实这个很简单了。你检测到一个 ...

我试过的,中断里的没执行,P1.2和P1.3用的开关
点赞  2016-11-23 12:34
引用: liaoyuanhong 发表于 2016-11-23 10:29
51的我有一个汇编程序。好久好久以前写的了。时间差很小。只能用汇编写了。其实这个很简单了。你检测到一个 ...

GOOD.
点赞  2016-11-23 12:37
这个东西 你自己描述都描述出来了 还写不了?

是你不认真吧。
天地庄周马;江湖范蠡船。 个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
点赞  2016-11-23 12:48
前段时间刚好写过一个类似的程序,用的pic,说说我的思路吧。
timer0用于1s定时,每秒进入一次中断,中断函数里改变timer1的寄存器值(相当于修改timer1中断时间)。
timer1每次进入中断翻转io口,方波1和方波2的半周期相当于在timer0的中断中设置。
所谓的
ps:不用找我要程序,首先我的mcu是pic ,其次如果楼主要实现的内容自己搞不定估计也看不懂我的程序。按照正确的思路来写程序,有问题一个个排除,肯花时间肯定能搞定。
点赞  2016-11-23 15:28
定时器中断就可以,根据读的io的状态,确定是否翻转输出端io。输出时,比如,中断10次,翻转一次io,记录中断次数,大概达到1秒,就中断100次,翻转一次io。捋清思路,就好写了。要处理好各个变量的关系。
点赞  2016-11-23 22:42
引用: ienglgge 发表于 2016-11-23 22:42
定时器中断就可以,根据读的io的状态,确定是否翻转输出端io。输出时,比如,中断10次,翻转一次io,记录中 ...

翻转io口?能说的具体点不
点赞  2016-11-24 12:03
这个貌似没那么复杂吧。如过要求不是很高,就做一个不停检测P1.2,P1.3脚的状态并在P1.0 P1.1脚进行延时翻转电平的循环。做两个循环,经过1S后跳出循环1,进入循环2并改变P1.1脚电平翻转时间。
点赞  2016-11-24 16:02
引用: 未来星辰 发表于 2016-11-24 12:03
翻转io口?能说的具体点不

翻转io口,上一次置高,这一次就置低,下一次再置高,调整好翻转的频率就行了。
点赞  2016-11-24 22:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复