企业培训_单片机入门与提高培训_第1页
企业培训_单片机入门与提高培训_第2页
企业培训_单片机入门与提高培训_第3页
企业培训_单片机入门与提高培训_第4页
企业培训_单片机入门与提高培训_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机入门与提高培训 一 学好单片机的必要性 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 f1 f 106pf1nf 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 来表示单位量 允许偏差和电阻的表示方法相同 电容器的标注方法 1 PF C PF PF 1 PF 小于1 PF的电容 其允许偏差用字母代替 电容器文字符号法示例 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堆栈特殊功能寄存器区 数据存储器的映像 第二讲C51的基础知识 C语言优点 应用广泛 单片机 dsp 嵌入式不依赖硬件 方便移植C提供了很多函数 开发效率高 故可缩短开发时间 增加程序可读性和可维护性 C 51与ASM 51相比 有如下优点 1 对单片机的指令系统不要求了解 仅要求对8051的存贮器结构有初步了解 2 寄存器分配 不同存贮器的寻址及数据类型等细节可由编译器管理 3 程序有规范的结构 可分成不同的函数 这种方式可使程序结构化 4 提供的库包含许多标准子程序 具有较强的数据处理能力 5 由于具有方便的模块化编程技术 使已编好程序可容易地移植 C51数据类型 需注意在C51编译器中int和short相同 float和double相同 数据的存储器类型 这里有个要注意的 当用sbit访问内部数据存储区的可位寻址区 则必须要有用bdata存储类型声明的变量并且是全局的 即必须有如下变量声明 intbdataibase 可位寻址的整型变量charbdataarray 4 可位寻址的字符型数组变量ibase和bary是可位寻址的 因此这些变量的每个位是可以直接访问和修改的 故可以用sbit关键字声明新的变量 来访问它们的各个位 例如 sbitmybit0 ibase 0 ibase的第0位sbitmybit15 ibase 15 ibase的第15位 C 51的包含的头文件 通常有 reg51 hreg52 hmath hctype hstdio hstdlib habsacc h C 51的运算符与C语言基本相同 加减乘除 位右移位左移 按位与按位或 按位异或按位取反 C 51的基本语句 与标准C语言基本相同 if选择语言while循环语言for循环语言switch case多分支选择语言do while循环语言 中断服务程序 函数名 interruptnusingm 函数内部实现 I O口定义 sbitbeep P2 3 其它c语言方面的知识 我们会边讲边介绍 KEILC51开发环境 结合软件讲解 第三讲基本I O的使用 51系列单片机有4组I O端口 每组端口都是8位准双向口 共占32根引脚 每个端口都包括一个锁存器 即专用寄存器P0 P3 一个输出驱动器和输入缓冲器 通常把4组端口笼统地表示为P0 P3 一 I O口的输出控制 任务一点亮一个LED灯任务二流水灯实验原理图参考开发板说明书练习1 控制8个led左右循环 作业一 P0口做通用I O输出口 控制8只发光二极管从左到右依次点亮 再依次熄灭 参考lesson1 二 I O的输出控制 独立按键的使用任务三 初始化学习板上的小灯为全灭 然后按下独立按键key1点亮led0 key2点led1 key4 led3 练习二利用独立按键来控制8个led循环亮灭的速度 按key1循环速度加 按key2循环速度减 第四讲数码管显示LED显示器是单片机应用系统中常用的输出器件 它是由若干个发光二极管组成的 当发光二极管导通时 相应的一个点或一个笔画发亮 共阴极数码管公共端接地 共阳极数码管公共端接电源 每段发光二极管需要5 10mA的驱动电流才能正常发光 一般需加限流电阻控制电流的大小 2 显示原理以共阴极为例 LED数码管的a g七个发光二极管 共阴极LED显示器的发光二极管的阴极连在一起 通常此公共阴极接地 当某个发光二极管的阳极为高电平时 发光二极管点亮 相应的段被显示 数码管字型码 数码管的显示方法可以分为两种 即静态显示和动态显示 1 LED静态显示静态显示就是当要显示某个数字时 可以通过给LED的数据引脚设置相应的高低电平即可实现显示相应数据 任务一编写程序 让开发板上的数码管显示数值0 任务二编写程序 让数码管从0 F依次循环显示 时间间隔一秒 电路图参考开发版说明书练习 编写程序 让开发板上的8位数码管先第0位显示0 其他位不显示 然后第1位显示1 每次只有1位数码管显示 按此顺序显示到7 时间间隔为1秒 2 LED动态显示所谓动态显示就是将要显示的数按显示数的顺序在各个数码管上一位一位的显示 它利用人眼的驻留效应使人感觉不到是一位一位显示的 而是一起显示的 任务三在开发板上显示12345678练习二实现从1to99计数 利用两位数码管 第5讲定时器 计数器 51系列单片机内部有两个16位可编程定时器 计数器 即定时器T0和定时器T1 定时 计数器的工作原理定时 计数器T0和T1的实质是加1计数器 即每输入一个脉冲 计数器加1 当加到计数器全为1时 再输入一个脉冲 就使计数器归零 且计数器的溢出使TCON中的标志位TF0或TF1置1 向CPU发出中断请求 只是输入的计数脉冲来源不同 把它们分成定时与计数两种功能 作定时器时脉冲来自于内部时钟振荡器 作计数器时脉冲来自于外部引脚 定时 计数器的控制与实现1 工作方式寄存器TMOD 89H 用于设置定时 计数器的工作方式 低4位用于T0 高4位用于T1 其格式如下 1 GATE 门控位 GATE 0时 当软件使TCON中的TR0或TR1设置为 1 则启动定时 计数器工作 GATA 1时 软件使TR0或TR1设置为 1 同时外部中断引脚或也为高电平时 才能启动定时 计数器工作 2 C T 定时 计数模式选择位 C T 0为定时模式 C T 1为计数模式 3 M1M0 工作方式设置位 定时 计数器有4种工作方式 由M1M0进行设置 如表所示 2 控制寄存器TCON 88H TCON的低4位用于控制外部中断 TCON的高4位用于控制定时 计数器的启动和中断申请 其格式如下 1 TF1 定时 计数器T1溢出中断请求标志位 T1计数溢出时由硬件自动置TF1为 1 在进入中断服务程序后TF1由硬件自动清 0 若用于查询方式 此位可作为状态位供查询 但应注意查询后由软件清 0 2 TF0 定时 计数器T0溢出中断请求标志位 其功能与TF1类同 3 TR1 定时 计数器T1运行控制位 TR1置 1 时 定时 计数器T1开始工作 TR1置 0 时 定时 计数器T1停止工作 TR1由软件置 1 或清 0 4 TR0 定时 计数器T0运行控制位 其功能与TR1类同 定时 计数器的工作方式51单片机定时 计数器T0有4种工作方式 方式0 1 2 3 T1有3种工作方式 方式0 1 2 方式1当M1M0为01时 定时 计数器工作于方式1 如图 方式1的计数位数是16位 由TL0作为低8位 TH0作为高8位 组成了16位加 1 计数器 计数个数M与计数初值N的关系为M 216 N 用于定时功能时 定时时间t的计算公式为 t M 机器周期 216 N 机器周期若晶振频率为12MHz 机器周期 1 初值N 0 65535范围时 则可定时范围为1 65 536ms 用于计数功能时 初值N 0 65535范围时 计数范围为1 65536 任务3 1利用定时器方式1 小灯以1s闪亮 亮时 蜂鸣器以20hz的频率鸣叫 练习3 1利用定时器实现1s定时 控制led小灯1S循环 第六讲中断系统 中断是计算机中是很重要的一个概念 中断系统是计算机的重要组成部分 中断源51单片机共有5个中断源 外部中断0 外部中断1 定时 计数器中断0 定时 计数器中断1 串行口中断 每个中断源对应一个固定的中断入口地址 当某中断源的中断请求被CPU响应之后 CPU从中断入口处获取中断服务程序的入口地址 进入相应的中断服务程序 各中断源入口地址及优先级如表6 2所示 图6 12为51中断系统结构示意图 最低级 一 中断请求标志1 TCON的中断标志IT0 TCON 0 外部中断0触发方式控制位 当IT0 0时 为电平触发方式 当IT0 1时 为边沿触发方式 下降沿有效 IE0 TCON 1 外部中断0中断请求标志位 中断控制 IT1 TCON 2 外部中断1触发方式控制位 IE1 TCON 3 外部中断1中断请求标志位 TF0 TCON 5 定时 计数器T0溢出中断请求标志位 TF1 TCON 7 定时 计数器T1溢出中断请求标志位 2 SCON的中断标志 RI SCON 0 串行口接收中断标志位 当允许串行口接收数据时 每接收完一个串行帧 由硬件置位RI 同样 RI必须由软件清除 TI SCON 1 串行口发送中断标志位 当CPU将一个发送数据写入串行口发送缓冲器时 就启动了发送过程 每发送完一个串行帧 由硬件置位TI CPU响应中断时 不能自动清除TI TI必须由软件清除 1 中断允许控制CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的 二 中断的控制 EX0 IE 0 外部中断0允许位 ET0 IE 1 定时 计数器T0中断允许位 EX1 IE 2 外部中断0允许位 ET1 IE 3 定时 计数器T1中断允许位 ES IE 4 串行口中断允许位 EA IE 7 CPU中断允许 总允许 位 PX0 IP 0 外部中断0优先级设定位 PT0 IP 1 定时 计数器T0优先级设定位 PX1 IP 2 外部中断0优先级设定位 PT1 IP 3 定时 计数器T1优先级设定位 PS IP 4 串行口优先级设定位 PT2 IP 5 定时 计数器T2优先级设定位 单片机的中断优先级有3条原则 CPU同时接受到几个中断时 首先响应优先级别最高的中断请求 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断 正在进行的低优先级中断服务 能被高优先级中断请求所中断 中断响应的条件CPU中断响应的条件是 中断源有中断请求此中断的中断允许位为1CPU开总中断同时满足这3个条件时 CPU才有可能响应中断 任务4 1利用定时器中断方式 来实现任务3 1的功能 练习4 1利用定时器中断方式 来实现练习3 1的功能 练习4 2同时用两个定时器控制蜂鸣器发声 定时器0控制频率 定时器1控制同个频率持续的时间 间隔2s依次输出1 10 50 100 200 400 800 1k hz 的方波 设晶振频率为12MHz 练习4 3中断的嵌套 开机1S后 蜂鸣器响 然后按外部中断按键 使蜂鸣器停止响一段时间后再响 串行通信 51系列单片机的串行口占用P3 0和P3 1两个引脚 是一个全双工的异步串行通信接口 可以同时发送和接受数据 P3 0是串行数据接收端RXD P3 1是串行数据发送端TXD 51单片机串行接口的内部结构如图6 30所示 图6 30串行口结构示意图 1 串行接口控制寄存器SCON 98H 用于控制串行接口的工作状态 其格式如下 串行口相关寄存器 电源控制寄存器PCON 97H 其中只有1位SMOD与串行接口工作有关 格式如下 SMOD 波特率系数控制位 在串行接口方式1 方式2 方式3时 波特率与SMOD有关 当SMOD 1时 波特率加倍 否则不加倍 复位时 SMOD 0 PCON的地址为97H 不能位寻址 需要字节传送 表常用波特率 晶振频率与定时器 T1 的参数关系 任务5 1单片机在按键的控制下发送一组数据 PC机接收 利用串行口调试助手查看结果任务5 2PC机发送 单片机接收数据 将数据通过数码管显示 按键接口原理及应用 列线通过电阻接正电源 并将行线所接的单片机I O端口作为输出端 而列线所接的I O端口则作为输入端 当按键没有按下时 所有的输出端都是高电平 代表无键按下 行线输出是低电平 一旦有健按下时 则输入线就会被拉低 这样 通过读入输入线的状态就可得知是否有健按下了 常用的键识别方式有 行扫描法 线翻转法 中断法 行扫描法将全部行线置低电平 然后检测列线的状态 只要有一列的电平为低 则表示键盘中有键被按下 而且闭合的键位于低电平线与4根行线相交叉的4个按键之中 若所有列线均为高电平 则键盘中无键按下 判断闭合键所在的位置 方法 依次将行线置为低电平 即在置某根行线为低电平时 其它线为高电平 在确定某根行线位置为低电平后 再逐行检测个列线的电平状态 若某列为低 则该列线与置为低电平的行线交叉处的按键就是闭合的按键 这里咱们采用翻转法 任务6 1利用数码管显示键值 IIC总线 IIC总线是PHILIPS公司推出的串行总线 它是一种简单 双向二线制同步串行总线 它只需要两根线即可在连接于总线上的器件之间传送信息 IIC总线数据的通信协议 1 IIC接口IIC总线的串行数据线SDA和串行时钟线SCL必须经过上拉电阻Rp接到正电源上 当总线空闲时 SDA和SCL必须保持高电平 2 起始和终止信号对IIC器件的操作总是从一个规定的 启动 Start 时序开始 即SCL为高电平时 SDA由高电平向低电平跳变 开始传送数据 信息传输完成后总是以一个规定的 停止 Stop 时序结束 即SCL为高电平时 SDA由低电平向高电平跳变 结束传送数据 时序图如图8 11 起始信号和终止信号都是由主机发出的 在起始信号产生后 总线就处于被占用的状态 在终止信号产生一段时间后 总线就处于空闲状态 图8 11起始 停止时序 在进行数据传输时 SDA线上的数据必须在时钟的高电平周期保持稳定 数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变 如图8 12所示 图8 12数据传输时序 3 字节数据传送及应答信号IIC总线传送的每个字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论