51单片机学习单片机之路总结

发布者:咖啡小熊最新更新时间:2021-03-01 来源: eefocus关键字:51单片机  单片机  驱动 手机看文章 扫描二维码
随时随地手机看文章

学习单片机有一学期了,现在也由51转到STM32了。一直想对51的学习做一个总结。也希望对别人有一些启发。也给后学者提供一些建议。当然本文是我对自己学习过程的总结,若有不对的地方,还请高手指出。


我想,再看本文之前,最好对单片机有了最基础的了解,最好能用单片机驱动起一个LED灯,否则,可能会不知所云。


首先我想问一个问题,你认为单片机有哪些内容呢?也许你现在手里有一块开发板,你已经开始从流水灯开始,一个一个外设在跑了。也许你已经看过一些单片机入门的书了。如果是这样,我估计你会回答,单片机包括了流水灯,键盘,数码管,定时器,中断,串口,AD,DA,液晶,DS18B20……其实这样的回答其实符合了大多数初学者的心态。因为天祥老师的视频也是这么教的。但是当你会操作流水灯,键盘,数码管,液晶,你有没有发现他们有一个共同点,就是都是通过I/O口输出或检测高低电平来驱动这些外设,那我们可不可以把这些模块归为一类,就叫I/O口操作呢,那么这样,要学的内容就又被浓缩了一下,可分为四个模块了,I/O口,定时器,中断,串口。对于AD,有的单片机,例如**公司的加强型单片机就自带了AD,若使用AD芯片,则也属于I/O部分,AD部分我放到后面再提。


这样,学起来条理就清楚了,其实当你驱动了流水灯和按键模块。可以说,你就完成第一部分,I/O口的学习了。I/O的输入和输出你都学会了。至于数码管,液晶,那是为了加强你I/O口编程的能力,说来说去,就是在什么时间输出高电平,什么时间输出低电平以符合他们的通信协议而已。如果你能理解他们都是I/O操作,学起来这些是很简单的。


接下来,继续定时器,中断的学习,无所质疑,定时器与中断是分不开的,没有中断,定时器也很难实现功能。在这里,建议先学习外部中断,如果你认真的学完外部中断,我想你应该能深刻了解中断的含义(这里插一句,一定要理解中断,为后来更高级处理器的中断系统打基础),在学定时器与定时器中断。如果你能深入学习定时器与定时器中断,我想这是,你应该能用数码管做一个电子钟了,具体实现就看你的编程水平了,可以试一试哦。


然后,花一把功夫学完串口通信,我可以对你说,你把单片机的内容学完了。现在,你可以试着把这些分立的模块组合做成一个实际的东西巩固一下。这时,但是,你要知道,还有更多的事等着你。现在只是基础,你前面学的是单片机自身的内容,这时,你需要去了解单片机的外围设备了,例如AD,DA,I2C,SPI等等内容了。但是,有些单片机自带了AD的功能,但我仍然不把他列入单片机自身的内容,包括PWM,也不属于单片机的内容,尽管有些单片机带这个功能。这些外设还是需要花大气力研究的,学到这里,你应该很容易读懂芯片的时序图了,也就是协议。这时对于DS18B20,红外,315M无线通信等等,应该都不在话下了。


你原先的程序都是在开发板上跑的,你现在可以学习如何自制电路板了,也就是学会画板,推荐使用Altium Designer软件。现在可以自己画一块系统板,做出来,看看能不能工作。如果不能,找找原因,可以跟你说,这个是必须要会的。至此,单片机学的差不多了。


但是,更高的目标还在等着你,因为,一开始就是用C语言在编程,对底层的认识比较浅薄的,你可以看一看单片机的汇编语言,不要求你会写汇编,但至少你要能看懂别人的汇编代码,你可以接触一下底层寄存器到底是怎么工作的,怎么寻址的。在这里插一句,以前你写代码时第一句总是#include,我想如果把这一句去掉,你还能让编译通过吗?你理解这个文件里有哪些内容吗,把这个文件里的定义弄明白了,51单片机的寄存器也就差不多了。这时,你应该熟悉了51单片机了。这时学习其他单片机也应该很简单了,只是换一种编译器,寄存器改了而已,原理是不变的,反正都是用C语言编程,只要稍微改一下就完全可以适应另一种芯片。这就是我的整个学习过程,仅供参考。


