那些年学过的单片机(硬件篇)

本文回顾了作者从初识51单片机,到学习AVR、C8051F系列,再到接触16位和32位ARM单片机的成长历程,强调了不同阶段的学习重点和单片机技术的发展变迁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 概述

本来想在一个帖子里面谈谈单片机和C语言的故事,结果发现太长了,只能起了个头,后来觉得作为单片机的老玩家,有必要盘点一下这20多年的经历,给后来的朋友们一个参考,所以就另外写了这个帖子。

二 初识单片机

我认识单片机在20年前了,当时是51单片机的天下,直到今天这个型号依然有大把的人在用。51单片机是intel推出的MCS-51系列单片机及其衍生品牌的总称。当时它的地位不敢说100%统一,至少在参考书上是90%以上都是它了。这个单片机的功能从今天来看真是太少了,但是还是值得介绍一番,毕竟麻雀虽小五脏俱全。单片机入门课程里面的GPIO,串口,中断,定时器这些基本概念,都可以学到。而且,即使从寄存器的角度来操作,依然是没有多少寄存器需要学习的,真是非常适合入门。关于这个单片机,在我用上几年后,有位北方的郭老师,推出了一种全新的教学模式,今天看来是开创性的。当初只有他的课程是有视频的,还带开发板的,此外有书本,算是三位一体。其余的教程,要么就是只有书,要么只有开发板,资料很少,至于视频压根就没有这个概念。这个单片机的RAM只有可怜的128Bytes,当然我用的是入门款,后来人家一个系列里面也扩展了。

用过一段时间后,这个家族在国内的最大供应商变成了STC,当初他们也是做了一个跟时代大潮不同的决定。当年,8位单片机已经有好多品牌了,用现在的话来说就是开始卷了。因此很多厂家都开始推出16bit的单片机,甚至32bit的。然而STC一直坚守着8bit单片机,并且发扬光大,结合了好多有意义的外设。比如,ADC,DAC,额外定时器,PWM,多个串口,还扩大了让人流下热泪的RAM和ROM,给了51开发者程序开发的新希望。当然,今天你随便拿个STM32低端型号都能碾压它,这个我们就不说了,当时是真没有别的了。另外补充一句,AVR单片机算是51的亲戚了,使用上虽然很多不同,但是他和教科书上最经典的AT89C51是同一家著名企业Atmel的产品。AVR直到今天,在欧洲也是非常受欢迎的,例如arduino系列就喜欢用这个型号的单片机。我的AVR单片机开发板就是北方那个单片机大学出品的,当初他们还在学校,没有后来名气那么大,但是我确实受益了,学习过程短了好多。AVR单片机有个比较大的优势是,居然有人开发了basic语言来写单片机程序,所以我之前大学学的VB就这样派上用场了。

三 扩大视野

既然学会了51单片机和AVR单片机,我觉得自己可以进一步学习别的型号了,那个时候的单片机,最喜欢做的事情是外扩资源,例如AD和DA。那就有一些厂家,自己在片上给你扩展,形成现在喜欢的形式,叫做SOC。当初有一家公司,国内的代理叫做新华龙,推出C8051F系列单片机,020是他们的拳头产品,资源真的多,多到像今天的STM32,这真不是贬低。当初人家还是8bit呢,STM32还没有诞生呢。但是当初焊接水平不够,用那种封装的芯片真不好处理,所以就买了一个直插的来玩玩。这个单片机的优势在于,外设多了,编程方式还是51,软件几乎没有大的变动了。

再往后,都说16bit来了,那我也不能落后了,找了一片当时还叫做Freescale的单片机,MC打头的型号,这个时候参考书就少了,虽然还是C语言开发,但是套路都变了,印象中串口也不叫UART了,也不是serial,而是SCI,害我程序找了很久。

四 来到32位时代

在我学生生涯的末期,我开始接触32bit的ARM内核单片机,CM3内核,但是最开始不是STM32,还是Freescale的,不过后来叫做NXP了,他的一款LPC单片机,当时周立功公司推出了99元套餐,条件是全部散件,你自己焊接。我当时直接去他在上海的代理处,买到一包散件的时候真是五味杂陈,光盯着价格便宜了,没想到是这个情况。好在我在北京东路电子市场那边有多年的卖家,直接在那边找到以后帮我焊接了。然后就开始学习周立功的程序,发现他们的程序写的真是非常好,作为后面产品化代码的启蒙老师,是不错的。当然,在用32bit当做单片机玩的途中,我也买了几个别的型号开发板,比如S3C44B0,S3C2440,那些想用来玩Linux的,结果都发现自己连桌面Linux都不懂,装个redhat版本花4个小时的,真没有啥兴趣。在此期间,我还玩过TI的DSP,经典型号2407,在我看来,还是一个套路,总之这些开发板对我来说都是单片机裸机了,没有上升到OS的层次。

五 参加工作

参加工作以后,我给自动化设备写DSP程序,虽然用过2407,但是没啥用。在公司,我们当初单片机上那些工作都是基础,进去后,如果不是从0开始,这些工作都是别的同事已经做好了,不用重复进行。现在的学习版生态也好了不少,像正点原子那样,也给你提供一堆的例子,也不用从底层开始自己做了。应该更加关注自己的应用逻辑。这一点,对于广大同学也是一个提醒,在学校的时候,可以深入去学一些内容,参加工作以后,要尽量去学一些公司以外学不到的内容,因为出了这个公司,你就没有机会学了。从参加工作起,我就没再用过8bit和16bit单片机了,至少32bit起步,64bit也有。RAM和ROM的用量也越来越大了,有些程序实际是加载到更大的RAM上运行的。关于单片机本身的硬件部分,就写这么多了,本来想谈谈软件的,发现已经说了够多了,下次再聊。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值