1、单片机原理与应用,创新实验学院 杜 猛,2,课程特点,涉及内容多,讲课学时少(16 学时)1. 技术专题式讲解,不按部就班面面俱到2. 自学为主,讲课内容作为提纲、框架 技术性强,不易掌握多动手,重视实验环节,以实践验证理论 需要多种技术辅助数电/模电/C语言等等,兴趣驱动,勤加学习,形成完善的知识体系,3,考核办法,平时成绩 上课及实验环节的出勤率 创新实践记录册期中、期末考核成绩 作品完成情况:以二人小组形式完成2个实践课题 设计报告:每个实践课题每人上交一份设计报告,同组二人各有分工,报告不能雷同注意事项 按时参加实践活动,迟到、早退均做旷课处理 请假必须通过任课教师,助管无权准假 仔细
2、阅读学院网站的成绩评定办法 核对本人的选课信息,4,课程安排,51单片机基本概念C51语言编程中断系统I/O端口定时/计数器串行通信电机驱动专题电子大赛控制类题目研讨,5,推荐学习资源,任意一本51单片机教材 单片机原理及其接口技术清华 胡汉才 单片机技术基础教程与实践电子工业出版社 平凡的单片机教程平凡单片机工作室 http:/ 单片机的C语言应用程序设计北航 马忠梅 AT89S51 datasheet Keil Help,6,种类繁多的单片机,7,什么是单片机(MCU),将微处理器(CPU)、数据存储器、程序存储器、I/O接口电路和相应的实时控制器件集成在一块芯片上,形成一个单芯片的微型计
3、算机,称为单片机,也称微控制器(MCU)。单片机不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上 想想PC的结构,CPU、内存、硬盘,以及键盘、鼠标、显示器等输入/输出设备。二者组成结构类似,差别在体积、性能、价格,这也决定了其不同的用途。,8,单片机的特点,功能强:可编程,实时性好 体积小,功耗低 可靠性高:高度集成,大量数据都在芯片内部传送 开发方便:外围电路简单,资料丰富 价格低廉,性价比高 研制周期短,易产品化,9,单片机的用途,特点决定其应用量大面广 工业控制:数控机床,汽车电子 智能仪表:数字存储示波器,数字煤气表 医疗设备:CT机,血液分析仪,病人监测仪 办公自
4、动化:打印机,扫描仪,复印机 家用电器:全自动洗衣机,空调,智能家居设备 消费电子:DC,MP3,PSP 通信系统:手机,基站,GPS,路由器 军事国防,10,11,12,旋转LED显示,13,Home Built Laser Projector,14,Real-Time Optical Scanning of Sheet Music,15,主流单片机,8051 最普及,多种新型高性能51 MSP430 低功耗,抗干扰,工业仪表 AVR RISC,高速,高可靠性 PIC 体积小,抗干扰,成本低 Freescale 产品线丰富,汽车电子 ARM 32位,高性能,外设丰富,16,AT89S51实物
5、,17,51单片机的基本结构,一个8位微处理器(CPU) 数据存储器RAM和特殊功能寄存器SFR 内部程序存储器ROM 两个定时/计数器,用以对外部事件进行计数,也可用作定时器。,18,51单片机的基本结构,四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出 一个串行端口,用于数据的串行通信 中断控制系统 内部时钟电路,19,20,小知识:常见存储器类型,ROM:非易失的存储器,即断电后数据不丢失 Mask ROM 掩膜,工厂烧录,无法改写 PROM 一次编程(OTP) EPROM 紫外线擦除,高电压编程 E2PROM 电擦除,以字节为单位修改 Flash 容量大,N
6、AND/NORRAM:易失的存储器,即断电后数据丢失 SRAM 静态,速度快,容量小,价格高 DRAM 动态,容量可以做得很大,需要刷新逻辑,21,寄存器,寄存器是CPU内部一种高速的数据存储单元。 用途: 对寄存器内数据执行算术及逻辑运算ADD ACC, #0xFF / ACC寄存器存储的数据加上255 对存储单元进行寻址(寄存器寻址,寄存器间接寻址,变址寻址等)MOV A, R1 / 以R1寄存器中的数据作为地址,将该 地址中保存的数据放到ACC中。 读取、控制外围设备的工作状态SBUF = 0xFF; / 让单片机通过串口发送数据0xFFwhile(TI != 1); / 查询中断中断寄
7、存器,以判断数据是否 发送完毕,22,51中的重要寄存器,PC:程序计数器,存放下一条需要执行的指令的内存地址,能自动加1。16位,寻址64KB。 ACC:累加器,最常用的寄存器,大部分指令的操作数取自ACC,存放算术运算的结果,大部分的数据存取操作等。 SP:堆栈指针。保存当前栈顶地址,8位。 PSW:程序状态字,存放上一条指令执行后的有关状态。 加减法运算中是否产生了进位、借位 计算结果是否产生了溢出 除法运算中是否误将零作除数 DPTR:数据指针,16位。 若干用于控制外设的寄存器,将在今后逐一讲解。,23,小知识:认识堆栈,堆栈是一种按“先进后出,后进先出”规律存取数据的内存区域。 用
8、来保存函数返回地址,保护现场等。 向上生长:栈顶向高地址方向生长。向下生长:栈顶向低地址方向生长。 满堆栈:栈指针指向最后压入堆栈的有效数据项。空堆栈:栈指针指向下一个要放入的空位置。 8051系列单片机为向上生长的满堆栈。,24,程序存储器,存放用户程序、数据、查找表等信息51可寻址64KB地址空间,AT89S51片内有4KB Flash复位后程序计数器(PC)内容为0000HEA引脚对程序存储器的控制作用 EA接高电平时,CPU先从内部程序存储器中读取程序,当PC值超过内部ROM容量时,自动转向外部ROM读取程序。 EA接低电平时,CPU始终从外部程序存储器读取程序。,25,程序存储器,程
9、序存储器中的特殊地址: 0000H0002H 复位后的PC值为0000H,一般在此安排跳转指令 0003H 002AH为中断向量表C语言中的const数据类型,以及code关键字,都将变量存储于程序存储器,26,数据存储器,保存程序中的变量,以及一些不怕断电后消失的数据51具有256B内部数据存储器,并可寻址64KB外部存储器低128B为用户数据RAM高128B为特殊功能寄存器,27,数据存储器,30H7FH 用户自由使用,一般把堆栈设置于此20H2FH 该16字节(128位)存储单元具备按位寻址能力,即可以以位单位进行数据操作,而其他位置都必须以字节为单位操作。 位地址为00H7FH00H1
10、FH 共32个字节,被分为4个块(Bank),每个Bank包括8个寄存器(R0R7),称为通用寄存器。通过PSW的RS0和RS1位组合,来选中每个Bank,28,小知识:存储结构,哈佛结构:程序与数据存储器分别编址,对程序存储器和数据存储器使用分开的总线访问,如AVR,ARM9等 普林斯顿结构:也叫冯.诺依曼结构,程序与数据存储器统一编址,共用总线,如x86,MIPS等 51属于什么结构? 改进的哈佛结构,独立编址,但共用总线 哈佛结构中如何程序区别程序和数据存储器? 使用不同的指令,例如MOVC,MOVX等,29,51单片机存储器的一些特殊点,地址重叠:采用不同的指令、信号来区分重叠地址 片
11、内RAM用MOV,片外RAM用MOVX,故片内、外低地址可以重叠 片内、外ROM都用MOVC指令,但可以靠EA区分 片外RAM和ROM具有相同地址,且共用地址、数据总线,但选通片外RAM的信号为RD和WE,选通片外ROM的信号是PSEN位操作能力:片内RAM中的20H 2FH及SFR中的位地址;有专门的位操作指令堆栈区:复位时SP = 07H,可任意设置到其他地址,30,51单片机时序,CPU是一个复杂的同步时序电路,在时钟脉冲推动下工作。执行指令时,CPU先从程序存储器中取出指令码,并译码,然后由时序部件产生一系列控制信号去完成指令的执行。这些控制信号在时间上的相互关系就是CPU时序。标度时
12、序信号的尺度有:时钟周期:时钟的震荡周期,是单片机时序中的最小单位 机器周期:51的1个机器周期固定为12个时钟周期 状态(S):每个机器周期分为6个状态(S1S6) 节拍(P):每个状态分为P1和P2两个节拍 指令周期:执行一条指令所需的时间1个机器周期的12个时钟周期可表示为S1P1,S1P2,S2P1,S6P251单片机分为单周期指令、双周期指令和四周期指令只有乘法和除法两条指令为四周期,其余均为单周期和双周期,31,指令时序,以采用12MHz晶振为例 1个时钟周期为?1/12 us 1个机器周期为?1 us 1个状态为?1/6 us 1个节拍为 1/12us NOP为单周期指令,耗时?
13、1 us DJNZ为双周期指令,耗时?2 us,32,小知识:衡量CPU运算速度,MIPS( Million Instruments per Second)即每秒能执行多少百万条指令,是衡量CPU速度的重要指标之一。,33,AT89S51引脚,电源引脚(2): VCC GND控制引脚(6): ALE:地址锁存允许,平时输出1/6时钟频率的方波EA:外部程序存储器访问允许PSEN:片外ROM选通,执行MOVC时自动产生一个负脉冲来选通片外ROMRST:复位维持2个机器周期以上高电平,使单片机复位XTAL1/2:时钟输入/输出,34,AT89S51引脚,端口(32): P0.7P0.0: 输入输出
14、端口0 片外存储器地址总线低8位 片外存储器数据总线 P1.7P1.0: 输入输出端口1 P2.7P2.0: 输入输出端口2 片外存储器地址总线高8位 P3.7P3.0: 输入输出端口3 外围部件信号线:串口收/发,外部中断输入,计数器计数输入,外部RAM读写选通,35,AT89S51最小系统设计,以单片机为主、外围电路为辅组成的系统称为单片机系统。最少外围电路组成、可使单片机工作的系统,称为单片机最小系统最小系统包括: 电源 复位 时钟 ISP(可选),36,电源及复位电路,AT89S51工作电压4.05.5V,典型工作电压5V,最大6.6V。 工作在12MHz时,电流25mA。 可使用78
15、05供电。 采用阻容复位电路,RST维持2个机器周期以上高电平即可。 右图上电时RST的高电平时间? 想增加按键复位,按键加在哪?,37,单片机的复位源,上电复位 POR欠压复位 BOR:当电源电压低于某规定值时,单片机复位;当恢复到规定值时,启动欠压定时器,定时时间到时,欠压复位结束。BOR的作用是当电源低于某值时,停止单片机运行,以免造成运行错误或输出不确定电平,使外围电路工作异常。外部复位:由单片机复位引脚的电平变化引起的复位,据此可以进行人工复位。看门狗定时器复位 WDT:看门狗用于监测程序的运行,一旦程序跑飞、死锁,就不能定时清零看门狗定时器(即不能及时喂狗),则看门狗定时器产生溢出
16、,引起单片机复位。AT89S51可进行外部复位和看门狗定时器复位。 对于没有欠压复位的单片机,为保证可靠性,需要外接专用复位芯片。,38,时钟电路,X1和X2分别是内部用于构成振荡器的反相放大器的输入/输出端反相放大器与晶体、电容共同构成自激振荡电路电容值的选取 电容兼作去耦,不能太小 电容值过大,则振荡器启动太慢 典型值为30pF10pF正常情况下,X2脚输出一个平滑的正弦波AT89S51最高工作频率33MHz,39,单片机程序的烧写,并行编程:使用专用的编程器,需要将芯片从电路板上取下,放到编程器插座中进行烧写。写入速度快 高档烧写器可对多种芯片进行编程 价格昂贵 必须脱离目标电路板进行编程,40,AT89S51的ISP,ISP方式:在系统编程。无需将芯片从电路板上取下,只需在电路板上保留编程接口,即可将程序以串行方式写入单片机。单片机中事先固化ISP程序 PC与单片机之间连接用于缓冲或电平变换的简易电缆 PC上运行控制烧写的软件,41,单片机系统开发流程,分析需求,确定方案系统框架、器件选型、资源分配 设计、制作硬件电路Protel,制板,测试 程序开发Keil/IAR/Medwin,编译,链接,软件仿真 软、硬件联合调试ISP,硬件仿真器,