查看: 1631|回复: 0
打印 上一主题 下一主题

【51入门系列】聊聊51

[复制链接]
跳转到指定楼层
沙发
发表于 2016-3-22 16:04:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本教程作者为云汉电子社区网友@Cigoy ,回帖参与讨论、提问、分享,就能赢取超多丰厚奖励哦~  
@Cigoy 也将随时和大家交流学习中的问题。(PS:本教程未经允许谢绝转载)

学教程,送奖励,活动说明详见:从〇开始学51系列

写在最前面

    非常感谢社区论坛能够提供这样的一个平台,和大家一起讨论有关51单片机的内容。

鄙人并非什么大牛,只是有过一些简单的DIY经历,对单片机有了一点点非常肤浅的认识,有些甚至可能是有少许偏差。

每每在网上看到初学者绕弯钻进死胡同,便想着就自己的一点点了解,和初学者们分享(请叫我雷锋)

林林总总玩过不少单片机,51也丢开很多年了,希望这些帖子能够温故知新、抛砖引玉,高手们可以尽情地发难,新手们可以肆意地吐槽。

    最大的愿望就是,帖子结束后,老鸟们能说,没啥深度,但是勉强还算简洁易懂;新兵们能讲,看完帖子,基本上了解啥是单片机了。若能如此,也算是完成任务

系列帖子的简介

    这个系列相关的帖子立足于从未接触过单片机的新手角度,尽可能地用最通俗的语言去探讨51单片机的使用。

请注意,这里是使用。

    和很多开篇就讨论内核知识、介绍各种寄存器的教材不一样,这些帖子不会刻意去讨论内核是怎么工作的,重点是如何从一个旁观者变成一个使用者,若是想驾驭一种单片机,那就不是这么简单几个帖子的阅读、几个例程的练习能够达到的境界,还是需要长年累月的积累和钻研。

    编程语言考虑了很久,还是最终决定采用工科专业的通用c语言而不是接近底层的汇编语言。

为啥?

    接触过一些单片机,稍微有实力些的厂家都会推出对应的C语言驱动函数库,把寄存器之类非常枯燥乏味的东西封装到最底层,大家只需要了解库函数,直接调用即可。

    窃以为,厂家本意是加快开发进度,说白了,意思就是别刻意去记那些坑爹的寄存器了,别绞尽脑汁去了解内核怎么工作了,能把这块片子正常使用起来,就是胜利。

    当然,如果有些童鞋单片机课程需要闭卷考试,个人建议还是老老实实去背寄存器应付考核。

阅读前的准备

    会国语读写。对不起,楼主的英文或他国语言确实比较拙计,全中文忽悠。

    会一点点c语言。这里一点点是什么意思,起码得知道一个可执行的c程序是什么结构吧。认为可以存在多个main函数的,要么是那种需要回去再看看c的童鞋,要么就是太流弊的高手,这些帖子您可以略过了。再一个,5条指令语句switch语句,if else语句,while语句,for语句,=赋值语句;7个运算符+,-,*,/,|,&,!4个逻辑关系符||,&&,!=,==3个数据类型unsigned char unsigned int unsigned long3个进制相互转化,二进制,十六进制,十进制;1void修饰词;1个一维数组code(const) unsigned char array[];这些c语言最最基础的语句必须熟悉。至于指针、指向指针的指针、指针函数、结构体、链表等等之类,可以去死去死了。当你开始考虑需要用到更多c语言功能的时候,恭喜你,进阶了。

    有一点点电路的基础。这里要求需要能够分析一些简单的电路,具备最基础的电路知识。

    有一点点策略。把拿来主义发扬光大,需要配置寄存器的时候,直接在网上或者书本上参考别人现成的配置程序是上策,查找芯片数据手册是中策,死记硬背寄存器是最最下策。能把别人的代码跑起来,并了解是如何工作的,就算解决问题。

    有一个快速运转的大脑。喝醉的、失恋的、要应付考试的……,各种脑活动异常的情况下,请绕道。


啥是51

    首先了解啥是单片机,先从文字上理解,就是单个片子构成一个机器。

    51确切来讲,属于一类体系结构,最早出现在上世纪80年代由硬件巨头Intel推出商用的MSC51。它经历了三次大跃进。

    第一次跃进。Intel授权其他公司使用51结构。PHILIPS(现在叫NXP,恩智浦)得到授权,很快大量商用于家电产品,急速扩张。不过这个时候的51是不能够直接存储可执行固件的,需要外扩可编程存储器保存运行固件,很多外围功能都需要其它硬件来支持。这个时代的51,还不能算是单片机,也许只能算是一个运算单元。

    第二次跃进。Flash Rom的出现。在51的架构上,集成了内部的FlashRAM,可执行固件可以直接烧写进单片的微控制器里面。从这里看来,51单片机慢慢的有了自己的雏形。这个时代最早、最具代表性的就是艾特梅尔的89C5x系列,不过没有丰富的外设支持,譬如编程端口,89C5x系列需要*高*压*编程(印象中应该是12v的样子)来擦写内部的Flash,使用非常不方便。但是这个时期,大量的其他厂家开始制造生产51系列单片机。

    第三次跃进。SOC的出现。SOC(system on chip,片上系统),其实和单片机有异曲同工之妙。简而言之,就是在一个内核的周围,加上丰富的定时器、UARTADIICSPI等等外部资源。这个时代,51内核外部集中了不少的硬件资源,尤其是对内部flash的编程,慢慢出现在系统编程ISP、在应用编程IAP,大大简化了开发工具。加上Philipsatmelwinbondsststc等等厂家的发力,就出现了大量具有丰富外围硬件资源或者特点非常鲜明的51单片机。

    说了这么多,其实就是一句话,51是一种内核结构,51单片机则是指具备51内核结构并集成有外部资源设备的一类微控制器。

举个和实际很贴近的例子,Andorid操作系统,大家都用过吧,免费开源,可自由定制。雷军拿来整整,就成了MIUI;老罗拿来捏捏,就变成了Smartisan OS;马云拿来和和,就变成了阿里云系统……,是不是和51单片机非常类似?So,各个厂家的51单片机特点都不一样,但是都采用了MSC51内核。

    那么,咱用什么来学51呢?综合价格、开发工具要求等因素,虽然个人比较喜欢Atmel的AT89S5x系列,但是考虑到这货编程需要特定编程器,最终还是决定使用国产STC 89C52RC,编程方便,价格便宜。



    OK,今天先到这。








资料转载于他站  仅供同学学习使用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表