单片机入门与提高培训一、学好单片机的必要性•1、从就业角度•目前各电子公司都离不开单片机设计者,需求较大,就业率高。•2、从学习知识本身•单片机是专业课里的基础课,是培养软硬件设计基础最合适的一门技术。学好单片机有利于以后较复杂课程的学习,比如,嵌入式系统、dsp、fpga等课程。二、学好单片机的基础条件•1、兴趣第一,具备学习电子技术的兴趣是学好单片机的最重要的条件,基础差可以从头开始一点点弥补,脑子笨可以靠勤奋弥补,没有钱买学习工具可以从嘴里省,但没有兴趣只能劝你换个方向了,毕竟你已过了培养兴趣的时期了。•2、坚持,学习中不可避免的要碰到困难,有的同学学好了,他可以享受其中的快乐;有的同学没学好,他在怀疑自己的智商,世上无笨人,一句话“缺乏坚持”。三、学习单片机的几点建议•1、要有一些必备学习工具:电脑(配置不用太高)、学习板(单片机开发板)、焊接工具。•2、要掌握一门语言,汇编语言或C语言都行,推荐使用C语言。•3、熟练使用一种编译软件,推荐KeilC。•4、会用一种电路图和PCB设计工具,推荐protel。•5、好好利用网络资源,尽可能自己解决问题,这也是提高自学能力的一种方法。•6、要舍得在学习上投入时间、精力、钱,少上几次网吧,少吃几样零食,剩下的钱就可以买很多元器件,一年的零花钱够买好几块开发板了。记住买这些不是乱花,这是投资,它的回报率是最高的。本次培训使用的开发板参考书•单片机原理与实例应用万隆主编清华大学出版社2011年1月•单片原理及应用技术万隆、巴奉丽主编清华大学出版社2010年3月•学习C语言的好书:•CPrimerPlusStephenPrata著人民邮电出版社•本次培训要达到的目标:•能够熟悉单片机的内部结构和工作原理•能够熟练掌握单片机常用的外围电路的使用•能够熟悉常用的总线协议的应用•能够熟悉单片机开发环境和调试过程•能够熟练掌握C语言的编程方式一、常用电子元件基础知识•一、电阻器基础知识•电阻器是电路元件中应用最广泛的一种,主要用途是稳定和调节电路中的电流和电压,其次还作为分流器分压器和负载使用。•1.分类在电子电路中常用的电阻器有固定式电阻器和电位器。•按制作材料和工艺不同,固定式电阻器可分为:膜式电阻(碳膜RT、金属膜RJ、合成膜RH和氧化膜RY)、实芯电阻(有机RS和无机RN)、金属线绕电阻(RX)、特殊电阻(MG型光敏电阻、MF型热敏电阻)四种。•碳膜电阻器•气态碳氢化合物在高温和真空中分解,碳沉积在瓷棒或者瓷管上,形成一层结晶碳膜。改变碳膜厚度和用刻槽的方法变更碳膜的长度,可以得到不同的阻值。碳膜电阻成本较低,性能一般。•金属膜电阻•在真空中加热合金,合金蒸发,使瓷棒表面形成一层导电金属膜。刻槽和改变金属膜厚度可以控制阻值。这种电阻和碳膜电阻相比,体积小、噪声低、稳定性好,但成本较高。•电位器•电阻的参数•额定功率:在规定的环境温度和湿度下,假定周围空气不流通,在长期连续负载而不损坏或基本不改变性能的情况下,电阻器上允许消耗的最大功率。•一般选其额定功率比它在电路中消耗的功率高1-2倍。额定功率分19个等级,常用的有0.05W、0.125W、0.25W、0.5W、1W、2W、3W、5W、7W、10W•标称阻值:产品上标示的阻值,其单位为欧,千欧、兆欧,标称阻值都应符合下表所列数值乘以10N欧,其中N为整数。•允许误差:电阻器和电位器实际阻值对于标称阻值的最大允许偏差范围,它表示产品的精度,允许误差的等级如下表所示。•电阻器的在电路中的参数标注方法有3种,即直标法、色标法和数标法。•a、直标法是将电阻器的标称值用数字和文字符号直接标在电阻体上,其允许偏差则用百分数表示,未标偏差值的即为±20%.如4.7K。•b、数码标示法主要用于贴片等小体积的电路,在三为数码中,从左至右第一,二位数表示有效数字,第三位表示10的倍幂或者用R表示(R表示0.)•如:472表示47×102Ω(即4.7KΩ);104则表示100KΩ•R22表示0.22Ω•122=1200Ω=1.2KΩ•1402=14000Ω=14KΩ•R22=0.22Ω、17R8=17.8Ω、000=0Ω、0=0Ω.•c、色环标注法使用最多,普通的色环电阻器用4环表示,精密电阻器用5环表示,紧靠电阻体一端头的色环为第一环,露着电阻体本色较多的另一端头为末环。电容•电容器是一种储能元件,在电路中用于调谐、滤波、耦合、旁路、能量转换和延时。电容器通常叫做电容。•常用电容的结构和特点•铝电解电容•它是由铝圆筒做负极,里面装有液体电解质,插入一片弯曲的铝带做正极制成。还需要经过直流电压处理,使正极片上形成一层氧化膜做介质。它的特点是容量大,但是漏电大,误差大,稳定性差,常用作交流旁路和滤波,在要求不高时也用于信号耦合。电解电容有正、负极之分,使用的时候,正负极不要接反•陶瓷电容•用陶瓷做介质,在陶瓷基体两面喷涂银层,然后烧成银质薄膜做极板制成。•它的特点是体积小,耐热性好、损耗小、绝缘电阻高,但容量小,适宜用于高频电路。铁电陶瓷电容容量较大,但是损耗和温度系数较大,适宜用于低频电路。•钽、铌电解电容•它用金属钽或者铌做正极,用稀硫酸等配液做负极,用钽或铌表面生成的氧化膜做介质制成。它的特点是体积小、容量大、性能稳定、寿命长、绝缘电阻大、温度特性好。用在要求较高的设备中。•电容器的容量单位•电容量的单位是法拉(F),简称法。通常法的单位太大,常用它的百万分之一作单位,称为微法(μF),更小的单位是皮法(pF),它们之间的关系是•1f=106μf•1μf=106pf•1nf=103pf•通常在容量小于10000pF的时候,用pF做单位,大于10000pF的时候,用uF做单位。二、电容的主要参数(1)标称容量是指电容两端加上电压后它能储存电荷的能力。储存电荷越多,电容量越大:反之,电容量越小。标在电容外部上的电容量数值称电容的标称容量。•常用固定电容的标称容量系列•(2)额定耐压值是表示电容接入电路后,能连续可靠地工作,不被击穿时所能承受的最大直流电压。使用时绝对不允许超过这个电压值,否则电容就要损坏或被击穿。一般选择电容额定电压应高于实际工作电压的10%~20%。如果电容用于交流电路中,其最大值不能超过额定的直流工作电压•(3)允许误差,即:士5%、士10%、士20%,或写成I级、II级、III级。有的电解电容的容量误差可能大于20%。电容器的标注方法•1.直标法:电容器的直标法与电阻器的直标法一样,在电容器外壳上直接标出标称容量和允许偏差。还有不标单位的情况,当用整数表示时,单位为pF;用小数表示时,单位为μF。举例:2200为2200pF。0.056为0.056μF•有时用小于四位数表示标称容量,如22为22pF直标法示例•2.色标法顺着引线方向,第一、二环表示有效值,第三环表示倍乘。也有用色点表示电容器的主要参数。电容器的色标法与电阻相同。3.文字符号法:采用单位开头字母(P、n、μ、m、F)来表示单位量,允许偏差和电阻的表示方法相同。电容器的标注方法B——±0.1%PF,C——±0.2%PF,D——±0.5%PF,F——±1%PF小于10PF的电容,其允许偏差用字母代替:电容器文字符号法示例电容量标注方法电容量标注方法0.1pFp11μF1μ0.59pFP595.9μF5μ91pF1p33μF33μ5.9pF5p9590μF590μ100pF100p1000μF1m1000pF1n5900μF5m93300pF3n333×103μF33m5900pF5n9590×103μF590m59000pF59n1F1F330000pF330n3.3F3F3590000pF590n5.9F5F9•4.数码法:是用三位数来表示标称容量,再用一个字母表示允许偏差,如104、103等。电容器的标注方法贴片薄膜电容前两位数是表示有效值,第三位数为倍乘,即10的多少次方。对于非电解电容器,其单位为pF,而对电解电容器而言单位为μF。电容器数码法举例•标称100的电容容量为10×100=10pF.•标称223的电容容量为22×103=22000pF=0.022μF•电解电容100容量为10×100=10μF•电解电容010容量为01×100=1×100=1μF•标称229的电容容量为22×10-1=2.2pF这种表示法的容量范围仅限于1.0~9.9pF单片机•什么是单片机?在一片集成电路芯片上集成微处理器、存储器、I/O接电路,从而构成了单芯片微型计算机,即单片机51单片机的内部结构图•CPU:•中央处理器包括运算器和控制器两部分电路•运算器是由算数逻辑单元、累加器A、寄存器B、暂存器(TEMP)、程序状态寄存器(PSW)组成。•控制器是由指令寄存器IR、指令译码器ID、程序计数器PC、数据指针DPTR、堆栈指针SP、RAM地址寄存器、时钟发生器以及控制逻辑组成的。•存储器:•51系列单片机的ROM和RAM是截然分开、分别寻址的结构,称为哈佛结构,CPU会用不同的指令访问不同的存储器空间。•I/O接口•1.并行接口•2.串行接口:P3.0串行接口输入端和P3.1串行接口输出端•引脚分布•如何让它工作?最小系统•电源、地•时钟电路:–内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。•可以了解一下时序–一个节拍的宽度实际上就等于一个振荡周期;一个状态包括两个节拍;一个机器周期由6个状态周期组成。•复位电路•参考最小系统电路•程序存储器:•复位:0000H和几个中断入口地址(p18)•数据存储器:•工作寄存器区(R0---R7)00H---1FH•位寻址区20H—2FH•堆栈•特殊功能寄存器区0区1区2区3区R7…R0R7…R0R7…R0R7…R000H08H10H18H20H位寻址区30H仅52子系列有特殊功能寄存器通用RAM区7FH80H80HFFHFFH工作区寄存器片外RAM可寻址空间0000HFFFFH数据存储器的映像第二讲C51的基础知识•C语言优点:•应用广泛:单片机、dsp、嵌入式•不依赖硬件,方便移植•C提供了很多函数,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。C-51与ASM-51相比,有如下优点:1.对单片机的指令系统不要求了解,仅要求对8051的存贮器结构有初步了解;2.寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理;3.程序有规范的结构,可分成不同的函数,这种方式可使程序结构化;4.提供的库包含许多标准子程序,具有较强的数据处理能力;5.由于具有方便的模块化编程技术,使已编好程序可容易地移植;•C51数据类型数据类型长度取值范围字符型[signed]char1Byte-128~+127unsignedchar1Byte0~255整型[signed]int2Bytes-32768~+32767unsignedint2Bytes0~65535长整型[signed]long4Bytes-2147483648~+2147483647unsignedlong4Bytes0~4294967295浮点型float4Bytes±1.175494E-38~±3.402823E+38指针型*1~3Bytes对象的地址位型bit1bit0或1sbit1bit0或1访问SFRsfr1Byte0~255sfr162Bytes0~65535需注意在C51编译器中int和short相同,float和double相同•数据的存储器类型•这里有个要注意的:•当用sbit访问内部数据存储区的可位寻址区,则必须要有用bdata存储类型声明的变量并且是全局的,即必须有如下变量声明:•intbdataibase;//可位寻址的整型变量•charbdataarray[4];//可位寻址的字符型数组•变量ibase和bary是可位寻址的,因此这些变量的每个位是可以直接访问和修改的,故可以用sbit关键字声明新的变量,来访