这时,你需要的就是培养单片机的开发经验。这时,不能说你精通了单片机,只能说会用单片机了。我想问一句,这时,你可以开发一个仓库多点温度测控系统,数据传回电脑并处理吗?不能,我也不能,但是如果你花大学四年时间就搞51的话,我确定是可以的。在这里就涉及到一个方向选择问题,关于方向选择,我的学长张永翔给了我比较好建议,这时你有两个方向,一个往低层做,就是继续学习51单片机开发,你的目标就是用最简单的芯片,最低的成本实现最复杂的系统,比的是成本,也就是说,实现同样功能的系统,你可以用比别人更低的成本,更简单的硬件,更高效的算法去完成,这样你才有市场。另一个当然是往高层做,去学习更高级的单片机,学习ARM嵌入式,操作系统,不过这条路比前一条难很多,当然就业的报酬也很多。只是,你要花更多的时间以及更高的投资,ARM开发板等等,这可不是一笔小数目,你要花的起,当然,从文章的第一句就知道了,我选的是后者。其实我觉得,作为本科生,还是选择后者比较好,回旋余地大,可以继续考研的。我现在还记得我的电路分析老师说的一句话,“现在学电子的本科生,如果你毕业时只会一个单片机,你就废了”,我觉得还是挺有道理的,作为本科生,尤其是电子专业的本科生,往高层做是必须的,而且随着技术的发展,高级单片机例如STM32的成本也一直在下降,高级单片机的普及已成为一种趋势了。


当然,这只是个人的理解,仁者见仁,智者见智。若有不同见解,欢迎讨论。再次重申,本文系个人的总结,若有不对的地方,请指正。


关键字:51单片机  单片机  驱动 引用地址:51单片机学习单片机之路总结

上一篇:51单片机指令系统寻址方式
下一篇:如何利用51单片机控制液晶显示

推荐阅读最新更新时间:2024-11-07 04:31

基于AVR单片机PWM功能的低成本高精度数控恒流源
  随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对电源的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的A/D和D/A芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。 系统框图   图1为系统的总体框图。本系统通过小键盘和LCD实现人机交流,小键盘负责接收要实现的电流值,LCD 12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过滤波和功放电路后对压控恒流元件进行控制,产生电流,电流再经过采样电阻到达负载。同时,对采样电阻两端
