回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。
2025年06月20日
回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。
2025年06月20日
关注一下,更多精彩等着你!
这是新手的第一次尝试,是老师傅的一次回望当年。
准备阶段,我们尽量让第一次测试完整,可操作。由于准备比较多,讲得尽可能详细,所以分为两篇,上篇是软件测试,下篇是硬件测试。
所有材料:
1,安装软件的电脑,至少安装了keil和ISP,keil用于编辑程序,ISP用于把程序下载到单片机中。没有这两个,我们即使首次测试成功,接下来的学习也会很艰难。
2,可以上电的最小系统板,已安装单片机。上电是基本的,单片机也是基本的,没有单片机,程序就没地方存,没有电,什么也干不了。
2025年06月20日
在单片机系统里,按键是常见的输入设备,在本文将介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案。
一是 GPIO口直接检测单个按键,如图 1.1 所示;
二是按键较多则使用矩阵键盘,如图 1.2 所示;
三是将按键接到外部中断引脚上,利用按键按下产生的边沿信号进行按键检测,如图 1.3 所示;
四是利用单片机的 ADC,在不同的按键按下后,能够使得 ADC 接口上的电压不同,根据电压的不同,则可以识别按键,如图 1.4 所示。
2025年06月20日
单片机软件常规程序架构是指在单片机软件开发中使用的一种常规程序设计模式。它通常由三个主要模块组成:初始化模块、主循环模块和中断服务模块。
1. 初始化模块:在程序运行之前,需要初始化各种硬件和软件来确保它们能够正常工作。初始化模块主要用于这个目的,其中包括将所有端口和设备置于正确的状态、设置各种计时器和中断等。
2. 主循环模块:在初始化完成之后,单片机的程序将永久地进入主循环,等待外部输入和处理各种事件。主循环模块通常包括以下几个步骤:读取输入数据、处理数据、输出结果等。
2025年06月20日
经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的。PLC的本质就是单片机,在单片机的基础上添加一些外围电路并形成产品化,即构成了PLC控制器。今天在这里给大家分享一个上位机与单片机通信的实例,希望对大家开发上位机有所启发。
2025年06月20日
有人说这是个伪问题,单片机是元器件,PLC是由元器件以及庞大的软件构成的系统,两者在这一方面没有可比性 —— 大多PLC的控制芯片实际上就是单片机,也就是说可以将PLC看成是单片机的二次开发。单论工业防护等级,单片机的稳定性和可靠性能根本比不了PLC这种IP67类的产品( IP为标记字母,第一标记数字表示接触保护和外来物保护等级,第二标记数字表示防水保护等级)。而且就PLC这种能应对工业恶劣环境的产品还开发出一套冗余系统。
2025年06月20日
玩转单片机ESP8266图形化编程软件mixly米思齐安装与使用
8266是一款经济而又功能强大的单片机,以往使用单片机,需要丰富的硬件知识和软件编程的支持,随着时代的发展,模块化硬件的出现,让每一个有梦想的人,都可以玩转这个神奇的单片机。
2025年06月20日
程序写好,如果有硬件,可以直接刷,如果没有,我建议还是用仿真软件,这样调试时不用考虑硬件问题,把软件调好,就可以慢慢调硬件了。
以后这是我们仿真的主战场了。我们输入网址labcenter,进入官网。
点击下方的download,进入下载页面,然后点击蓝色的下载演示版,此页面中文是由浏览器自己翻译的。
下载完,安装方法可按提示进行,我电脑已安装,就不演示了。如果觉得麻烦,可以私信我,我直接给你现成的。百度资源也可以。
获取文件后,要解压到文件夹。
2025年06月20日
由于软件里面显示的是英文,很多同学可能看不懂,不知道刚开始要怎么处理才能在keil v5里面写程序。
所以我写这篇如何使用这个软件的文章。
2025年06月20日
单片机软件编码规范是为了保证单片机系统软件可读性、可维护性、稳健性和跨平台性而建立的标准。以下是单片机软件编码规范的详细介绍:
1. 命名规则:变量、函数、宏等的命名应遵循清晰、表意、简短的原则。命名应采用英文小写字母+下划线的方式。同时,驼峰命名法可以有效提高代码可读性。
2. 编码样式规范:提高代码的可读性和易于维护性,推荐使用以下编码样式:
(1) 所有大括号独占一行。
(2) 所有语句以分号结束。
(3) 在二元操作符两边加空格。