1 / 170

单片机原理与应用

单片机原理与应用. 创新实验学院 杜 猛. 课程特点. 涉及内容多,讲课学时少( 16 学时) 1. 技术专题式讲解,不按部就班面面俱到 2. 自学为主,讲课内容作为提纲、框架 技术性强,不易掌握 多动手,重视实验环节,以实践验证理论 需要多种技术辅助 数电 / 模电 /C 语言等等,兴趣驱动,勤加学习,形成完善的知识体系. 考核办法. 平时成绩 上课及实验环节的出勤率 创新实践记录册 期中、期末考核成绩 作品完成情况:以二人小组形式完成 2 个实践课题 设计报告:每个实践课题 每人 上交一份设计报告,同组二人各有分工,报告 不能雷同 注意事项

aretha-knox
Download Presentation

单片机原理与应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 单片机原理与应用 创新实验学院 杜 猛

  2. 课程特点 • 涉及内容多,讲课学时少(16 学时) 1. 技术专题式讲解,不按部就班面面俱到 2. 自学为主,讲课内容作为提纲、框架 • 技术性强,不易掌握 多动手,重视实验环节,以实践验证理论 • 需要多种技术辅助 数电/模电/C语言等等,兴趣驱动,勤加学习,形成完善的知识体系

  3. 考核办法 • 平时成绩 • 上课及实验环节的出勤率 • 创新实践记录册 • 期中、期末考核成绩 • 作品完成情况:以二人小组形式完成2个实践课题 • 设计报告:每个实践课题每人上交一份设计报告,同组二人各有分工,报告不能雷同 • 注意事项 • 按时参加实践活动,迟到、早退均做旷课处理 • 请假必须通过任课教师,助管无权准假 • 仔细阅读学院网站的《成绩评定办法》 • 核对本人的选课信息

  4. 课程安排 • 51单片机基本概念 • C51语言编程 • 中断系统 • I/O端口 • 定时/计数器 • 串行通信 • 电机驱动专题 • 电子大赛控制类题目研讨

  5. 推荐学习资源 • 任意一本51单片机教材 • 《单片机原理及其接口技术》清华 胡汉才 • 《单片机技术基础教程与实践》电子工业出版社 • 《平凡的单片机教程》平凡单片机工作室http://www.mcustudio.com/ • 《单片机的C语言应用程序设计》北航 马忠梅 • AT89S51 datasheet • KeilHelp

  6. 种类繁多的单片机

  7. 什么是单片机(MCU) • 将微处理器(CPU)、数据存储器、程序存储器、I/O接口电路和相应的实时控制器件集成在一块芯片上,形成一个单芯片的微型计算机,称为单片机,也称微控制器(MCU)。 • 单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上 • 想想PC的结构,CPU、内存、硬盘,以及键盘、鼠标、显示器等输入/输出设备。 • 二者组成结构类似,差别在体积、性能、价格,这也决定了其不同的用途。

  8. 单片机的特点 • 功能强:可编程,实时性好 • 体积小,功耗低 • 可靠性高:高度集成,大量数据都在芯片内部传送 • 开发方便:外围电路简单,资料丰富 • 价格低廉,性价比高 • 研制周期短,易产品化

  9. 单片机的用途 • 特点决定其应用量大面广 • 工业控制:数控机床,汽车电子 • 智能仪表:数字存储示波器,数字煤气表 • 医疗设备:CT机,血液分析仪,病人监测仪 • 办公自动化:打印机,扫描仪,复印机 • 家用电器:全自动洗衣机,空调,智能家居设备 • 消费电子:DC,MP3,PSP • 通信系统:手机,基站,GPS,路由器 • 军事国防

  10. 旋转LED显示

  11. Home Built Laser Projector

  12. Real-Time Optical Scanning of Sheet Music

  13. 主流单片机 • 8051 最普及,多种新型高性能51 • MSP430 低功耗,抗干扰,工业仪表 • AVR RISC,高速,高可靠性 • PIC 体积小,抗干扰,成本低 • Freescale 产品线丰富,汽车电子 • ARM 32位,高性能,外设丰富

  14. AT89S51实物

  15. 时钟源 T0 T1 时钟电路 SFR和RAM ROM 定时/计数器 系 统 总 线 CPU 并行端口 串行端口 中断系统 TXD RXD P0 P1 P2P3 INT0 INT1 51单片机的基本结构 • 一个8位微处理器(CPU) • 数据存储器RAM和特殊功能寄存器SFR • 内部程序存储器ROM • 两个定时/计数器,用以对外部事件进行计数,也可用作定时器。

  16. 时钟源 T0 T1 时钟电路 SFR和RAM ROM 定时/计数器 系 统 总 线 CPU 并行端口 串行端口 中断系统 TXD RXD P0 P1 P2P3 INT0 INT1 51单片机的基本结构 • 四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出 • 一个串行端口,用于数据的串行通信 • 中断控制系统 • 内部时钟电路

  17. 小知识:常见存储器类型 • ROM:非易失的存储器,即断电后数据不丢失 • Mask ROM 掩膜,工厂烧录,无法改写 • PROM 一次编程(OTP) • EPROM 紫外线擦除,高电压编程 • E2PROM 电擦除,以字节为单位修改 • Flash容量大,NAND/NOR • RAM:易失的存储器,即断电后数据丢失 • SRAM 静态,速度快,容量小,价格高 • DRAM 动态,容量可以做得很大,需要刷新逻辑

  18. 寄存器 • 寄存器是CPU内部一种高速的数据存储单元。 • 用途: • 对寄存器内数据执行算术及逻辑运算 ADD ACC, #0xFF // ACC寄存器存储的数据加上255 • 对存储单元进行寻址(寄存器寻址,寄存器间接寻址,变址寻址等) MOV A, @R1 // 以R1寄存器中的数据作为地址,将该 地址中保存的数据放到ACC中。 • 读取、控制外围设备的工作状态 SBUF = 0xFF; // 让单片机通过串口发送数据0xFF while(TI != 1); // 查询中断中断寄存器,以判断数据是否 发送完毕

  19. 51中的重要寄存器 • PC:程序计数器,存放下一条需要执行的指令的内存地址,能自动加1。16位,寻址64KB。 • ACC:累加器,最常用的寄存器,大部分指令的操作数取自ACC,存放算术运算的结果,大部分的数据存取操作等。 • SP:堆栈指针。保存当前栈顶地址,8位。 • PSW:程序状态字,存放上一条指令执行后的有关状态。 • 加减法运算中是否产生了进位、借位 • 计算结果是否产生了溢出 • 除法运算中是否误将零作除数 • DPTR:数据指针,16位。 • 若干用于控制外设的寄存器,将在今后逐一讲解。

  20. 小知识:认识堆栈 • 堆栈是一种按“先进后出,后进先出”规律存取数据的内存区域。 • 用来保存函数返回地址,保护现场等。 • 向上生长:栈顶向高地址方向生长。 向下生长:栈顶向低地址方向生长。 • 满堆栈:栈指针指向最后压入堆栈的有效数据项。 空堆栈:栈指针指向下一个要放入的空位置。 • 8051系列单片机为向上生长的满堆栈。

  21. 程序存储器 • 存放用户程序、数据、查找表等信息 • 51可寻址64KB地址空间,AT89S51片内有4KB Flash • 复位后程序计数器(PC)内容为0000H • EA引脚对程序存储器的控制作用 • EA接高电平时,CPU先从内部程序存储器中读取程序,当PC值超过内部ROM容量时,自动转向外部ROM读取程序。 • EA接低电平时,CPU始终从外部程序存储器读取程序。

  22. 程序存储器 • 程序存储器中的特殊地址: • 0000H~0002H复位后的PC值为0000H,一般在此安排跳转指令 • 0003H ~ 002AH为中断向量表 • C语言中的const数据类型,以及code关键字,都将变量存储于程序存储器

  23. 数据存储器 • 保存程序中的变量,以及一些不怕断电后消失的数据 • 51具有256B内部数据存储器,并可寻址64KB外部存储器 • 低128B为用户数据RAM • 高128B为特殊功能寄存器

  24. 数据存储器 • 30H~7FH用户自由使用,一般把堆栈设置于此 • 20H~2FH该16字节(128位)存储单元具备按位寻址能力,即可以以位单位进行数据操作,而其他位置都必须以字节为单位操作。 • 位地址为00H~7FH • 00H~1FH共32个字节,被分为4个块(Bank),每个Bank包括8个寄存器(R0~R7),称为通用寄存器。通过PSW的RS0和RS1位组合,来选中每个Bank

  25. 小知识:存储结构 • 哈佛结构:程序与数据存储器分别编址,对程序存储器和数据存储器使用分开的总线访问,如AVR,ARM9等 • 普林斯顿结构:也叫冯.诺依曼结构,程序与数据存储器统一编址,共用总线,如x86,MIPS等 • 51属于什么结构? • 改进的哈佛结构,独立编址,但共用总线 • 哈佛结构中如何程序区别程序和数据存储器? • 使用不同的指令,例如MOVC,MOVX等

  26. 51单片机存储器的一些特殊点 • 地址重叠:采用不同的指令、信号来区分重叠地址 • 片内RAM用MOV,片外RAM用MOVX,故片内、外低地址可以重叠 • 片内、外ROM都用MOVC指令,但可以靠EA区分 • 片外RAM和ROM具有相同地址,且共用地址、数据总线,但选通片外RAM的信号为RD和WE,选通片外ROM的信号是PSEN • 位操作能力:片内RAM中的20H ~ 2FH及SFR中的位地址;有专门的位操作指令 • 堆栈区:复位时SP = 07H,可任意设置到其他地址

  27. 51单片机时序 • CPU是一个复杂的同步时序电路,在时钟脉冲推动下工作。 • 执行指令时,CPU先从程序存储器中取出指令码,并译码,然后由时序部件产生一系列控制信号去完成指令的执行。这些控制信号在时间上的相互关系就是CPU时序。 • 标度时序信号的尺度有: • 时钟周期:时钟的震荡周期,是单片机时序中的最小单位 • 机器周期:51的1个机器周期固定为12个时钟周期 • 状态(S):每个机器周期分为6个状态(S1~S6) • 节拍(P):每个状态分为P1和P2两个节拍 • 指令周期:执行一条指令所需的时间 1个机器周期的12个时钟周期可表示为S1P1,S1P2,S2P1,……,S6P2 51单片机分为单周期指令、双周期指令和四周期指令 只有乘法和除法两条指令为四周期,其余均为单周期和双周期

  28. 指令时序 • 以采用12MHz晶振为例 • 1个时钟周期为? • 1/12 us • 1个机器周期为? • 1 us • 1个状态为? • 1/6 us • 1个节拍为 • 1/12us • NOP为单周期指令,耗时? • 1 us • DJNZ为双周期指令,耗时? • 2 us

  29. 小知识:衡量CPU运算速度 • MIPS( Million Instruments per Second)即每秒能执行多少百万条指令,是衡量CPU速度的重要指标之一。

  30. AT89S51引脚 • 电源引脚(2): • VCC • GND • 控制引脚(6): • ALE:地址锁存允许,平时输出1/6时钟频率的方波 • EA:外部程序存储器访问允许 • PSEN:片外ROM选通,执行MOVC时自动产生一个负脉冲来选通片外ROM • RST:复位维持2个机器周期以上高电平,使单片机复位 • XTAL1/2:时钟输入/输出

  31. AT89S51引脚 • 端口(32): • P0.7~P0.0: • 输入输出端口0 • 片外存储器地址总线低8位 • 片外存储器数据总线 • P1.7~P1.0: • 输入输出端口1 • P2.7~P2.0: • 输入输出端口2 • 片外存储器地址总线高8位 • P3.7~P3.0: • 输入输出端口3 • 外围部件信号线:串口收/发,外部中断输入,计数器计数输入,外部RAM读写选通

  32. AT89S51最小系统设计 • 以单片机为主、外围电路为辅组成的系统称为单片机系统。 • 最少外围电路组成、可使单片机工作的系统,称为单片机最小系统 • 最小系统包括: • 电源 • 复位 • 时钟 • ISP(可选)

  33. 电源及复位电路 • AT89S51工作电压4.0~5.5V,最大6.6V。 • 工作在12MHz时,电流25mA。 • 可使用7805供电。 • 采用阻容复位电路,RST维持2个机器周期以上高电平即可。 • 右图上电时RST的高电平时间? • 想增加按键复位,按键加在哪?

  34. 单片机的复位源 • 上电复位 POR • 欠压复位 BOR:当电源电压低于某规定值时,单片机复位;当恢复到规定值时,启动欠压定时器,定时时间到时,欠压复位结束。BOR的作用是当电源低于某值时,停止单片机运行,以免造成运行错误或输出不确定电平,使外围电路工作异常。 • 外部复位:由单片机复位引脚的电平变化引起的复位,据此可以进行人工复位。 • 看门狗定时器复位 WDT:看门狗用于监测程序的运行,一旦程序跑飞、死锁,就不能定时清零看门狗定时器(即不能及时喂狗),则看门狗定时器产生溢出,引起单片机复位。 • AT89S51可进行外部复位和看门狗定时器复位。 • 对于没有欠压复位的单片机,为保证可靠性,需要外接专用复位芯片。

  35. 时钟电路 • X1和X2分别是内部用于构成振荡器的反相放大器的输入/输出端 • 反相放大器与晶体、电容共同构成自激振荡电路 • 电容值的选取 • 电容兼作去耦,不能太小 • 电容值过大,则振荡器启动太慢 • 典型值为30pF±10pF • 正常情况下,X2脚输出一个平滑的正弦波 • AT89S51最高工作频率33MHz

  36. 单片机程序的烧写 • 并行编程:使用专用的编程器,需要将芯片从电路板上取下,放到编程器插座中进行烧写。 • 写入速度快 • 高档烧写器可对多种芯片进行编程 • 价格昂贵 • 必须脱离目标电路板进行编程

  37. AT89S51的ISP • ISP方式:在系统编程。无需将芯片从电路板上取下,只需在电路板上保留编程接口,即可将程序以串行方式写入单片机。 • 单片机中事先固化ISP程序 • PC与单片机之间连接用于缓冲或电平变换的简易电缆 • PC上运行控制烧写的软件

  38. 单片机系统开发流程 • 分析需求,确定方案 系统框架、器件选型、资源分配 …… • 设计、制作硬件电路 Protel,制板,测试 • 程序开发 Keil/IAR/Medwin,编译,链接,软件仿真 • 软、硬件联合调试 ISP,硬件仿真器

  39. C51语言程序设计 创新实验学院 杜 猛

  40. 概述 • 单片机程序可以使用汇编语言或C语言编写。 • 汇编语言执行效率高,但语法晦涩,可读性差,调试、维护困难,可移植性差。 • C语言语法简洁,结构清晰,开发调试容易得多,而且也可以直接操作硬件,可移植性好,目前绝大多数单片机程序使用C语言开发。 • 在一些对速度、代码大小有苛刻要求的关键部分,可将汇编程序嵌入到C程序中。 • C51语言是C语言在8051系列单片机上的实现,使用特定的编译器(Franklin/Keil C),抛弃C语言中不适合51的一些特性,而加入对51单片机的“本地化”适应。 • 学习单片机技术,必须掌握C51语言程序设计,及Keil软件的使用。

  41. 汇编与C51语言对比

  42. 单片机软件开发流程 • 创建一个项目 • 从器件数据库中选择目标芯片,并配置开发环境的相关设置 • 创建C或汇编源程序 • 构造(Build)应用 • 编译/汇编 • 链接 • 调试构造好的应用

  43. Keil uVision3 IDE • Keil uVision3是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中。 • 使用uVision3创建源文件,并把它们组织到一个目标应用项目中,IDE可以自动编译、汇编和链接应用。 • 代码编辑器:编辑源代码文件,支持语法高亮、自动缩进等特性。 • Cx51 国际标准优化C交叉编译器:从C源代码产生可重定位的目标模块。Keil Cx51完全遵照ANSI C语言标准,支持C语言所有标准特征。另外,还增加了可以直接支持8051结构的特征。(.c/.c51 -> .obj) • Ax51 宏汇编器:从汇编源代码产生可重定位的目标模块。Keil Ax51支持8051及其派生产品的所有指令集。(.asm/.a51 -> .obj)

  44. Keil uVision3 IDE • LIB51 库管理器:由编译器和汇编器创建的目标文件生成目标库。 (.obj -> .lib) • BL51 链接器/定位器:组合由Cx51和Ax51产生的可重定位目标模块,以及库中的目标模块,生成绝对目标模块(无扩展名或.abs)。绝对目标文件可以用于: • 编程EPROM或其他存储器件 • 由uVision3调试器进行调试和模拟 • 使用在线仿真器进行程序调试 • OH51 目标文件至HEX格式转换器:从绝对目标文件生成Intel HEX文件,用于写入单片机。(.hex)

  45. Keil uVision3 IDE • 调试器:进行快速、可靠的程序调试。内置的高速模拟器能模拟整个8051系统,包括片内外设。当从器件数据库中选择器件时,会自动配置该器件属性。Keil支持: • 软件仿真:纯粹的用调试器模拟程序的运行情况 • 硬件仿真:将MON51监控代码下载到目标系统,调试器通过Monitor-51与MON51进行通信,设置、监控硬件状态,实现硬件调试 • RTX51实时操作系统:针对8051系列单片机的一个多任务操作系统内核。简化了对时间关键事件进行快速反应的复杂应用的系统设计、编程和调试。

  46. C51的特殊关键字 • 针对8051系列单片机的结构特点,C51语言对标准C进行了扩展,新增13个关键字。 • 存储相关: • 新数据类型:bit sbit sfr sfr16 • 存储类型:data bdata idata pdata xdata code • 函数相关: • interrupt using reentrant

  47. 数据类型 • 掌握数据类型,主要是掌握每种类型数据所占长度和取值范围。 • 相同的数据类型,在不同的体系结构上所占长度不一定相同。 • 例如,在x86 CPU上,int占4 bytes,而在8051上仅占2 bytes。

More Related