产品选型

单片机系统时间 十天学会单片机可能吗?单片机入门需要多久?

小编 2024-11-23 产品选型 23 0

十天学会单片机可能吗?单片机入门需要多久?

几年前,我是通过郭老师的十天学会单片机教程和配套开发板入门单片机的。

最近被学员问到比较多的问题就是,单片机的学习周期大概要多久。

今天在这里统一回答下。

这个主要是要看学到什么程度,不过十天对大多数人来说都不太现实。

因为做单片机开发,不单单是学习单片机而已,而是一整个知识体系。

这个知识体系里包含了3大模块:基础电路、C语言/汇编、单片机

一、基础电路

基础电路如果你没看到这篇文章,光这块的内容就够你学几个月,甚至学几年都学不懂。

相信行内的人都知道,我这里讲的就是模拟电路,这玩意还是挺复杂的,学习门槛也高。

至少是高中水平以上的数学打底,电路需要各种高数公式计算,关键是如果你是从事单片机开发,即便学了其实也很难用到。

不管你以后是想深造硬件电路方向,或者是单片机软件开发方向,我都不建议前期花太多时间去研究模拟电路,只需要会基本电路:欧姆定律,串并联电路,电阻电容、二极管,三极管就差不多了。

原因很简单,前期你经验有限,不可能把模拟电路吃透,很多知识我们只有经历了项目,再回过头来看这些理论,根据经验去理解理论你才能看的懂。

就好比,我英文水平一般,如果我完全没接触过这个行业,英文的芯片手册根本看不懂。

等我做到一定经验的时候,通过经验去理解手册就能看懂70%,就是这个道理。

很多人没经验,以为先有理论,把基础打扎实,这样就能看懂了,这个方向是错误的,至少我个人是这样认为的。

我的方法是,先学基本元器件的作用和单片机最小系统电路,然后就去研究市面上那些51开发板原理图,第一步先看懂这些原理图,这个时间我预计要1周

二、C语言/汇编

汇编目前其实还是用得比较少的,我的建议前面可以先不学,以学习C语言为主。

C语言根据我们的课程规划,内容大概有20多个章节,学习周期大概需要7-10天。

三、单片机

单片机可以和C语言同步学习,因为你学习C语言的过程中需要去实践,传统纯软件可能会用C-Free之类的工具。

如果你是做单片机开发的话,可以直接把写好的程序烧录到单片机上实践,控制LED亮灭,实现流水灯的效果。

培养单片机C语言编程的思维,这个跟纯软件的思维还是有点区别的。

如果同时学C语言和单片机的话预计需要15-20天左右。

加上硬件基础的5天,入门总共需要25天。

这是一个入门的级别,达到这个级别以后你就可以尝试用51单片机去编写一些简单的小项目,比如说用数码管做一个时钟。

这是必须要去做的环节,一个项目能巩固你前期所学的知识,进一步地加深你的理解,初步锻炼你的功能实现能力。

如果这步直接省略,去进阶更高级的单片机,比如说STM32,那你后续每学一个知识点都会存在大量的问题,自信也会被一点点摧毁。

很多学到一半觉得太难了,最终放弃,大多都是这个原因,

其实单片机并不难,门槛也没一些文章说得高,但是学这个比较讲究细节,学习路径不能错,然后按部就班,把该学的知识掌握了再继续往下,相对就比较顺利了。

如何测量单片机程序的运行时间

开发单片机程序的时候,我们经常需要测量一段程序的运行时间,并不断地优化它。那么实际项目中该如何精确地测量一段程序的运行时间呢?一般有两种方法。

1. 使用单片机内部定时器测量,在待测程序段的开始启动定时器,在待测程序段的结尾关闭定时器。为了测量的准确性,要进行多次测量,并进行平均取值。但是该方法在待测程序运行时间极短的情况下,准确性不高。

void Delay_us(uint32_t nCount)

{

/* 清零计数器并开启滴答定时器 */

SysTick->VAL = 0;

SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;

for( ; nCount > 0 ; nCount --)

{

while(SysTick_GetFlagStatus() != SET);

}

/* 关闭滴答定时器 */

SysTick->CTRL &= ~ SysTick_CTRL_ENABLE_Msk;

}

2.借助示波器的测量方法是:在待测程序段的开始阶段使单片机的一个GPIO输出高电平,在待测程序段的结尾阶段再令这个GPIO输出低电平。用示波器通过检查高电平的时间长度,就知道了这段代码的运行时间。显然,借助于示波器的方法更为简便,而且,对于运行时间极短的情况测量准确性更高。

void Delay_us(uint32_t nCount)

{

GPIO_SetBits(GPIOB,GPIO_Pin_0);

for( ; nCount > 0 ; nCount --)

{

while(SysTick_GetFlagStatus() != SET);

}

GPIO_ResetBits(GPIOB,GPIO_Pin_0);

}

相关问答

单片机 中指令周期、机器周期、状态周期、振荡时钟周期(时...

[最佳回答]时钟周期:时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12u...

单片机 的频率是什么意思?

单片机的频率指的是单片机内部时钟的频率,也就是单片机能够执行指令的速度。通常情况下,单片机的频率越高,其处理能力就越强。频率的单位是赫兹(Hz),表示每秒...

单片机 定时的 时间 怎么改变?

定时器实质是计数器。当计数脉冲周期一定时,就有定时功能。雅帆用水桶给你打个比方吧!一、向上计定时数器举例当一个255毫升的烧杯,提前放入155毫升水后,...

单片机 英文参考文献不要给我文章,我要的是书名,作者,出版...

[最佳回答]【1】V.Yu.Teplov,A.V.Anisimov.ThermostattingSystemUsingaSingle-ChipMicrocomputerandThermoelectr...

单片机 指令周期的计算?

1、时钟周期时钟周期T又称为状态周期,是时序中最小的时间单位。具体计算就是1/fosc。也就是说如果晶振为1MHz,那么时钟周期就为1us;6MHz的话,就是1/6us。...

51 单片机 一个指令周期的 时间 ?

像Atmel或菲利浦公司出产的89c51、2051系列老型号51单片机,其指令周期是时钟周期的12倍(注意,不是时钟频率的12倍),例如使用12M主频,指令周期就是1微秒。...

当80C51 单片机 晶振频率为12MHz时,时钟周期.机器周期各是多少?

1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒。2.一个机器...

单片机 晶振 时间 计算?

改用12mHz的它们的值还是0xfd,不过误差就是8.51%。把定时器做波特率发生器,计算公式:T1,T2计数器内部一样:fosc/(32*12*(256-TH1));//11.0592,(...

单片机 耗电量?

单片机的耗电量与具体的型号和运行状态有关。以51单片机为例,这种单片机指的是所有搭载可执行INTEL8031指令系统的MCU的单片机,其典型功耗在4mA到7mA之间。然...

单片机 中R0,R1,R2,R5,R6,R7是怎样用的?是怎样计算时钟周期和延时程序的 时间 的?

R0,R1,R2,R5,R6,R71.是通用寄存器,存取数据使用;2.R0,R1用于间接寻址,指定内外0-255存储单元,如MOVA,@R0,MOVX@R1;延时时间按照指令周期计算,每个...R...

猜你喜欢