怎样用51单片机同时产生10khz和30khz的方波,方波相位保持一致。
想要比较详细的程序设计思路
比如PWM的占空比等等

全部回答

  • xdsnet 发表于 2018-06-13

    你需要产生一个60khz的信号,然后分频得出30khz和10khz

    比如一个60khz计数器直接2分频就可以获得30khz(每个上升沿信号翻转1次)

    而10khz稍微复杂点,是1/6分频,就每隔3个上升沿翻转一次。

    举报 评论 0

  • xdsnet 发表于 2018-06-13

    也只有这样30khz和10khz的相位关系是稳定的。

    举报 评论 0

  • 奔跑的黑蚂蚁 发表于 2018-06-13

    这个没必要使用单片机,单一的门电路就可以实现,但是如果你要使用单片机的话,要求同相位就要意味着要使用用一个时钟,可以使用51单片机的定时器产中断产生一个30k的频率(就是中断后取反某个引脚电平),每次完成一个周期就记一次数,同时对这个30k的频率的基数进行分频计算(计数/3),就可以得到10k的频率了。

    举报 评论 0

  • lichangle 发表于 2018-06-13

    使用定时器产生30k方波 赋予一个io口 然后 程序里 每隔三个脉冲就能产生10k方波 赋予另外一个io口 

    举报 评论 0

  • 菜鸟冷虎 发表于 2018-06-13

    这个可以用定时器产生,直接在定时器中断里翻转电平,设置定时器时间为20k和60k

    举报 评论 0

  • skawu 发表于 2018-06-13

    51单片机12MHz的晶振,10KHz就是100us,30KHz就是33us左右,用一个定时器实现30KHZ的方波定时,然后计数,每三次输出一次10Khz方波即可,也可以根据时间合理的进行定时器计时设置,然后根据定时器中断的次数输出10KHz和30KHz的方波

    举报 评论 0

  • yhj416606438 发表于 2018-06-13

    有60khz的定时器,然后每次进中断翻转一次电平为30kzh方波,另一个每进3次翻转一次电平,但是占空比不能调节


    举报 评论 0

  • 幻月星辰 发表于 2018-06-13

    用定时器设置16us的计数,第一个IO口每记一个数翻转一次,第二个IO口每记3个数翻转一次,这样产生的方波占空比为50频率也大致为30k要想产生方波占空比可调的方波,计数器的计数时间就要缩小,但是51的性能较差,指令执行时间较长。配置定时器计数器的时间再加进去,频率就不是你计算的频率了

    举报 评论 0

  • donatello 发表于 2018-06-13

    51单片机产生两路定时器,程序实现比较复杂,一般是采用两个NE555来产生,比较容易实现。

    举报 评论 0

  • 勇哥来巡山 发表于 2018-06-13

    可以直接用PWM模块来产生,但是要看你的单片机是否支持

    举报 评论 0

  • 8e9e60cf1ad91196 发表于 2018-06-14

    传统型51基本做不到。如果是增强型。12M晶振那就用一个单片机每400中断一次,作为时基,判断多少个中断翻转一次。但增强型51还不如用本身带有的PWM寄存器生成更加准确,好像有些可以一个时基两个比较器。

    举报 评论 0

  • @曲终人散@ 发表于 2018-06-14

    用定时器,正好51有足够的定时器来用

    举报 评论 0

  • hayden 发表于 2018-06-14

    51的软件PWM和硬件PWM都能实现,STC-ISP里有范例。

    举报 评论 0

  • 一笔之名也 发表于 2018-06-15

    这个频率应该还是比较低的,51的晶振大多是12M的,产生这个频率的是没有问题的。

    占空比可以使用定时器,动态修改定时器的定时时间来进行修改。在定时器中断中进行IO的反转

    举报 评论 0

  • chen0000009 发表于 2018-06-16

    51上面没有DMA,做不到绝对的同步,因此最好的方式是输出一个30K频率的方波,再用555定时器来分频产生另一路

    举报 评论 0

  • fd38f4f3178d6cb1 发表于 2018-06-17

    相位同步,可能单纯的软件输出有点困难,可以和和上面朋友说的外加电路实现。

    举报 评论 0

我来回答

试用推荐

正点原子阿波罗STM32F767开发板

产品总数:4个  申请人数:158

距离结束时间:

推荐达人 更多>

  • 王奕 向ta提问

    Eagleson

    在学习FPGA的道路上 我们一起成长吧!

    在行: FPGA/CPLD

  • 靳飞 向ta提问

    汉云

    在路上的Linuxer

    在行: DSP技术 Linux 系统 STM32讨论区 PIC单片机 PCB技术/设计/定制

  • Angel Cherry 向ta提问

    MOP

    用愛和熱忱寫好每一行Code

    在行: FPGA/CPLD Linux 系统 热门单片机

  • 陈龙 向ta提问

    活到老学到老、生命在于折腾

    在行: 电路设计 Linux 系统 DIY创客 开发板

  • 徐珂靖 向ta提问

    xukejing

    Linux系统 、热门开发板

    在行: Linux 系统

完成答题
赶快去开启您的宝箱吧