2301_78170548 2023-06-06 20:33 采纳率: 0%
浏览 23

单片机点唱机电路原理图

单片机里面,点唱机用Arduino,用proteus电路原理图应该怎么画

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-10 16:08
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7752516
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:arduino+proteus 仿真
    • 除此之外, 这篇博客: Arduino与Proteus仿真实例-计时器延时仿真中的 2、仿真电路原理图 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      在这里插入图片描述

      在系统时钟为16MHz、预分频器为256时,创建500ms延时的定时器1的值计算公式如下:

      Timer 1 speed = 16Mhz/256 = 62.5 Khz 
      Pulse time = 1/62.5 Khz =  16us    
      Count up to = 500ms / 16us = 31250 
      
      bool LED_STATE = true;
      int ledPin = 7;
      void setup() {
        pinMode(ledPin, OUTPUT);        // 设置引脚为输出模式
        cli();                      // 停止中断直到完成设置
        /*第一步:重置控制寄存器以确保我们从禁用所有内容开始。*/
        TCCR1A = 0;                 //重置整个TCCR1A寄存器
        TCCR1B = 0;                 //重置整个TCCR1B寄存器
       
        /*第二步:通过更改 CS10、CS12和CS12位将预标量设置为所需值. */  
        TCCR1B |= B00000100;        // 设置 CS12为1,得到预分频值= 256
        
        /*第三步:我们在寄存器OCIE1A上启用比较匹配模式*/
        TIMSK1 |= B00000010;        // 将OCIE1A设置为 1,启用比较匹配寄存器A
        
        /*第四步:将寄存器A的值设置为31250*/
        OCR1A = 31250;             // 最后将比较寄存器A设置为这个值
        sei();                     // 启用中断
      }
      
      void loop() {
        // put your main code here, to run repeatedly:
      }
      
      // 计时器中断服务函数
      ISR(TIMER1_COMPA_vect){
        TCNT1  = 0; // 将计时器设置回 0,以便为下一次中断重置
        LED_STATE = !LED_STATE;
        digitalWrite(ledPin,LED_STATE);
      }
      

      上面代码实现了每 500 毫秒中断一次。 每次触发中断,我们就去相关的ISR向量。 由于Arduino UNO有 3 个计时器,因此有 6 个 ISR 向量,每个计时器两个,它们具有以下名称:TIMER1_COMPA_vect

      • TIMER1_COMPB_vect
      • TIMER2_COMPA_vect
      • TIMER2_COMPB_vect
      • TIMER3_COMPA_vect
      • TIMER4_COMPB_vect

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 6月6日

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