logo资料库

单片机原理及应用笔记.docx

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
哈尔滨工业大学——单片机原理及应用(国家精品课) 单片机是什么? 单片机就是在一片半导体硅片上集成中央处理单元、存储器、串并行 I/O、定时器/计数器、终 端系统、系统时钟电路以及系统总线,所以单片机实质上是用于控制目的的单片微型计算机, 简称单片机。 单片机的两种典型封装形式: 1、双排直插(DIP) 2、方形封装(PLCC 或 TQFP 封装) 单片机的特点: 单片机的定位及典型优势: 测控系统的核心 也称嵌入式控制器、微控制器 习惯称呼:“单片机” 单片机的体积小、价格低,能非常容易的嵌入到工业控制单元,机器人,智能仪器仪表、汽车 电子系统、武器系统、家用电器、办公自动化设备、金融电子系统、玩具、个人信息终端以及 通讯产品中。 单片机的分类: 按用途来分: 通用型:人们通常所说是指通用型单片机。通用型的单片机内部可开发资源全部提供给用户。 专用型:针对特定用途制造的的单片机。全面综合地考虑结构最简化、可靠化和成本最佳化。 例如,各种家用电器中的控制器。 按处理的二进制位数可以分为:8 位单片机、16 位单片机和 32 位单片机。 单片机发展趋势:向高性能化、存储大容量、外围电路内装化等方面发展。 1、增加 CPU 的数据总线宽度 1>例如,16 位机和 32 位机,数据处理能力明显优于 8 位单片机。 2>双 CPU 结构,提高数据处理能力。 2、存储器的发展 1>片内程序存储器—采用闪烁(Flash)存储器,容量可大 128KB。 2>片内数据存储器容量可达数十 KB。 3、片内 I/O 的改进 1>增加 I/O 口驱动能力,直接输出大电流和高电压,以直接驱动 LED 和 VFD(荧光显示器)。 2>特殊串行 I/O 功能,为构成分布式、网络化系统提供方便。 4、低功耗化 1>CMOS 工艺,多种节电工作方式。 CMOS 工艺功耗小,配置有等待状态、睡眠状态、关闭状态等节点工作方式。 2>消耗电流μA 或 nA 量级,电池供电。 3>便携式仪器仪表、消费类电子产品。 5、外围电路内装化 1>片内集成的功能部件多,系统的单片化。 2>一片芯片就是一个“测控”系统。 嵌入式微处理器家族成员主要由嵌入式微处理器、单片机以及 DSP 组成。(Dsp 数字信号处理) AT89S51 单片机的硬件结构
AT89S51 单片机把控制应用所必需的基本功能部件集成在一个电路芯片上。 片内部件组成: 1> 8 位微处理器(CPU) 2> 数据存储器(128B RAM) 3> 程序存储器(4KB Flash ROM) 4> 4 个 8 位并行 I/O 口(P0 口~P3 口) 5> 1 个全双工异步串口 6> 2 个 16 位定时器/计数器 7> 1 个看门狗定时器 8> 中断系统:5 个中断源、5 个中断向量 9> 特殊功能寄存器(SFR)26 个 10> 低功耗的空闲模式和掉电模式 11> 在线可编程功能 ISP(In System Program) 12> 数据指针 2 个,方便对片外 RAM 的访问 各功能部件通过片内单一总线连接而成,基本结构是 CPU+外围芯片的传统微机结构。 CPU 对各种功能部件控制集中采用特殊功能寄存器(SFR - Special Function Register)的 集中控制方式。 AT89S51 单片机的引脚
引脚按功能分 3 类: (1) 电源及时钟引脚 - VCC、VSS、XTAL1、XTAL2 (2) 控制引脚 - PSEN*、ALE/PROG*、EA*/VPP、RST(RESET) (3) I/O 引脚 - P0、P1、P2、P3,为 4 个 8 位 I/O 口 1、电源与时钟引脚 (1) 电源引脚 1> VCC(40 脚):+5V 电源 2> VSS(20 脚):数字地 (2) 时钟引脚 1> XTAL1(19 脚):输入端 ·使用片内振荡器,应接外部石英晶体和微调电容 ·使用片外振荡器,该脚接外部时钟振荡器输出的信号 2> XTAL(18 脚):片内振荡器反相放大器的输出端 ·使用片内振荡器,接外部石英晶体的微调电容 ·使用片外振荡器,悬空 2、控制引脚 (1) RST(RESET,9 脚) 复位信号输入,持续时间大于 2 个机器周期的高电平,就可使单片机复位。 正常工作应 ≤ 0.5V
当看门狗定时器溢出输出时,该脚将输出长达 96 个时钟周期的高电平。 (2) EA*/VPP (Enable Address/Voltage Pulse of Programming,31 脚) 1> EA*:第一功能:允许访问外部程序存储器控制,与该脚电平有关 A. EA* = 1 PC 值≤0FFFH 时,单片机读片内 4KB Flash 中的程序, PC 值>0FFFH (超出片内 4KB Flash 地址范围)时,转向读取片外 60KB(1000H - FFFFH) 程序存储器空间中的程序。 B. EA* = 0 只读取外部程序存储器中的内容,读取地址范围 0000H~FFFFH,片内 4KB Flash 无效。 2> VPP:第二功能,对片内 Flash 编程,按编程电压。 对于 AT89S51 单片机来说,若不使用片内的闪烁存储器,则 EA*脚应该接地。 (3) ALE/PROG*(Address Latch Enable/PROGramming,30 脚) 1> ALE: 第一功能 ALE 为访问外部存储器提供低 8 位地址锁存 在片外地址锁存器中。见图, 此外,单片机运行时,ALE 端一直有脉冲信号,频率为时钟 fosc 的 1/6. 注意,每当 AT89S51 访问外部 RAM 时(执行 MOVX 类指令),要丢失一个 ALE 脉冲。 可用软件来禁止 ALE 输出,将特殊功能寄存器 AUXR(地址 8EH)的第 0 位(ALE 禁止位)置 1,但 ALE 禁止位不影响对外部存储器的访问,即执行指令”MOVC”或”MOVX”时,ALE 仍然有效。 2> PROG*:第二功能,对片内 Flash 编程的编程脉冲输入。 (4) PSEN* (Program Strobe ENable,29 脚) 片外程序存储器读选通信号,低有效。 3、并行 I/O 口 P0~P3 引脚 (1) P0 口: 8 位,漏极开路的双向 I/O 口 作为系统总线用,低 8 位地址总线及数据总线分时复用端口,是双向口。也作为通用 I/O 口, 漏极需加上拉电阻,这是为准双向口。可驱动 8 个 LS 型 TTL 负载。 (2) P1 口:8 位,准双向 I/O 口,具有内部上拉电阻。 注意:P1 口的几只引脚:P1.5/MOSI、P1.6/MOSI 和 P1.7/SCK,可用作片内 Flash 存储器的串 行编程和校验,分别是串行数据输入、输出和移位脉冲引脚。 P1 口可驱动 4 个 LS 型 TTL 负载。 (3) P2 口:8 位,准双向 I/O 口,有内部上拉电阻。
当外扩存储器 I/O 口时,P2 口作为高 8 位地址总线用。 也可作为通用 I/O 使用。 可驱动 4 个 LS 型 TTL 负载。 (4) P3 口:8 位,准双向 I/O 口,具有内部上拉电阻。 可作为通用 I/O 口使用,可驱动 4 个 LS 型 TTL 负载。 P3 口还可提供第二功能: 引 脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第 二 功 能 说 明 RXD TXD ________ INT0 ________ INT1 T0 T1 _____ WR _____ RD 串行数据输入口 串行数据输出口 外部中断 0 输入 外部中断 1 输入 定时器 0 外部记数输入 定时器 1 外部记数输入 外部数据存储器写选通输出 外部数据存储器读选通输出 综上所述,P0 口如作为总线口,为双向口。如作为通用 I/O 口,为准双向口,这时需加上拉电 阻。而 P1 口、P2 口、P3 口均为准双向口。 注意:P0 口作为总线口使用时为双向口,P0 口线内无上拉电阻,处于高祖“悬浮”态,此时 P0 口为双向三态 I/O 口。作为 I/O 使用,为准双向口,仅有两个状态。 AT89S51 单片机的 CPU AT89S51 单片机的 CPU 由运算器和控制器等部件构成。 1、运算器 功能:对操作数进行算术、逻辑和位操作运算。 组成:算术逻辑运算单元 ALU、累加器 A、位处理器、程序状态字寄存器 PSW 及两个暂存器等。 (1) 算术逻辑运算单元 ALU 可对 8 位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、 除) ALU 还有位操作功能,对位变量进行置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。 (2) 累加器 A 使用最频繁的寄存器,也可写为 Acc。注意“A”与“Acc”书写的差别。 作用如下: 是输入数据源之一,又是运算结果存放单元。 数据传送多通过 A,数据中转站。为解决“瓶颈堵塞”问题,AT89S51 增加了一部分可不经过累 加器的传送指令。 A 进位标志 Cy 是同时又是位处理机的位累加器 (3) 程序状态字寄存器 PSW PSW(Program Status Word)位于片内特殊功能寄存器区,字节地址 D0H。 PSW 包含程序运行的状态信息,其中 4 位保存当前指令执行后的状态,供查询和判断。格式如 下:
PSW 格式 PSW 各位功能: (1) Cy(PSW.7)进位标志位也可写为 C。在算术或逻辑运算时,若有进位/借位,Cy=1;否 则,Cy=0,它也是位处理器中位累加器。 (2) Ac(PSW.6)辅助进位标志位 在 BCD 码运算时,用作十进制运算调整。即当 D3 位向 D4 位产生进位或借位时,Ac=1;否则, Ac=0。 (3) F0(PSW.5)用户使用的标志位 (4) RS1、RS0(PSW.4、PSW.3)4 组工作寄存器区选择 选择片内 RAM 区中的 4 组工作寄存器区中的某一组为当前工作寄存区。如下表所示。 (5) OV(PSW.2)溢出标志位 执行算术指令时,用来指示运算结果是否产生溢出。如溢出,OV=1;否则,OV=0。 (6) PSW.1 位:保留位 (7) P(PSW.0):奇偶标志位 指令执行完后,A 中“1”的个数是奇数还是偶数。 P=1,A 中“1”的个数为奇数。 P=0,A 中“1”的个数为偶数。 此位对串行通信有重要意义,常用奇偶检验来检验数据串行传输的可靠性。 2、控制器 任务:识别指令,控制单片机各功能部件,保证各部分自动协调工作。 控制器包括:PC、指令寄存器、指令译码器、定时及控制逻辑电路等。功能:控制指令的读入、 译码和执行,对各功能部件进行定时和逻辑控制。 程序计数器 PC 为一独立的 16 位计数器,不可访问。复位时,PC 内容为 0000H,从程序存储器 0000H 单元取指令,执行程序。 PC 工作过程:CPU 取指令时,PC 内容为所取指令的地址,程序存储器按此地址输出指令字节, 同时 PC 自动加 1。 PC 中内容变化轨迹决定程序流向。 顺序执行程序,PC 自动加 1; 执行转移程序或子程序、中断子程序调用时,自动将其内容更改成所要转移的目的地址。 PC 计数宽度决定程序存储器地址范围。单片机的 PC 计数宽度 16 位,可对 216B(64KB)寻址。 AT89S51 单片机的存储空间及分类 AT89S51 单片机的存储空间为哈佛结构,存储空间分为四类:
1> 程序存储器空间 分为片内和片外两部分。 片内 4KB Flash,编程和擦除完全是电气实现的。可用通用编程器对其编程,也可在线编 程。 2> 数据存储器空间 片内有 128B RAM (S2 子系列为 256B); 片内 RAM 不够用时,在片外最多可拓展 64KB RAM。 3> 特殊功能寄存器 SFR (Special Function Register) 各功能部件的控制寄存器及状态寄存器。综合反映了整个单片机基本系统内部实际的工作状 态及工作方式。 4> 位地址空间 1、程序存储器空间 211 个可寻址位。片内 RAM(共 16 个单元,每个单元 8 位,共 128 位) + SFR 区(共 83 位)。 用于存放程序和表格的固定常数。片内为 4KB 的 Flash,地址 0000H~0FFFH。 片外可拓展的程序存储器空间最大为 64KB,地址 0000H~FFFFH。 (1) 程序存储器空间分为片内和片外两部分,访问片内还是片外程序存储器,由 EA*脚电平 确定。 1> EA* = 1,CPU 从片内 00000H 开始取指令,当 PC 没有超出 0FFFH 时,只访问片内 Flash,当 PC 值好处 0FFFH 自动转向片外程序存储器 1000H~FFFFH 内的程序。 2> EA* = 0,不理会片内 4KB Flash 存储器,只 执行片外程序存储器(0000H~FFFFH)中的程序。 (2) 程序存储器 5 个固定单元为各中断源中断入口。见下表。 通常,这 5 个中断入口地址处都存放一条跳转指令跳向对应的中断服务程序,而不是直接存 放中断服务子程序。 2、数据存储器空间 (1) 片内数据存储器:片内 RAM 128 个单元,字节地址为 00H~7FH。 1> 00H~1FH 4 组通用工作寄存器区,每区为 8B:R7~R0。 可用指令改变 PWS 寄存器中的 RS1、RS0 两位来选择。 2> 20H~2FH 的 16 个单元的 128 位可位寻址,也可字节寻 址。 3> 30H~7FH 的单元只能字节寻址,用作存数据以及作为堆
栈区。 (2) 片外数据存储器:片内 RAM 不够用时,需外扩,最多可拓展 64KB 的 RAM。 注意:片内 RAM 与片外 RAM 两个空间是相互独立的,片内 RAM 与片外 RAM 的低 128B 的地址 是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。 3、特殊功能寄存器与位地址空间 (1) 特殊功能寄存器(SFR)——概述 特殊功能寄存器(SFR)映射在片内 RAM 80H~FFH 区域 中,共 26 个。 SFR 的名称及分布见右图。 有些可位寻址,凡是可位寻址的 SFR,字节地址末尾只能是 0H 或 8H。
分享到:
收藏