- 1.77 MB
- 2022-06-09 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
睿思电子科技Rays_ele(光芒电子)单片机学前班该教程只适合单片机初学者,高手就不要看了!一.什么是单片机?用它能干啥?大多数想学单片机的人都见过芯片(俗称集成块)吧,随便打开一个电脑主机,内部可以见到很多密密麻麻的芯片,一般电子产品中都有很多芯片,有的多达上百种芯片。这些芯片各自完成自己的工作(如CD4069完成信号的反向,LM386完成音频电信号的放大等),但是这些芯片有个特点,就是功能已经定型!大部分芯片在出厂的时候功能已经定型了,不可以再更改,我们管这种芯片称呼为“先天功能型”的,而这里说到的单片机就不同了,他同样是一块芯片,但是功能可以后天定制,所实现的功能是后天烧写的程序代码所决定的,属于“后天功能型”的。具体如何工作,就要靠我们对单片机如何编程了。图1众多芯片为什么单片机可以执行程序呢,而别的芯片不行?\n睿思电子科技Rays_ele(光芒电子)这要说到单片机的内部执行机理了,我们都知道电脑可以运行程序,电脑硬件是由中央处理器CPU、内存、硬盘、输入输出等组成,可以运行计算机软件(其实就是一条条指令码),单片机与之类似,也是由CPU(中央处理器)、RAM(内存)、FLASH存储器(硬盘)、IO接口(输入输出)组成。只不过单片机一般主频都很低(几Mhz到几十Mhz),RAM和FLASH也比较小,不适合跑大型程序。你要非说让单片机跑Windows,那我就没辙了,电脑才可以运行Windows这种大型应用系统,而单片机一般运行几KB到几十KB的程序代码,偶尔也有单片机运行UC/OS实时操作系统(意义上和Windows一样的,将CPU多任务化)。我们拿到单片机可以做什么呢?说到单片机用途,那可是太广泛了,只是我们平时忽视了单片机的存在,现代人类生活中所用的几乎每件和电子相关的产品中都会找到单片机。电动自行车、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多!这么一个庞大的“种族”,我们如果学会为己所用,那种成就感,呵呵!相信不少人动心了吧Y(^_^)Y图2单片机在汽车上应用二.单片机有哪些种类?我们该学习哪种呢?\n睿思电子科技Rays_ele(光芒电子)我们小时候玩过的任天堂游戏机(当时我们都叫红白游戏机),那个就是8位单片机系统,稍后出来的世嘉游戏机,采用了16位单片机系统,玩过世嘉游戏机的都知道,世嘉游戏机明显比红白机好玩多了,无论是游戏规模上还是画质上都更胜一筹!这就是单片机处理性能的差别。早期大多数单片机是8位机甚至4位机,其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数十倍。简单列举几种常见单片机如下:STC单片机,STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,PWM,双串口,有全球唯一ID号,加密性好,抗干扰强,支持串口下载程序。 图3STC单片机\n睿思电子科技Rays_ele(光芒电子)PIC单片机,是MICROCHIP公司的产品,其突出的特点是体积小,功耗低,精简指令集,抗干扰性好,可靠性高,有较强的模拟接口,代码保密性好,大部分芯片有其兼容的FLASH程序存储器的芯片。图4PIC单片机ATMEL单片机,ATMEl公司的8位单片机有AT89、AT90、AVR三个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,AT90和AVR系列单片机是增强RISC结构、在线可编程(俗称ISP下载)Flash的单片机。ATMEL还有32位单片机AVR32,性能介于单片机和DSP(数字信号处理器)之间,在运算和控制双重领域内性能都很不错,在国外迅速大规模应用。图5AVR单片机\n睿思电子科技Rays_ele(光芒电子)既然要学单片机,就要拿最广泛、资料最多的来学,千万不要为了赶时髦,直接拿高级单片机学习,这也是初学者最容易犯的一个错误!51单片机不但没过时,反而应用最广,它并没有被高级单片机取代。如果一开始就拿STM32(高级单片机一种)来学习,很可能会掉进知识的深渊从而打消学习单片机的积极性。再者,单片机系统开发水平的高低不单单看单片机功能的强弱,还要看程序的质量和效率,往往一段很烂的代码跑在STM32上还没有一段高质量程序跑在AVR上效果好!最后一点,单片机系统设计选择上单片机够用就行!不要盲目使用复杂单片机(越高级往往主频高对外围干扰大、系统复杂、对PCB板要求越高)。我们这里推荐学习STC的51单片机,因为这种单片机很好买,价格较低,开发工具自制容易、入门简单、兼容8051标准单片机。在很长一段时间内,51还是主流!等学会了51单片机,再转头学其他单片机的时候,你会发现单片机都一样!只不过指令变了变(c语言开发各种单片机都是通用的,不同就是寄存器名字)、资源模块变了变而已。因为单片机原理都是相同的,就好比你学会儿了骑自行车,再去骑山地车、摩托车一样。当然,开飞机就好比学ARM,是另一套思路了。Y(^_^)Y三.学习单片机需要哪些工具?既然我们确定了学习STC51单片机,那么硬件开发工具就是首要解决问题了。单片机开发需要“PC+单片机下载器+单片机系统板”三大部分,首先需要一台PC,配置一般就可行。当然了,再需要一块完整的单片机系统电路,可以是单片机最小系统(单片机+电源电路+时钟电路+复位电路)。也可以是单片机开发板,我们用电脑写好的程序经过编译后生成机器码,需要将机器码烧写到单片机里边才可以看到程序具体执行结果,这就需要一个单片机下载器(俗称编程器)了。无论是简单单片机还是复杂的,都需要这么个过程。(这里说一下,很多单片机开发板都兼有单片机下载器和单片机系统两部分,不需另配下载器Y(^_^)Y)。\n睿思电子科技Rays_ele(光芒电子)\n睿思电子科技Rays_ele(光芒电子)其次是软件开发工具了。硬件搭建完毕后就得在PC上安装编程软件。这里首推uVisionKeilfor51,这个软件的资料最多,上手很快!当然也有些其他51编程软件比如IAR、伟福等,也是很好上手的,但是资料不如第一种多。有人可能问,如果我没有单片机硬件环境,可以学习单片机吗?这是可以的!有款单片机仿真软件很不错,Proteus,这款软件可以画单片机系统电路,也可以模拟单片机程序运行,很方便的,不过不如硬件电路带给您的印象深。好了,到这里,是不是对单片机开发环境有个大致了解了?图7Keil4开发环境四.学习单片机需要预备哪些知识?该如何开发?要学习单片机,要有基本电路知识和数字电路基础,同时还要有C语言基础或汇编语言基础。这是必备条件。当然有模拟电路基础的人更好。总体来说,门槛不高,大部分来电子信息、计算机工程、机械电子专业的都将前面说的必备条件作为基础课程了,所以学习单片机也是举手之劳的事情。邓爷爷有句名言:实践是检验真理的唯一标准。学单片机只编程不行,单单看书更不行,必须得做实验!也不提倡“先把理论学扎实,再实践”\n睿思电子科技Rays_ele(光芒电子),单片机不同于别的学科,在没有实践的前提下理论是很难理解的深入的。我学习单片机用的是3分理论+7分实践。一定要多做实验,用真实的硬件实验结果来强化记忆,多做硬件多编程,把程序和硬件现象联系起来,这样才能真正掌握单片机,有很多时候你会发现编程时想的是一种结果,而实际在单片机上跑起来却不是这么个事儿,这就需要仔细推敲代码该如何改正了,单单学习理论是无法遇到这种问题的。当你可以编写程序并且看到它在开发板上运行正确时,那时的喜悦真的是没办法表述的。前边已经说过了学习单片机必须搭建软硬件环境,这里说说具体搭建过程,我们选用STC单片机,具体步骤如下:4.1:安装Keil软件1.双击Keil4for51安装程序图标2.弹出如下对话框3.点击Next>>\n睿思电子科技Rays_ele(光芒电子)4.勾选Iagreetoall。。。。后点击Next>>后出现安装路径5.填写信息,这里随便填写就行6.开始正式安装7.最后点击finish按钮\n睿思电子科技Rays_ele(光芒电子)到此,我们就安装好Keil了,软件破解后才能用,破解里边有步骤。4.2:安装STC下载软件和驱动1.我们到STC官网上去下载STC_ISP4.80(单片机下载软件)。网址STC官网找到这里(win7一定要安装stcisp4.80安装版,不要绿色版,版本不是越高越好,经笔者测试,4.80版本相对稳定)2.双击setup图标3.出现安装界面4.点击确定后选择路径5.开始安装,中间可能会提示几处冲突,点击“忽略”即可\n睿思电子科技Rays_ele(光芒电子)6.安装成功7.接下来安装下载器驱动了,由于STC单片机是通过串口下载程序的!如果是台式机可以通过自带的串口来下载程序,就免去了安装驱动的过程,但如果是本本的话,一般不带串口,需要安装USB转串口驱动了!驱动最丰富的USB转串口是PL2303了,主流操作系统乃至嵌入式linux,wince都支持,下面是PL2303驱动安装步骤:从prolific官网(http://www.prolific.com.tw/eng/downloads.asp?ID=31)找到最新驱动PL2303V1.3.0全面支持winxp及以上版本(包含win7),双击安装程序图标8.弹出如下对话框,点击下一步\n睿思电子科技Rays_ele(光芒电子)9.等待安装完成10.连接USB转串口线,(如果是Cool51开发板,请通过USB数据线连接核心板和电脑),在我的电脑图标上右击选择“管理”,设备管理器里边出现如下串口!11.至此,驱动安装完成。五.选用什么样的开发板?现在市面上51单片机的开发板可谓是琳琅满目,数不胜数。众多的开发板让新手选择尤为费心,往往一山望着一山高,不知选择。有些动手能力强的爱好者推荐自己搭焊电路,这样可以练到很多焊接和电路设计的知识,当然很多学生想快速学会单片机以及快速学会经典单片机外围电路设计,可以选用成型的51开发板。初学者一定要选择全模块化的开发板,这种开发板的电路连接如同搭积木一样很灵活,有极强的扩展性和学习性,这类开发板虽然做实验时候稍微麻烦一些需要连很多杜邦线,但是这样可以真正学会单片机外围电路的设计知识以及如何和单片机连接,很多非模块化的开发板跑例程看似很方便,但原理图让谁也望而却步,其实电路本该很简单的,非模块化的会将原理图大幅度复杂化,不适合初学者学习!\n睿思电子科技Rays_ele(光芒电子)笔者也有学习单片机的痛苦经历,特此献上一款功能全面、价格适中的单片机学习板-Cool51开发板,希望可以在单片机学习道路上住您一臂之力。该开发板功能极其全面!除了一般开发板都具备的功能外(12864,1602,步进,红外,ad,da,数码管,按键,蜂鸣器,等等),该开发板另外有很多特色功能!!!:★:核心板+底板,方便进行二次开发,核心板本是独立最小系统!★:全模块化,这是普通开发板根本不可比的,这种才让您学到单片机电路设计知识!★:核心板板载USB转串口和自动冷启动电路,下载程序全自动!★:板载MP3开发功能(VS1003),多少人想着给女友做个MP3呢,其实很简单Y(^_^)Y!★:板载收音机功能(5767),轻轻聆听电台广播!★:SD卡,学习文件系统fat32,做电子相框必备!★:单片机每个IO口都有对应高亮LED显示,特别适合初学者学习单片机IO口!★:TFT真彩屏显示,让性价比不好的12864彻底下岗!★:PWM型DA转换,创新类型DA!★:8*16点阵,此电路是标准大屏幕595驱动电路,绝非普通IO口驱动,让您彻底掌握大屏幕显示原理!★:核心板上有触摸按键功能,电容按键触摸,学习电容触屏原理!★:二极管测温电路原理!★:光电耦合器电路原理!★:555多谐振荡器原理!★:AD配合彩屏做的示波器!★:板载通用扩展接口,无限扩展应用(超声波模块,无线数传模块、网络········)!整版图片:\n睿思电子科技Rays_ele(光芒电子)\n睿思电子科技Rays_ele(光芒电子)核心板特别方便用于二次开发!这是其他开发板根本没有的功能,以下是一电子爱好者用于小车的图片:\n睿思电子科技Rays_ele(光芒电子)说说“下载自动冷启动”,这是STC单片机的下载方式,平时可能您见过的51单片机开发板下载都是用串口配合电源开关来完成的,有些开发板上虽然板载了简易的自动冷启动电路,但都是靠第三方软件配合继电器来完成的,第三方软件兼容性本身有问题,继电器也容易损坏。本开发板采用了监控cpu和mos管来协调完成冷启动,无噪音!寿命长,兼容性好,下载程序使用官方软件即可!核心板还可以使用标准的ATMEL的89S51、89S52来开发,也可以经过少量改动支持AVR单片机(MEGA162),只不过此类单片机烧写程序需要ISP接口支持(核心板已集成该接口),需要另外配置单片机编程器了(最常用的是USBASP)。六.结语学习单片机是一个发现快乐的过程,每次调试出程序都会给你带来很多成功的喜悦。这里我将带大家一点一点来剖析单片机,让您能轻松玩转单片机。