[单片机]
基于AVR<font color='red'>单片机</font>PWM功能的低成本高精度数控恒流源
avr单片机proteus仿真第三课:单只数码管
数码管选7SEG-MPX1-CC,共阴极数码管。也就是低电平选通(最右脚),数码管左边8只管脚,从左到右,由低到高,分别接PC0---PC7。 c程序如下: #include avr/io.h #include util/delay.h #define int8u unsigned char #define int16u unsigned int const int8u seg_code ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int main() { int8u i=0; DDRC=0xff; while(1) { PORTC=seg_code ; i=(
[单片机]
avr<font color='red'>单片机</font>proteus仿真第三课:单只数码管
国产内核MCU怎样点燃汽车和IoT双擎
IoT生态的逐步成熟和汽车的电子智能化,成为MCU发展的双擎。以这两大应用为核心,结合5G、AI等新技术,MCU正在快速渗透进各种细分领域。 在国内市场,国产MCU更是厚积薄发,在各个战场“攻城略地”。在2020年慕尼黑电子展上,国产MCU代表厂商芯旺微就携8位和32位MCU系列亮相,一展国产自主MCU内核“kungFu”的风采。 作为国内较早自主开发内核的MCU芯片厂商,芯旺微已经形成了完整的MCU布局,成功向应用市场推出了KF8F、KF8L、KF8A、KF8TS、KF8S等多种8位MCU产品和KF32A、KF32F、KF32L、KF32LS等32位MCU产品。 就在几天之前,芯旺微电子刚刚收获2020年度中国IC设计成
[手机便携]
国产内核<font color='red'>MCU</font>怎样点燃汽车和IoT双擎
TNY256型单片机开关电源及其应用
摘要:单片开关电源具有性价比高、外围电路简单、效率高、功耗低等显著特点,文中介绍了TNY256的性能特点、工作原理,并给出了TNY256的典型应用电路。 关键词:单片开关电源 TNY256 自动重启计数器 功率MOSFET 1 TNY256的性能特点 %26;#183;内置自动重启电路,不需外接元件,一旦发生输出短路或控制环开路故障,可将占空比降低以保护芯片。 %26;#183;在输入直流高压电路中,不需要使用瞬态电压抑制器构成的钳位保护电路,仅用简单的RC吸收回路即可衰减视频噪声。 %26;#183;输入欠压检测电路仅需外接1只电阻,目的是在上电时将片内的功率MOSFET关断,直到直流输入电压VI达到欠压保护门限电压
[单片机]
如何对LED驱动电流进行严格控制
本文重点探讨了如何对LED驱动电流进行严格控制,因为当我们关心输出光品质时,对LED驱动电流的控制将会成为影响LED电源成本的重要因素。为了使用于LED供电电源设计的每分钱都充分发挥作用,我们在本文中提出了一个最佳方案——封闭实际光输出的控制回路。   半导体照明这一新兴领域的出现,使同时专长于电力电子学、光学和热管理学(机械工程)这三个领域的工程师成为抢手人才。目前,在三个领域都富有经验的工程师并不很多,而这通常意味着系统工程师或者整体产品工程师的背景要和这三大领域相关,同时他们还需尽可能与其他领域的工程师协作。   系统工程师常常会把自己原领域养成的习惯或积累的经验带入设计工作中,这和一个主要研究数位系统的电子工程师转去解决电
[电源管理]
如何对LED<font color='red'>驱动</font>电流进行严格控制
用1或2个MCU引脚驱动大型7段LED显示器
驱动7段LED显示器有许多种选择,但大都局限于低输出电流。这里描述的方案采用一个作为移位寄存器连接的74ALS374 或74AS374八路锁存器,对每位进行移位。 74ALS374/74AS374能够处理每位24 mA的输出阱电流,而74AS374能够处理每位48 mA,使其适用于高亮度显示器。 采用这种解决方案,不仅可以产生0至9的数字,还具有零抑制以及通常使用的A至F七段Hex字符。事实上,可以产生七段解码器型驱动器所不能提供的其他七段组合。由于这种设计采用了一个8位锁存器,剩下的一位可以驱动小数点。 图中显示了可以扩展至任何位数的双位、共用阳极显示器(MAN6710)。串联电阻和所使用的锁存器限制了段电流。由于并非所有
[应用]
单片机笔记——显示驱动
在写程序时,显示部分很经常用到,所以一般都直接做成DRIVER,这样用到时调用就是了。下面是个动态扫描的驱动。 先是文件头部分 +++++++LEDDRIVER.H++++++++ #ifndef _LedDriver_H_ //防止重复引用该文挡,如果没定义过符号 //_LedDriver_H_, 则编译下程序 #define _ledDriver_H_ void LedPrint(unsigned char Dat); void LedWork(void); void Delay(unsigned char count); #endif ++++++LEDDRI
[单片机]
爱普特32位MCU在电机控制上的应用
在物联网飞速发展的科技时代,电机作为各类设备的动力核心,其控制技术的优劣直接决定了设备的性能和效率。而爱普特 32 位 MCU 的出现,为电机控制领域带来了全新的突破和变革。 电机,这个看似普通却又至关重要的装置,如同现代社会的“隐形引擎”,默默驱动着我们生活和工业生产的方方面面。从日常的家用电器,到复杂的工业机械,电机无处不在。然而,要让电机稳定、高效、精准地运行,并非易事。这背后离不开先进的控制技术,而其中的关键之一,就是高性能的 MCU 芯片。 在电机的广泛应用中,其工作环境往往十分苛刻。各种外界因素,如温度的剧烈变化、机械振动的冲击、电流的波动以及复杂的电磁干扰等,都可能对电机的正常运行造成影响。为了应对这些挑战,
[嵌入式]
爱普特32位<font color='red'>MCU</font>在电机控制上的应用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved