产品概述

51单片机开发 用51单片机开发项目的整个过程

小编 2024-10-08 产品概述 23 0

用51单片机开发项目的整个过程

想学习单片机的同学可以关注、私信我或者在评论区回复我要入门。51由于外设相对简单所以非常适合初学者入门,我们要掌握51单片机的开发就要学习它的基本部件,学习基本的外设和学习C语言差不多两周到四周大概就能摸清楚了,当然这是根据每个人的学习能力来定的。单片机实际上都是类似的,就像我们电脑一样,不同的版本只是增加了某些功能,我们要学习的就是多的这些功能怎么用。

要掌握一款单片机的最好的方法就是可以用它来开发产品,通过项目业务实现来检验我们单片机学习的知识是不是正确的,扎不扎实。

如果我们想室湿度显示器

1.首先我们要进行硬件选型,要看模块参数,比如湿度模板,电源,显示器等等都要我们进行筛选,选择这部分其实对于小项目来说没有那么复杂,选市面上使用得多容易找的就可以了,如果是已生产为目的的项目就会多一些限制,成本控制就需要比较考验功力了,一个成熟的电子工程师,能少用一个电阻都是要省的

2.在板子等其他工作都做好了以后,我们就可以开始弄我们的代码了,里面肯定会涉及到模块和单片机的通信方式(单片机开发里边我觉得最重要的就是通信方式),是IIC,SPI, 单总线,CAN总线等等,这些是我们必须花很多时间和精力去学习的,尤其是要学习如何灵活的运用到自己的项目里。

3.我们还需要根据项目复杂度和产品后续是不是需要扩展去考虑是否需要上操作系统,裸机和操作系统完全是两种不同的设计理念,我们所做的这个东西是很普遍的,单片机性能基本都是足够的,我们主要的开发精力基本可以放在软件上,建议多上操作系统,尤其是对于复杂的项目,可以提供开发效率,后期维护起来方便。

4.项目的调试是一个非常繁琐的过程,可以这么说我们开发大概会有一半的时间都是在对产品进行调试,调试通过,测试性能,最后是软件集成,这时候在我们的传统概念里硬件工程师应该已经出硬件测试板子了,很多小公司,这部分工作都是一个人做的,身兼多职是一种常态。

5.项目测试,这个是我们要非常重视的一个环节,测试不仔细就会导致产品很多隐患暂时没有暴露出来,等大规模生产的时候暴露你基本上就GG了,测试方式主要有配置命令测试健壮性测试,,具体功能测试,鲁棒性测试,长时间性能测试等,这个自己看着来定。

本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!

已经学过51单片机,如何进阶?我来教你

大家好,我是小麦,最近有朋友问,已经学过51单片机了,如何进阶?

问题

事情是这样的,他在本科时期已经有相应的单片机开发经验,做过简单的项目,流水灯,倒计时,红绿灯,后面该如何提高呢?

首先我感觉得给进阶下一个定义,也就是明确也学习目标,怎么样才算进阶?我掌握哪些东西,可以独立完成哪些开发任务,才算达到了进阶的目的呢?

如果单纯是单片机开发的进阶?

我认为入门的阶段是这样的:

如果刚开始以51单片机起步,能基于开发板做简单的项目,比如搞个流水灯,再复杂点会做电子万年历(

DS1302+LCD1602 )就挺不错了;如果一开始就上STM32了,那么能在常用的STM32开发板上做一些功能,实现一些小的功能,或者能用CubeMX配置和初始化代码,然后做一些项目;

我认为的进阶是这样的,需要掌握这些;

首先我觉得硬件设计是必要的,能根据需求,进行硬件开发,进行原理图设计,PCB的Layout,绘制简单的双层PCB板;在进行硬件设计的过程中,可以试着抄一下已经开源的原理图,或者一般集成电路的DataSheet中都有相应的参考电路,根据这些参考电路进行原理图设计,后面可能会进行一些修改,在新的改版中进行修改即可。焊接技能,如果有最好了,没有的话,可以在PCB打样的时候找厂家进行贴片,配套服务还是很不错的,节省了时间成本;样板到了之后,就要动手对板子进行调试了,这时候会比较复杂,配套的技能包,比如示波器如何使用如何捕获波形如何使用万用表 ?有时候问题会比较玄乎,感觉可能在硬件上,又感觉在软件上,这里建议最好有一个方案验证板(至少保证硬件没问题);最后是编写安全可靠的代码,当然如果移植性好,代码框架好最好了;

之前也有朋友问我,自己想做一些DIY项目,软硬件都自己设计,该如何学习?他是搞互联网专业的,做嵌入式单纯是爱好,享受生命在于折腾的快乐而已;

硬件设计

新手建议使用Altium Designer,教程比较多,国产软件立创EDA也不错,开源的KiCad也可以使用,选一款就行,软件都大同小异,不要在纠结选择哪一款软件上而浪费时间,我个人建议使用Altium Designer,下面简称AD;

网上有很多免费的教程,可以去搜一下,看完教程一定要自己尝试着设计一个电路,可以简单一点,设计一个单片机的最小系统。

链接:https://pan.baidu.com/s/1yKfsttgIBeKKMK65m9H91g

提取码:pzsz

软件设计

单片机的编程开发是必须要掌握C语言的,汇编语言可以简单能读懂就行,调试的时候能简单看懂反汇编就行,所以要把主要精力放在C语言上,其实,初期C语言会常用的语法:

循环:for,while分支:if else,switch

