资源预览内容
第1页 / 共49页
第2页 / 共49页
第3页 / 共49页
第4页 / 共49页
第5页 / 共49页
第6页 / 共49页
第7页 / 共49页
第8页 / 共49页
第9页 / 共49页
第10页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第章单片机结构原理 本章内容 SingleChipMicrocomputer 单片机内部结构及引脚 单片机时序及接口 单片机存储器配置 单片机输入输出口 2 1MCS 51单片机内部结构及引脚 MCS 51系列单片机是英特尔公司1980推出的高档8位机分为二个子系列 三个版本 掩膜ROMPROM OTP ROMEPROMEEPROMFLASH MCS 51单片机硬件结构 结构框图 中央处理器CPU 8位 运算和控制功能 内部RAM 共256个RAM单元 用户使用前128个单元 用于存放可读写数据 后128个单元被专用寄存器占用 内部ROM 4KB掩膜ROM 用于存放程序 原始数据和表格 定时 计数器 两个16位的定时 计数器 实现定时或计数功能 并行I O口 4个8位的I O口P0 P1 P2 P3 串行口 一个全双工串行口 中断控制系统 5个中断源 外部中断2个 定时 计数中断2个 串行中断1个 时钟电路 可产生时钟脉冲序列 允许晶振频率6MHZ和12MHZ 1 8051单片机的基本组成 中央处理器CPU 8位 运算和控制功能内部RAM 共256个RAM单元 用户使用前128个单元 用于存放可读写数据 后128个单元被专用寄存器占用 内部ROM 4KB掩膜ROM 用于存放程序 原始数据和表格 定时 计数器 两个16位的定时 计数器 实现定时或计数功能 并行I O口 4个8位的I O口P0 P1 P2 P3 串行口 一个全双工串行口 中断控制系统 5个中断源 外中断2个 定时 计数中断2个 串行中断1个 时钟电路 可产生时钟脉冲序列 允许晶振频率6MHZ和12MHZ 2 MCS 51单片机信号引脚简介 P3口线的第二功能 VCC VSS XTAL2XTAL1 RST P0 0P0 1P0 2P0 3P0 4P0 5P0 6P0 7 P1 0P1 1P1 2P1 3P1 4P1 5P1 6P1 7 P2 7P2 6P2 5P2 4P2 3P2 2P2 1P2 0 ALE P3 0P3 1P3 2P3 3P3 4P3 5P3 6P3 7 2 振荡电路 XTAL1 XTAL2 3 复位引脚 RST 4 并行口 P0 P1 P2 P3 7 ALE 地址锁存控制信号 1 电源线 VCC 5V VSS 地 0时 只访问外部程序存储器 即外ROM 1时 访问内部程序存储器 即内ROM Vpp 内 外ROM选择端 对于8751单片机编程时 该端施加编程电压IO引脚P0 0 P0 7 P1 0 P1 7 P2 0 P2 7 P3 0 P3 7四个I O口 每口八条线 还兼作地址 数据线 EA ALE PROG 地址锁存控制端 访问外部存储器用来锁存由P0口送出的低8位地址 不访问外存时 提供1 6fosc振荡频率 PROG用于对8751片内的EPROM输入编程脉冲 PSEN 外部程序存储器的读选通信号端 3 时钟电路与复位电路 1 时钟振荡电路 几个工作周期的区别 振荡周期状态周期机器周期指令周期 时钟周期 T 时序中最小的时间单位 其值由外接晶体或外输入时钟来决定 其值为石英振荡器频率的倒数 例如 在单片机外接1MHZ的晶体 则单片机的系统时钟的频率为1M 时钟周期为1us 机器周期 完成特定功能所需要的时间 在MCS 51单片机中机器周期由12个时钟周期构成 并分为6个状态 S1 S6 每个状态又分为P1和P2两拍 这样一个机器周期的12个震荡周期可以表示为 S1P1 S1P2 S2P1 S2P2 S3P1 S3P2 S6P1 S6P2将12个震荡周期用6个状态和2拍来替代 T S1 S2 S6 S5 S4 S3 机器周期 指令周期 这是时序图中最大的时间单位 既执行一条指令所需要的时间 在MCS 51系统中 不同的指令它所包含的机器周期数不同 它们分别是 1 单机器周期指令 2 双机器周期指令 3 四机器周期指令我们知道 一个机器周期包含了12个震荡周期 如果我们使用一个12M的晶体震荡器 那么 一个机器周期为1us 两个机器周期为2us 四个机器周期为4us 可见一条指令的运算速度与它所包含的机器周期数有关 机器周期数越少 执行的速度就越快 在MCS 51单片机的指令系统中 除了乘 除法指令为四个机器周期外 其余都是单周期和双周期指令 返回 2 控制或复位引脚RST VPD 当出现两个机器周期高电平时 单片机复位 复位后 P0 P3输出高电平 SP寄存器为07H 其它寄存器全部清0 不影响RAM状态 参考复位电路如下 2 复位电路 单片机复位条件 必须使RST引脚持续10us以上高电平 外部时钟12MHz 谁知道复位电路怎么起到复位的作用 2 2存储器配置 80318751805189C51 256B 字节 4K 64K 64K 物理上分为 4个空间 即片内ROM 片外ROM片内RAM 片外RAM逻辑上分为 3个空间 即程序内存 片内 外 统一编址MOVC数据存储器 片内 MOV数据存储器 片外 MOVX 冯 诺依曼结构哈佛结构改进哈佛结构 超级哈佛结构 储存器结构 1 程序存储器 程序存储器 内部 外部 PC 程序存储器资源分布 中断入口地址 七个具有特殊含义的单元是 0000H 系统复位 PC指向此处 0003H 外部中断0入口000BH T0溢出中断入口0013H 外中断1入口001BH T1溢出中断入口0023H 串口中断入口002BH T2溢出中断入口 内部 外部 2 数据存储器 数据存储器 RAM 专用寄存器 内部RAM存储器 工作寄存器区选择位RS0 RS1 位寻址区 20H 2FH 16个字节 16 8 128位 每一位都有一个位地址 范围为 00H 7FH 位地址区也可作为一般RAM使用 位寻址区 特殊功能寄存器SFRMCS 51单片机内共有22个特殊功能寄存器 包括PC及SFR PC为程序计数器 它是一个双字节寄存器 寻址范围为 0000H FFFFH 即0 64KB SFR为特殊功能寄存器 其寻址空间 80H FFH其中 51子系列有18个寄存器 占有21个字节 52子系列有21个寄存器 占有26个字节 51子系列SFR的地址分配及位地址见下页表 高128个单元 离散分布有21个特殊功能寄存器SFR 11个可以进行位寻址 特别提示 对SFR只能使用直接寻址方式 书写时可使用寄存器符号 也可用寄存器单元地址 注意 1 表中共有3个双字节寄存器 2 PC也为双字节寄存器 但是不在80H FFH范围内 3 表中 凡地址能被8整除的寄存器都是可位寻址的寄存器 各寄存器的名称 1 算术运算寄存器 1 A 累加器 2 B B寄存器 乘 除法运算用 3 PSW 程序状态字寄存器 包含程序运行状态 信息 程序状态字PSW 8位寄存器 表征程序执行的状态信息 CY PSW 7 进位标志 在加减法运算中 累加器A的最高位A7有进位 则CY 1 否则CY 0 同理 在减法运算中 如果A7有借位 则CY 1 因此CY往往作为无符号数运算是否有溢出的标志 AC PSW 6 辅助进位位 用来判断加减法运算时 低四位是否向高四位进位或借位 既A3的进位或借位 往往用来判断压缩的BCD码的运算处理 F0 PSW 5 用户标志位 完全由用户来定义和使用 RS1 RS0工作寄存器区选择位 确定工作寄存器R0 R7在哪个区中 单片机在上电或复位后RS1 RS0 00 当需要人为的修改RS1 RS0的值来改变工作寄存器区的位置 00 0区R0 R701 1区R0 R710 2区R0 R711 3区R0 R7 OV PSW 2 溢出标志位 判断有符号数 补码 加减法运算时是否有溢出 OV的结果可以用一个算法来表示 OV CP异或CS其中 CP为A7的进位 CS为A6的进位OV 1表明有溢出 P PSW 0 奇偶标志位 用来标志累加器A中运算后1的个数 当P 1时 表明A中1的个数为奇数个 反之为偶数个 举例 有两个数0FH和F8H 试将两数相加MOVA 0FH 将立即数0fh送累加器AADDA 0F8H A的内容与立即数0f8h相加 结果送A00001111运算结果 A 07H CY 1 既CP 1 11111000CS 1 OV 0 因为CP 1 CS 1 Cy 100000111AC 1 P 1如何根据PSW来分析运算结果是否正确 是否有溢出 1 若数据为无符号数 既15 248 263 107H既CY 1 A 07H 2 若数据为有符号数 既 15加 8 7 07H OV 0表明无溢出 2 指针寄存器 1 程序计数器PC指明即将执行的下一条指令的地址 程序存储器地址 在物理上独立 复位时PC 0000H 2 堆栈指针SP指明栈顶元素的地址 8位 可软件设置初值 复位时SP 07H 注意压栈和出栈SP的变化 3 数据指针DPTR DPTR 指明访问的数据存储器的单元地址 16位 寻址范围64KB DPTR DPH DPL 也可单独使用 SP堆栈指针 8位寄存器 用来指示堆栈的位置 可由软件修改 在MCS 51单片机的设计中 片内RAM区为堆栈的可用空间 上电或复位时 SP被初始化为07H 即堆栈底部被确定在RAM的07H单元 堆栈操作过程 进栈 PUSHACC指令 设SP 07H 1 SP 1送SP 此时SP 08H 2 ACC送RAM的08H单元 出栈 POPACC 设SP 08H 1 将RAM中08H单元内容送A 2 SP 1送SP 此时SP 07H 07H SP 08H07H RAM x 累加器A 堆栈操作示意图 3 并行输入 输出端口寄存器P0 P1 P2 P3实为相应端口锁存器 4 串行输入 输出端口 1 串行数据缓冲器SBUF是物理上独立的两个寄存器 共同使用一个地址 99H 2 串行控制 状态寄存器SCON控制监视串行口的工作状态 3 电源控制寄存器PCON控制单片机的低功耗工作方式及波特率选择 5 中断系统 1 中断优先级寄存器IP 2级优先 可软件设定 2 中断允许寄存器IE6 定时 计数器 1 定时器方式寄存器 TMOD 2 定时器控制寄存器 TCON 3 计数寄存器 TH0 TL0 TH1 TL1 可用于设定计数初值 时钟的基本概念启动单片机后 指令执行顺序 2 3CPU时序 单片机工作的基本时序 所谓时序就是CPU总线信号在时间上的顺序关系 CPU控制器实际上是复杂的同步时序电路 所有的工作都是在时钟信号的控制下进行的 每执行一条指令 CPU控制器都要发出一系列特定的控制信号 这些控制信号在时间上的相互关系就是CPU的时序 一个单片机系统要想正常工作 除了要做到电平匹配 功率匹配外 还要做到时序匹配 以上是单周期单字节指令在执行过程中ALE脉冲 取指操作 执行操作等在时间上的先后关系 时序的定义 单片机内的各种操作都是在一系列脉冲控制下进行的 而各脉冲在时间上是有先后顺序的 这种顺序就称为时序 指令周期 即从取指到执行完 所需时间 不同机器指令周期不一样 即使相同机器 不同的指令其指令周期也不一样 机器周期 机器的基本操作周期 一个指令周期含若干机器周期 单 双 四周期 每个状态周期含两个振荡周期 即相位P1 P2 振荡周期 由振荡时钟产生 振荡周期Tosc 1 fosc一个机器周期 12个振荡周期 12 1 fosc 例如 若fosc 12MHz 则一个机器周期 1 s 状态周期 一个机器周期分6个状态周期Si 指令的字节数与指令周期之间的关系 在MCS 51单片机的指令系统中有 单字节 双字节 三字节指令 在MCS 51的111条指令中 可以分为六种基本的时序 1 单字节单周期指令 4 双字节单周期指令 2 单字节双周期指令 5 双字节双周期指令 3 单字节四周期指令 6 三字节双周期指令 指令特点 在程序存储器ROM中仅占一个存储单元 在ALE第一次有效 S1P2 时 从ROM中读取指令的操作码 送入指令寄存器IR中 并译码执行 在ALE第二次有效时 封锁PC加一 使第二次读数无效 可见 1 ALE信号对
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号