码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 单片机——用单片机控制一个灯闪烁


    目录

    实现方法

    程序设计

    延时程序分析

    振荡周期

    机器周期

    指令周期


    实现方法

    P1.0输出低电平时,使D1正向偏置,就会点亮发光二极管LED;P1.0输出高电平时,LED熄灭。如果P1.0输出电平在高低电平之间不停转换,则LED灯会产生闪烁。也就是说,先点亮LED灯一段时间之后,再熄灭LED灯,再延时一段时间后点亮LED灯,如此反复(可用循环语句实现)。

    程序设计

    用单片机控制一个灯闪烁,认识单片机的工作频率

    1. #include //包含单片机寄存器的头文件
    2. /****************************************
    3. 函数功能:延时一段时间
    4. *****************************************/
    5. void delay(void) //两个void分别表示无需返回值和没有参数传递
    6. {
    7. unsigned int i; //定义无符号整数,最大取值范围为0~65535
    8. for(i=0;i<20000;i++); //做20000次空循环
    9. //什么也不做,等待一个机器周期
    10. }
    11. /*******************************************************
    12. 函数功能:主函数 (C语言规定必须有且只能有1个主函数)
    13. ********************************************************/
    14. void main(void)
    15. {
    16. while(1) //无限循环
    17. {
    18. P1=0xfe; //P1=1111 1110B, P1.0输出低电平
    19. delay(); //延时一段时间
    20. P1=0xff; //P1=1111 1111B, P1.0输出高电平
    21. delay(); //延时一段时间
    22. }
    23. }

    P1=0xfe;        //P1=1111 1110B, P1.0输出低电平
    delay();          //延时一段时间
    P1=0xff;         //P1=1111 1111B, P1.0输出高电平
    delay();          //延时一段时间

    延时程序分析

            单片机需要一个时钟信号送给内部各电路,才能使它们有节拍地工作。时钟信号的频率由外部振荡电路的晶振频率决定。如果外接晶振的频率是12MHz,则外部振荡电路送给单片机时钟信号的频率也是12MHz。此时,我们说单片机的工作频率就是12MHz。以下是与工作频率相关的几个重要概念。

    振荡周期

       振荡周期:为单片机提供时钟脉冲信号的振荡源的周期。例如,单片机外接晶振频率是12MHz时,则振荡周期就是(1/12MHz)=(1/12)μs。

     机器周期

            机器周期:51系列单片机的一个机器周期由12个振荡周期组成。如果一个单片机的工作频率是12MHz,那么它的工作周期就是(1/12)μs,其机器周期就是12×(1/12)μs= 1μs;如果单片机的外接晶振频率为11.0592MHz,其机器周期就是12×(1/11.0592)μs= 1.085μs。

    指令周期

            指令周期:单片机执行一条指令所用的时间。一般来说,单片机执行1个简单指令需要一个机器周期,执行复杂指令需要两个机器周期。因为一个机器周期非常短,一般只有1~2μs,所以单片机工作速度非常快。

  • 相关阅读:
    素质教育正式提出30周年 提高实际应用能力成为教育新选择
    2022 全球 AI 模型周报
    获取url后面的参数
    学习笔记|小数点控制原理|数码管动态显示|段码跟位码|STC32G单片机视频开发教程(冲哥)|第十集:数码管动态显示
    JS的Promise语法使微信小程序异步操作同步化(让云数据库先查完再执行下面逻辑代码)
    GZ033 大数据应用开发赛题第05套
    线程的六种状态
    Java基础——Java的输入(Scanner对象的使用)
    python之argparse模块常见用法包含实例(超详细)
    python-(5-2)函数的作用域、嵌套、闭包、装饰器、迭代器、生成器
  • 原文地址:https://blog.csdn.net/qq_50942093/article/details/126988564
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号