福州建设工程质量监督网站,wordpress登陆死循环,有什么正规的网站做代加工,如何做网站卖商品的网站【金善愚】 单片机应用原理篇 笔记整理 课程视频 #xff1a;https://space.bilibili.com/483942191/channel/collectiondetail?sid51090 文章目录一、引脚分布介绍1.分类2.电源引脚3.时钟引脚(2根)4.控制引脚(4根)5.端口引脚(32根)二、存储器结构及空间分布介绍1.存储器的划… 【金善愚】 单片机应用原理篇 笔记整理 课程视频 https://space.bilibili.com/483942191/channel/collectiondetail?sid51090 文章目录一、引脚分布介绍1.分类2.电源引脚3.时钟引脚(2根)4.控制引脚(4根)5.端口引脚(32根)二、存储器结构及空间分布介绍1.存储器的划分方法2.程序存储器ROM3.数据存储器RAM三、复位、时钟与时序1.复位与复位电路2.时钟电路3.单片机时序四、并行I/O接口1.P1口1.P3口1.P0口1.P2口五、中断基本概念1.中断2.中断源3.中断的几个概念4.中断实现的功能六、80C51中断的系统结构1.中断系统的结构2.中断请求标志3.中断的优先级默认七、定时/计数器的结构及原理2.结构2.工作原理3.工作方式之定时4.工作方式之计数4.与定时/计数器相关的SFR七、定时/计数器的工作方式总结一、引脚分布介绍
1.分类
三类
电源及晶振引脚(共4只)控制引脚(共4只端口引脚(共32只) 2.电源引脚
Vcc(40脚):电源端接5V电源。Vss(20脚):接地端。 3.时钟引脚(2根)
XTAL1(19脚)接外部晶振和微调电容的一端。XTAL2(18脚)接外部晶振和微调电容的另一端。
4.控制引脚(4根) RST/Vpp(9脚)复位信号/备用电源输入引脚。 ○ 当RST引脚保持两个机器周期的高电平后就可以使80C51完成复位操作。 ○ 该引脚的第二功能是VBp即备用电源的输入端具有掉电保护功能。 ○ 若在该引脚接5V备用电源在使用中若主电源VCC掉电可保护片内RAM中的信息不丢失。 ○ ALE(30脚)地址锁存允许信号输出。 ○ 当CPU访问片外存储器时ALE输出信号控制锁存PO口输出的低8位地址从而实现PO口数据与低位地址的分时复用。 ○ 当80C51上电正常工作后自动在ALE端输出频率为fosc/6的脉冲序列(fosc代表振荡器的频率)。 EA(31脚)外部程序存储器地址允许输入端。 ○ 当EA接高电平时CPU执行片内ROM指令但当PC值超过OFFFH时将自动转去执行片外ROM指令; ○ 当EA接低电平时CPU只执行片外ROM指令。对于80C31由于其无片内ROM故其EA必须接低电平。 PSEN(29脚)片外ROM读选通信号端。
5.端口引脚(32根)
P0.0 ~ P0.7 (39 ~ 32脚) —— P0口P1.0 ~ P1.7 ( 1 ~ 8脚) —— P1口P2.0 ~ P2.7 (21 ~ 28脚) —— P2口P3.0 ~ P3.7 (10 ~ 17脚) —— P3口 1、P0口既可以作为普通I/O口又可以作为外部扩展时的数据总线和地址总线的低8位分时复用作为普通I/O口时外部要接上拉电阻。 2、P1口可以作为普通I/O口使用内部带上拉电阻 3、P2口可以作为普通I/O口使用又可作为外部扩展时地址总线的高8位作为普通I/O时内部带上拉电阻 4、P3口可以作为普通I/O口使用又具有第二功能作为普通I/O时内部带上拉电阻 二、存储器结构及空间分布介绍
1.存储器的划分方法
冯诺依曼结构 与 哈佛结构 (51单片机是改进的哈佛结构分时复用但是物理存储空间分开总线统一。)
2.程序存储器ROM
作用:存放程序、表格或常数具有非易失性特点:片内ROM与片外ROM可有2种组合方案
方案14KB以内的地址在片内ROM,大于4KB的地址在片外ROM中(图中折线)两者共同构成64KB空间; 方案2片内ROM被禁用全部64KB地址都在片外ROM中(图中直线)。
2种组合方案由EA引脚的电平状态决定:EA1时为方案1EA0时为方案2
注意ROM有6个特殊储存器单元——用于程序引导
存器单元存器内容0000H主程序入口地址0003HINT0中断程序入口地址000BHT0中断程序入口地址0013HINT1中断程序入口地址001BHT1中断程序入口地址0023HRI/TI中断程序入口地址
中断程序执行过程某一突发事件 → 相应中断入口地址自动装入PC → 引导两次跳转 → 执行相应中断服务程序
主程序一般应安排在0030H地址以后有中断需要时)
3.数据存储器RAM
作用:存放程序运行结果
(1) 低128字节的区域
①工作寄存器区(O0H ~1FH) ②可位寻址区(20H ~2FH) ③用户RAM区(30H ~7FH)
①区共有32个存储单元 每个单元都有1个8位地址(字节地址) 每个单元都有1个寄存器名称(RO~R7) 32个单元分为4组(第0第3组) CPU只能选一组为当前工作寄存器组
当前工作寄存器组取决于PSW的设置 CPU复位后RS1和RSO默认值为0即默认第0组为当前工作寄存器组。 ②区共有16个存储单元;共有128个位地址 每个单元都有一个字节地址每个单元都有8个不同的位地址
③区共有80个存储单元; 每个单元都有一个字节地址但没有位地址,也没有寄存器名 此区可作为堆栈区和中间数据存储区使用——用户RAM区
⚠️【注意】①区和③区只能按字节进行数据存取操作②区则可按字节和位两种方式存取操作。 (2)高128字节RAM区
每个存储单元都有一个字节地址但只有其中21个单元可以使用并有相应寄存器名称。 其中字节地址末位是0或8的SFR都具有位地址。
三、复位、时钟与时序
1.复位与复位电路
复位 —— 使单片机恢复原始默认状态的操作。 复位时片内各寄存器的初始值
寄存器名称默认复位值寄存器名称默认复位值PC0000 HTMOD00 HA00 HTCON00 HPSW00 HTH000 HB00 HTL000 HSP07 HTH100 HDPTR0000 HTL100 Hp0 ~ p3FF HSCOM00 HIPxxx0 0000 BSBUFxxxx xxxx BIE0xx0 0000 BPCOM0xxx0 000 B表中X表示可以是任意值B表示是二进制 在上电复位(冷启动)时的SRAM的内容为随机值而在按键复位(热启动)时SRAM的内容保持不变。 ⚠️注意:在用keil开发的程序中, keil 软件默认会在编译过程中加入把RAM初始化为00H
复位条件 为使电路正确复位需要使RST信号保持至少24个时钟周期(两个机器周期)的高电平。
2.时钟电路
单片机需要统一的时钟控制其时钟系统可以有两种方案。
方案一外部时钟方式
方案二内部时钟方式 晶振常见有6MHz、11.0592MHz、12MHz 其中11.0592MHz 方便对应波特率误差小
3.单片机时序 时序的概念 ● 时序是对象(或引脚、事件、信息)间按照时间顺序组成的序列关系。 ● 时序可以用状态方程、状态图、状态表和时序图4种方法表示,其中时序图最为常用。 ● 时序图亦称为波形图或序列图纵坐标表示不同对象的电平横坐标表示时间(从左往右为时间正向轴),通常坐标轴可省略。 举例 (1) 最左边是引脚的标识表示该图反映了RS、R/W、E、D0~D7四类引脚的序列关系。 (2) 交叉线部分表示电平的变化如高电平和低电平。 (3) 封闭菱形部分表示数据有效范围偶尔使用文字 Valid Data。 (4) 水平方向的尺寸线表示持续时间的长度。 时序关系 ● RS和R/W端首先变为低电平 ● 随后D0~D7端出现有效数据; ● R/W低电平tsp1之后E端出现宽度为tpw的正脉冲 ● E脉冲结束并延时tHD1后RS和R/W端恢复高电平 ● E脉冲结束并延时tHD2后DO~D7端的本次数据结束; 随后DO~D7端出现新的数据但下次E脉冲应在tc时间后才能出现根据这些信息便可以进行相应的软件编程了。 时钟的度量单位 时钟周期或节拍P、状态周期S、机器周期、指令周期 ● 1个状态周期S 2个节拍P) ● 1个机器周期 6个状态S 12个节拍P ● 1个指令周期约为14个机器周期 机器周期是CPU完成一个操作的最短时间 例如晶振为11.0592M则时钟周期 1/11059200s 12MHz→1us6MHz→2us
四、并行I/O接口
51单片机有32只I/O引脚分属于4个端口P0P3
可作为并行I/0输出通道例如数码管显示器连接通道)可作为并行I/0输入通道例如按键/开关连接通道)可作为串行通信通道例如双机通讯的连接通道)可作为外部设备的连接通道(例如存储器扩展通道) 由于工作任务不同4个端口的内部结构也不同。 了解4类端口的内部结构对于正确使用这些I/O端口非常重要。 以下按照先易后难的原则进行学习即P1→P3→P0→P2
1.P1口
1个位的内部结构
(1)输出信号 复位时锁存器自动置1默认以高电平输出
(2) 读引脚 读引脚置1时读入引脚值 ⚠️在读入前在内部总线先写1保证场效应管是截止的状态使外部引脚不受影响以免出错。
(3) 读锁存器 P1.0 ~ P1.0; //靠读锁存器实现的
P1口的要点: 1、P1口具有通用I/O口方式可实现输出、读引脚输入和读锁存器三种功能 2、P1口为准双向通用口作为通用输入口时应先使P1.n→1作为通用输出口时是无条件的。
1.P3口
1个位的内部结构 P3口的第二功能
(1)输出信号 作为通用I/O口时第二输出功能置1。外部引脚电平由内部总线决定。 作为第二功能时内部总线保持为1。外部引脚电平由第二输出功能端决定。
(2) 读引脚 读引脚置1时读入引脚值 ⚠️在读入前在内部总线先写1保证场效应管是截止的状态使外部引脚不受影响以免出错。
(3) 读锁存器 P1.0 ~ P1.0; //靠读锁存器实现的
P3口的要点: 1、P3口具有通用I/O口方式可实现输出、读引脚输入和读锁存器三种功能 2、P3口为准双向通用口作为通用输入口时应先使P3.n→1作为通用输出口时应先使第二输出端→1 3、P3口具有第二功能方式可实现第二输出和第二输入两种功能。
1.P0口 控制端置1时P0口作为 地址和数据总线低8位
P0口的要点: 1、P0口具有通用IO口方式可实现输出、读引脚输入和读锁存器三种功能 2、P0口为准双向通用口作为通用输入口时应先使P0.n→1作为通用输出口时应先使第二输出端→1 3、作为通用I/O口方式时需要外接上拉电阻 4、P0口具有地址/数据分时复用方式可实现地址/数据输出、数据输入两种功能 5、地址/数据分时复用方式时无需外接上拉电阻 6、分时复用方式的数据输入时无需程序写1操作。
1.P2口 控制端置1时P2口作为 地址和数据总线高8位
P2口的要点: 1、P2口具有通用I/O口方式可实现输出、读引脚输入和读锁存器三种功能 2、P2口为准双向通用口作为通用输入口时应先使P2.n→1作为通用输出口时应先使控制端→1 3、作为通用I/O口方式时无需外接上拉电阻 4、P2口具有地址输出方式可实现地址输出功能。
五、中断基本概念
1.中断
中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。
举例用日常生活的中断现象 中断是指在突发事件到来时先中止当前正在进行的工作转而去处理突发事件待处理完成后再返回到原先被中止的工作处继续进行随后的工作。
51单片机的中断
2.中断源
中断源数量和种类越多MCU处理突发事件的能力就越强。
80C51单片机共有5种中断源。
外部中断2个 —— 中断源信号由外部引脚P3.2和P3.3输入低电平触发、下降沿触发【程序设定】 定时器中断2个—— 定时的时候是对内部机器周期进行计数不需要外部引脚计数频率测量的时候需要外部引脚P3.4和P3.5【可扩展】 串口中断1个—— 引脚P3.0和P3.1
中断事件出现后系统将调用与该中断源相对应的中断函数进行中断处理汇编语言中规定了5个特殊的ROM单元用于引导中断程序的调用这些单元的地址称为中断向量。汇编编程时需要在此单元处放置一条指向中断程序入口地址的跳转语句以便引导中断程序的执行。对于C51语言调用中断函数时不用中断向量而要用到与中断源相应的中断号。80C51的中断源、中断向量及中断号的对应关系如下表所示。
51单片机的中断源中断源名称中断向量中断号P3.2 引脚的电平/脉冲状态INT0‾\overline{\text{INT0}}INT00003H0定时/计数器0的溢出标志位状态T0000BH1P3.3 引脚的电平/脉冲状态INT1‾\overline{\text{INT1}}INT10013H2定时/计数器1的溢出标志位状态T1001BH3串口数据缓冲器的工作状态TX/RX0023H4
3.中断的几个概念
中断源中断管理系统能够处理的突发事件中断请求中断源向CPU提出的处理请求中断响应过程由中断管理系统处理突发事件的过程中断函数针对中断源和中断请求提供的服务函数中断嵌套在中断服务过程中执行更高级别的中断服务。
4.中断实现的功能
分时操作 CPU可以使多个外设同时工作并分时为各外设提供服务从而大大提高了CPU的利用率和输入/输出的速度。实时处理 当计算机用于实时控制时请求CPU提供服务是随机发生的。有了中断系统CPU就可以立即响应并加以处理。故障处理 当计算机运行中出现如电源断电、存储器校验出错、运算溢出等错误时CPU可及时转去执行故障处理程序减小或消除故障产生的影响。
六、80C51中断的系统结构
1.中断系统的结构
80C51系列单片机的中断系统有5个中断源两个优先级可实现二级中断服务嵌套。 中断信号分别沿5条水平路径由左向右进行传送。其中TCON、SCON、IE、IP是相关SFR。
IT0、IT1 选1 是下降沿触发选0是低电平触发【程序】。触发后IE0随之置1【硬件】。
2.中断请求标志 TCON的中断标志
SCON的中断标志
中断的控制
EX0(IE.0)外部INT0中断允许位。ET0(IE.1)定时/计数器T0中断允许位EX1(IE.2)外部INT1中断允许位。ET1(IE.3)定时/计数器T1中断允许位ES (IE.4)串行口中断允许位EA (IE.7)CPU 中断允许总允许)位
中断优先级的控制 PX0 (IP.0)外部中断INT0中断优先级设定位。PT0 (IP.1)定时/计数器 T0中断优先级设定位。PX1 (IP.2)外部中断INT1中断优先级设定位。PT1 (IP.3)定时/计数器T1中断优先级设定位。PS (IP.4)串行口中断优先级设定位。
3.中断的优先级默认
各中断源响应优先级 及 中断服务程序入口表 中断优先级处理有三条原则 1、CPU同时接收到几个中断时首先响应优先级别最高的中断请求。 2、正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 3、正在进行的低优先级中断服务能被高优先级中断请求所中断。
⚠️注意单片机复位时IP初值为0 —— 默认所有中断源均为低级中断。 举例 80C51单片机的INT0、INT1引脚分别输入 压力超限 及 温度超限 中断请求信号定时器/计数器0作为 定时检测 的实时时钟用户规定的中断优先权排队次序为 压力超限 → 温度超限 → 定时检测要求确定IE、IP的内容以实现上述要求 答案 IE1xx0 0111 87H IPxxx0 0101 05H 七、定时/计数器的结构及原理
定时/计数器是单片机系统一个重要的部件其工作方式灵活、编程简单、使用方便,可用来实现定时控制、延时、频率测量、脉宽测量、信号发生、信号检测等。此外定时/计数器还可作为串行通信中波特率信号发生器。
2.结构 C/T*位 置0 为定时功能置1 为 计数功能
定时器:对片内机器时钟(周期方波)进行计数计数器:对Tx引脚输入的脉冲进行计数
2.工作原理 80C51内部两个16位的定时/计数器 T0 T1 注:单片机型号不同内部定时器个数也不同 T0由两个8位的 SFR TH0 和 TL0 构成 T1由两个8位的 SFR TH1 和 TL1 构成 具有定时或事件计数的功能可用于1)内部定时控制 2)外部事件计数和检测等 定时/计数器的实质是加一计数器 每个定时/计数器都可以由软件设置为 定时工作方式C/T* 0 计数工作方式C/T* 1 T0和T1受特殊功能寄存器TMOD和TCON控制 定时/计数器一旦启动TRx1便可和CPU并行工作对提高CPU工作效率和简化外围电路大有益处
3.工作方式之定时
定时方式时定时器计数脉冲由51单片机的片内振荡器经12分频后产生的。每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出。
4.工作方式之计数
计数方式时通过引脚P3.4 (T0或 P3.5 (T1)对外部脉冲信号进行计数。当输入脉冲信号产生由1至0的下降沿时定时器的值加1在每个机器周期CPU采样引脚P3.4 (T0和P3.5 (T1的输入电平。若前一个机器周期采样值为高下一个机器周期采样值为低则计数器加1。由于检测一个1至0的跳变需要2个机器周期故最高计数频率为振荡频率的二十四分一。虽然对输入信号的占空比无特殊要求但为了确保某个电平在变化之前至少被采样-次要求电平保持时间至少是一个完整的机器周期。
4.与定时/计数器相关的SFR
SFR含义TH (Timer High)定时器/计数器0高字节(8Ch)TL0 (Timer Low)定时器/计数器0低字节(8Ah)TH1定时器/计数器1高字节(8Dh)TL1定时器/计数器1低字节(8Bh)
七、定时/计数器的工作方式 总结
以上就是本文要讲的内容。 内容 ⚠️内容内容