就可以做很多事情了,但是后面还需要进阶,因为写出健壮高效,可复用,可移植的程序,只会这些还远远不够。

好了,我们学习了C语言是为了开发单片机的,是要直接对硬件进行操作,直接操作单片机上的外设寄存器,所以

这里以STM32举例,通常我们需要熟悉常用的接口和协议,和一些常用的外设,后面你会发现,不论是什么厂家的单片机,其实都大同小异;

比较常用的,我们会遇到GPIO,TIM定时器,systick,UART,I2C,SPI,CAN等;

一般来说,像STM32这种硬件平台,前期使用的人很多,网络资源非常丰富,很多时候会Ctrl+C和Ctrl+V就行了,另外ST提供了cubeMX这种工具,初始化根本不需要人为干预,但是有时候过于依赖工具,往往会被工具反噬,我就遇到过用cubeMX配置代码,遇到问题一脸懵逼,不知道如何下手的朋友。

当然我不是提倡大家穿着新鞋走老路,因为时代在发展,不能换一个寄存器一个寄存器去手撸,不过这时候,需要对底层有一个更全面的认识了,从单片机内核架构层面去理解,这需要学习其他的体系知识了,比如地址总线,数据总线,ARM的架构,外设是如何CPU进行数据交换的等等;

比如今年缺芯严重,不得不进行国产替代,不吹不黑,今年换了几款国产的MCU,资料不太完善,也没有太多参考的Demo,后来使用固件库的时候发现了几处BUG,最后还是得靠自己参考开发手册排查错误。

言归正传,我们要学会去官网找资料,有很多应用方案,芯片的开发手册UM( user manual),自己搭建开发环境,然后找到相应的芯片的固件库,这些都能自力更生,就非常不错了。

多提问,多交流

一个人,走得快,一群人,走得远;所以要多与人交流沟通,不耻下问,这里一定要注意提问的技巧;下面是我认为的几点;

尽量别问搜索引擎能解决的问题;尽量收集问题相关的信息;例如单片机而言,你不能问:为什么我的灯点不亮?或者你可以问:我的灯点不亮,测量了IO输出电平正常,但是没有亮?不要使用难懂、模糊化等词句,尽量简短,清晰,简明,扼要地描述你的问题;对的时间,问对的人,在别人全神贯注思考或搬砖的时候,就不要轻易打扰他人;明确你的提问目的是什么,如果你自己都不在自己要问什么,那还是先整理一下问题再问吧;

加入嵌入式技术交流群一起进步

最后

这篇文章里我简单地聊了一下如何进行单片机进阶,个人认为需要硬件设计和软件设计两部分;

硬件设计;软件设计;

如果详细展开,每个部分都有很多东西可以学习的,其实感觉最初能做简单的PCB,然后在这硬件基础上进行相应的软件开发,就已经达到了一个进阶的目的,后续需要的是不断在项目中进行提高,可以不断积累硬件方面的经验,另外还需要系统地学习基础知识,比如计算机系统(微机原理),C语言,数据结构等,软件部分可以多看一下开源的优秀项目,学习他们的设计思想,这样会提高得很快。

好了,这期先这样,时间比较赶,简单地说一下哈,我是小麦,我们下期再见。

相关问答

51单片机 如何建立步骤?

目前进行STC89C51/52、AT89S51/521、双击启动keil软件2、启动新建工程3、给新建工程命名和保存4、选择单片机型号,我们以STC89C52为例,依次选择“Atmel”-.....

51单片机 如何创建工程?

首先,您需要选择一款合适的集成开发环境(IDE)来进行51单片机的编程。常见的IDE有Keil、SDCC等。以下是使用Keil来创建51单片机工程的步骤:1.打开Keil软件,...

51单片机 如何入门?

工具材料:单片机书一本,开发板一块,电脑一台。操作方法01第一步:先找一套单片机相关的教材来学习,了解一下单片机开发都有哪方面的内容,对单片机有一个...工...

51单片机 的程序是怎么制的?

51单片机程序是通过编写汇编语言或C语言代码来实现的。首先,需要了解51单片机的指令集和寄存器,以及外设的操作方式。然后,根据设计需求,编写相应的程序代码...

什么叫 51单片机 啊?

是型号MCS-51系列.所谓单片机,就是把中央处理器CPU(CentralProcessingUnit)、存储器(Memory)、定时器、I/0(Input/Output)接口电路等一些计算机的主...

51单片机 pwm程序详解?

51单片机的pwm调速频率主要通过一个定时器和一个IO口来实现PWM的输出。在一个周期里面,首先让IO口输出高电平,并定时一定的时间然后再将IO口输出低电平,定时一...

51单片机 的独特地位是如何形成的?

51单片机的独特地位是通过英特尔公司对该架构的持续投资、广泛的第三方支持以及广泛的应用而形成的。英特尔公司为51单片机提供了大量的开发工具、技术支持和...

51单片机 程序?

平铺直叙就是最好的程序。你的要求写成计算机认识的语句就是程序。假定p1口的0--7对应你说的D1__D8,电平高点亮。#includeat89c51.hintn=0while(n.....

51单片机 基础知识汇总?

单片机是一种集成电路芯片,具有微处理器的核心。单片机可用于控制、计算、和存储数据等多种应用。基础知识包括:硬件结构、寄存器、时钟、中断、串口通信、并...

51单片机开发 板怎么连接电源?

51单片机开发板的电源连接有两种方式:USB供电和外部电源供电。如果使用USB供电,只需要将开发板的USB口连接到电脑或充电器上即可。如果使用外部电源供电,则需...

猜你喜欢