单片机原理 STC15F2K60S2 微机原理与单片机接口技术复习要点 第一章微型计算机概述 ( 了解概念 ) 1.1.2 微型计算机基本构成 ( 基本结构由哪些部分构成 ) 1.1.3 单片微型计算机简介 ( 什么是单片机, 单片机的结构及各个部分的功能, 常见的单片机有哪些 ) 1>. 微型计算机基本构成 : 微处理器, 存储器 (ROM RAM) 与输入输出接口 (I/O 接口 ) 及外部设备及连接他们的系统总线组成 2>. 已知一个 8 位数据的存储器有 16 根地址总线, 则该存储器的容量为 64KB (2 16 =64K) 3>. 微机的系统总线结构是 : 三总线结构 : 地址总线 数据总线 控制总线 第二章微型计算机的基础知识 ( 熟悉 ) 微型计算机的数制及其编码 ( 会转换 ), 微型计算机的常用技术术语和常见技术 ( 熟悉概念 ) 熟悉概念 : 汉子区位码, 国标码, 汉子机内码, 汉子字形码计算机的冯诺依曼结构与哈佛结构 第三章计算机系统的组成和工作原理 ( 掌握重点 ) 3.1 模型机的工作过程 ( 了解 ) 3.1 单片机的结构 ( 熟悉 ) 1>. 关于 STC15F2K60S2 系列单片机的典型资源 ( 熟悉 ): 1. 有 8 通道 10 位 ADC 转换 2. 两个全双工异步串行口 3. 三个定时器 T0 T1 T2 ( 其中 T0 有 4 种工作方式,T1 有 3 种工作方式, T2 有 1 种工作方式 但是 T1 和 T2 可以作为波特率发生器 )
4. 增强型 8051 CPU, 每个机器周期只有一个系统时钟, 时钟频率分为 12 分频或不分频 5.60KB Flash 程序存储器 ;1KB 数据 Flash(EEPROM); 2048 字节的 SRAM 6. 一个高速同步串行通信端口 (SPI) 7.3 通道 PWM/ 可编程计数器阵列 / 捕获 / 比较单元 8. 内部高可靠上电复位电路和硬件看门狗 9. 内部集成高精度 R/C 时钟, 常温时, 可省去外部晶振电路 2>. 单片机的中央处理器是由运算器和控制器组成 程序状态字 (PSW) 各位的定义 ( 记住 ) 3>.STC15 单片机的储存结构 ( 要有印象 ) 结构特点 : 程序存储器和数据存储器的寻址空间分开 结构划分 : 片内集成 4 个物理上相互独立的存储器空间 : 程序 Flash 存储器 (60K) 数据 Flash 存储器 (1K) 内部数据存储器和扩展数据存储器 内部数据存储器分为低 128 字节 RAM( 地址 00H 7FH) 高 128 字节的 RAM ( 地址 80H FFH), 和特殊功能寄存器 (SFR)( 地址 80H FFH) 其中低 128 字节又分为工作寄存器区 (00H 1FH), 位寻址区 (20H 2FH) 用户与堆栈 RAM 区 (30H 7FH) 工作寄存器区的功能由 RS0 与 RS1 决定 位寻址区 : 片内的基本 RAM 的 20H----2FH 共 16 个字节是位寻址区, 每个字节 8 个位, 共 128 位, 其对应的地址分别为 00H-----7FH. 位地址还可以用字节地址加位号表示, 如 20H 的单位的 D5 位, 其地址可用 05H 表示, 也可用 20.5H 表示 用户与堆栈 RAM 区 ;30H-----7FH 共 80 个字节 其中高 128 字节的 RAM 的地址为 80H--FFH. 高 128 字节的 RAM 只能采用寄存器间接寻址方式访问 ; 特殊功能寄存器只能采用直接寻址方式, 字节地址能被 8 整除的特殊功能寄存器可以位寻址 堆栈寻址只能采用直接寻址方式 4>. 关于 STC15F2K60S2 的引脚 ( 有印象就行 )
数据总线 :P0 口 访问外部存储器时地址总线 :P0 口 ( 低 8 位 );P2 口 ( 高 8 位 ) 控制引脚 : 1 地址锁存信号线 (ALE):P4.5 2 外部存储器读操作 (RD):P4.4 3 外部存储器写操作 (WR):P4.2 5>.STC15F2K60S2 的 I/O 口工作模式 ( 掌握 ) 4 种工作模式 : 准双向口 / 弱上拉, 推挽 / 强上拉, 输入 / 高阻和开漏模式 复位后为准双向口 / 弱上拉模式 每个口的工作模式由 2 个控制寄存器中的相应位控制 (PnM0 和 PnM1, n=0,1,2,3,4,5) 例 : 若设置 P1.7 为开漏模式, P1.6 为强推挽输入输出模式, P1.5 为高阻输入模式, P1.4, P1.3, P1.2, P1.1 和 P1.0 为弱上拉 ( 准双向口 ) 模式, 则 P1M0 和 P1M1 设置如下 : MOV P1M0, #11000000B MOV P1M1, #10100000B I/O 口 4 种工作模式的结构和工作原理, 特别是准双向口 / 弱上拉的主要特点 : 当从端口引脚上输入数据时,T4 应一直处于截止状态 假定在输入之前曾输出锁存过数据 0, 则 T4 导通, 这样引脚上电位就被箝位在 0 电平, 使输入高电平无法读入 因此, 作为准双向口使用时, 输入数据时, 应先向口写 1, 使 T4 截止, 然后方可作高阻抗输入 这是准双向口的主要特点
第四章指令系统及汇编语言程序 1>. 指令寻址方式 :( 要掌握会判断 ) 1. 立即数寻址 : 指令中, 操作所需要操作数就在指令中, 是指令的组成部分, CPU 在得到指令的同时也立即得到了操作数 2. 寄存器寻址 : 指令所用操作数在 CPU 的内部寄存器中, 指令中操作数用寄存器名 (A, R0~R7, B, DPTR) 表示 一条指令中, 源操作数和目的操作数, 都可采用寄存器寻址方式 3. 寄存器间接寻址 : 操作数所在存储单元的有效地址在指定的寄存器中, 指令 中给出的是存放这个地址的寄存器 用作寄存器间接寻址的寄存器有 R0, R1, 数据指针 DPTR 使用间接寻址的标志是在寄存器前面加一个 @ 号, 以区 别于寄存器寻址 比如 :MOV R0,#30H MOV A,@RO 4. 直接寻址 : 指令的操作数在存储器中时, 指令中给出的是该操作数所在存储 器的地址 比如 :MOV A,20H 5. 变址寻址 : 操作数地址 = 偏移量 (A 内容 ) + 变址基值 两种寻址方式 :1. PC 作基地址加上 A 的内容形成操作数地址 A+PC 2. DPTR 作基地址加上 A 内 容形成操作数地址 A+DPTR 两种 :MOVC A,@A+DPTR,MOVC A,@A+PC, 6. 相对寻址 : 该寻址方式主要用于相对跳转指令 把指令中给定的地址偏移 量与下一条指令所在单元地址 ( 即程序计数器 PC 中的内容 ) 相加, 即得到真 正的程序转移地址 7. 位寻址 : 位操作指令能对位地址空间每一位进行运算和传送操作 例如 :MOV C, P1.0 ; 将 P1.0 的状态传送到 C SETB 20H.6 ; 将 20H 单元的 D6 位置为 1 CLR 25H ; 将 25H 位的内容清零 2>. 指令表 ( 必须记住, 提供英文全称辅助记忆 ) MOV Dest,Source 赋值 ( 传送 )(Move)
MOVX Dest,Source MOVC Dest,Source ( 片外 ) 赋值 ( 存储器 ) 赋值 (Move Code) XCH Dest,Source ( 寄存器间 ) 交换 (Exchange) XCHD Dest.,Source ( 寄存器间低 4 位 ) 交换 SWAP A PUSH Source ( 自己的低 4 位与高 4 位 ) 交换 入栈操作 POP Dest 出栈操作 ADD/ADDC Dest,Source 加法 / 带进位的加法 (Addition) DA A SUBB Dest,Source 累加器十进制调整 减法 (Subtraction) MUL AB 乘法 (Multiplication) DIV AB 除法 (Division) INC Dest 自加 (Increment) DEC Dest 自减 (Decrement) ANL A( 或 direct),source 逻辑与 (And Logic) ORL A( 或 direct),source 逻辑或 (Or Logic) XRL A( 或 direct),source 逻辑异或 (Exclusive Or Logic) ANL C,bit( 或 /bit) 位与 ORL C,bit( 或 /bit) 位或 ) CLR A( 或 C, 或 bit) 清零 (Clear) SETB C( 或 bit) CPL A( 或 C, 或 bit) 取反 (Converse Position Logical) RL A 循环左移 (Rotate Left) RLC A 循环左移加 CY(Rotate Left with CY) RR A 循环右移 (Rotate Right) RRC A 循环右移加 CY(Rotate Right with CY) AJMP addr 短转移 ( 绝对转移 )(Absolute Jump) LJMP addr SJMP addr 长转移 (Long Jump) 相对转移 (Short Jump)
JMP @A+DPTR NOP 相对转移 (Short Jump) 空操作 (Not Operation) JZ addr 为 0 转移 (Jump if Zero) JNZ addr 非 0 转移 (Jump if Not Zero) CJNE Dest,Source,addr 比较不等转移 (Compare Jump if Not Equal) DJNZ Dest,addr 减 1 非 0 转移 (Decrement Jump if Not Zero) JC addr C 为 1 转移 (Jump if C=1) JNC addr C 非 1 转移 (Jump if Not C=1) JB bit, addr 直接地址位为 1 转移 (Jump if bit=1) JNB bit, addr 直接地址位非 1 转移 (Jump if Not bit=1) JBC bit, addr 直接地址位为 1 转移 (Jump if bit=1), 且令 bit=0 LCALL addr ACALL addr RET RETI 子程序长调用 (Long Call) 子程序绝对调用 (Absolute Call) 子程序返回 (Return) 中断返回 ( Return from Interruption) ( 备注 :Source,Dest 为源操作数和目的操作数,addr 为地址 ( 符号名地址 ) 或相对偏移量 ) 3>. 伪指令 ( 会用 ) 起始地址设置伪指令 ORG 数据定义伪指令 DB,DW 例如 : ORG 1000H SEG: DB 23H ; 定义一个字节 DW 1000H ; 定义一个字 DB MCS-51 ; 定义一个字符串 等值伪指令 EQU; 例如 :BUFFER DATA 40H DATA 指令 ; 例如 : BUFFER DATA 40H XDATA 指令 ; 例如 :BUFFER DATA 40H 定义位命令 BIT ; 例如 : DOGOUT BIT P3.4;
文件包含命令 INCLUDE; 例如 :$INCLUDE (STC15.INC) 条件汇编控制指令 汇编结束伪指令 END 4>.4.9 节能读懂程序 (),4.10 结合到综合训练课中 第五章 ( 要学会应用 ) 结合到综合训练课中, 掌握作业内容 第六章中断 ( 概念 原理 ) 1. 什么是中断? 所谓中断是指 CPU 在正常执行程序的过程中, 由于某种随机 发生的事件使它暂停当前正在执行的程序, 转而去执行另外的一段程序 ( 中 断服务程序 ), 在这段程序完成后自动返回被打断的程序处继续执行, 这一 过程称为中断 2. 中断和调用子程序之间的主要区别 中断调用子程序 产生时刻是随机的 程序事先安排好的 既保护断点 ( 自动 ), 又保护现场 ( 程序 ) 可只保护断点 ( 自动 ) 处理程序的入口地址是单片机硬件确定的, 用户不能改变 子程序的入口地址是程序编排的 3.. 什么是中断源?STC15F2K60S2 单片机有哪几个中断源? 中断源是指能发出中断请求, 引起中断的装置或事件 STC15F2K60S2 单片机提供 14 个中断请求源 : 5 个外部中断请求 (INT0,INT1,/INT2,/INT3,/INT4,),3 个片内定时 / 计数器 (T0,T1,T2) 溢出中断请求,2 个片内异步串行口 (UART) 中断请求,1 个 ADC 中 断,1 个 SPI 中断,1 个低电压检测中断,1 个 PCA 中断 4. STC15F2K60S2 单片机的 14 个中断中, 哪些具有 2 个中断优先级, 可实现二级中断服务程序嵌套? 哪些中断只有固定的最低优先级
中断? 14 个中断中, 下列中断具有 2 个中断优先级 :2 个外部中断 (INT0,INT1),2 个 片内定时 / 计数器 (T0,T1) 溢出中断,2 个片内异步串行口 (UART) 中断,1 个 ADC 中断,1 个 SPI 中断,1 个低电压检测中断,1 个 PCA 中断 剩下的 4 个中断只有固定的最低优先级中断 : 外部中断 /INT2,/INT3,/INT4 和定 时器 2(T2) 5. STC15F2K60S2 单片机对中断源的允许和禁止由哪几级允许控制组成?IE IE2 IP IP2 和外部中断使能和时钟输出寄存器 INT_CLKO 的相应位的作用是什么? IE IE2 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 EA ELVD EADC ES ET1 EX1 ET0 EX0 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 ET2 ESPI ES2 时钟输出寄存器 INT_CLKO 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 EX4 EX3 EX2 LVD_WAKE T2CLKO T1CLKO T0CLKO IP 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 PPCA PLVD PADC PS PT1 PX1 PT0 PX0 IP2 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 PSPI PS2 单片机对中断源的允许和禁止由两级允许控制组成, 即总控制和对每个中断源的分别控制 各位的作用 ( 简答, 这里从略 ) 6. 哪些中断中断标志是硬件自动清零? 哪些中断中断标志必须由用
户在软件清零? 定时器 / 计数器 T0 T1 的中断标志 TF0 或 TF1, 外部中断 0 和外部中断 1 的中断标志 IE0 和 IE1 都是硬件自动清零 外部中断 2 3 和 4 和定时器 2(T2) 的中断请求标志对用户不可见, CPU 响应外部中断 2~4 后, 由硬件自动清除中断请求标志, 无需用户清 0 串行口中断标志 (UART1 为 TI 和 RI,UART2 为 S2TI 和 S2RI) ADC 中断请求标志 ADC_FLAG SPI 中断请求标志位 SPIF PCA 中断请求标志位 CF/CCF0/CCF1/CCF2 和低电压检测中断请求标志位 LVDF 不能自动硬件自动清除, 必须由用户在软件清零 7. STC15F2K60S2 单片机中断响应的条件有哪些?CPU 响应中断时, 将执行哪些操作? 单片机响应中断的条件 : 中断源有请求 ( 相应中断标志位为 1) 相应的中断允许位设置为 1 CPU 中断允许总控制位开放 (EA=1); 无同级或高级中断正在处理 CPU 响应中断时, 将执行如下操作 : (1) 当前正被执行的指令执行完毕, 如果当前正在执行的指令是 RETI 或任何访问 IE IP 寄存器的指令, 则应至少再执行一条其他指令 (2)( 下一条指令 )PC 值被压入堆栈 ;( 断点保护 ( 自动 )) (3) 现场保护 ; (4) 阻止同级别其他中断 ; (5) 将中断服务程序的入口地址 ( 中断向量地址 ) 装载到程序计数器 PC; (6) 执行相应的中断服务程序 ISR (7) 恢复现场后, 中断服务程序 ISR 以 RETI( 中断返回 ) 指令结束, 将 PC 值从堆栈中取回, 之后从程序的断点处继续执行 8. 中断服务程序由哪几个部分组成? 中断服务程序由四个部分组成, 即保护现场 中断服务 恢复现场以及中断返回 9. 中断服务程序入口地址 :( 了解 )
外部中断 0 定时器 / 计数器 T0 中断外部中断 1 定时器 / 计数器 T1 中断串行口中断 A/D 转换中断 LVD 中断 PCA 中断串行口 2 中断 SPI 中断外部中断 2 外部中断 3 定时器 T2 中断预留中断外部中断 4 0003H 000BH 0013H 001BH 0023H 002BH 0033H 003BH 0043H 004BH 0053H 005BH 0063H 006BH 0073H 007BH 0083H 第七章定时计数器与可编程计数器阵列 () 1. 定时 / 计数器 0,1,2 都有哪几种工作方式? 定时器工作方式控制寄 存器 TMOD 中 M1,M0,C/T 位的作用是怎样的? 定时器工作方式控制寄存器 TMOD 位号 D7 D6 D5 D4 D3 D2 D1 D0 定时器名定时器 1 定时器 0 位名称 GATE C/T M1 M0 GATE C/T M1 M0 T0 T1 工作方式 :( 建议记住 ) M1 M0 工作方式功能 0 0 方式 0 16 位自动重装初值 0 1 方式 1 16 位定时, 不自动重载初值 1 0 方式 2 8 位自动重载初值
1 1 方式 3 留作备用 2. 定时器控制寄存器 TCON 的位 TF1,TF0,FR1,TR0 的作用? 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 3. 辅助寄存器 AUXR 的各位的作用? 位号 D7 D6 D5 D4 D3 D2 D1 D0 位名称 T0x12 T1x12 UART_M0x6 T2R T2_C / T T2x12 EXTRAM S1ST2 4. 假设定时器的系统时钟频率已知 ( 例如 6MHz), 在 12 分频或不分频的情况下, 定时器 0(1,2) 的最大定时能力是多少? 若给定定时时间 ( 例如 1ms, 1s), 如何计算定时器的计数次数? 如何设置定时器 0(1,2) 的计数初值? 如何进行定时器初始化工作 ( 初始化的一般步骤 )? 以定时器 0 为例具体定时器的初始化编程? 解 : 以定时器 0, 系统时钟频率 6MHz, 用 12 分频, 需定时 1ms 为例, 单位时间 :Tu=12/6000000=2μs 对方式 0 和方式 1: 16 位定时器最大定时能力为 : T= (2 16-0) 2μs=131072μs= 131.072ms 对方式 2, 8 位定时器最大定时能力为 : T= (2 8-0) 2μs=512μs 计数次数 :1000/2=500 对方式 0 和方式 1, 计数初值 : 2 16-500= 65036 =0FE0CH (TH0 装入 FEH,TL0 装入 0CH) 定时 / 计数器初始化的一般步骤大致如下 : 1) 设置工作方式, 将控制字写入 TMOD 寄存器 ( 对 T0 和 T1) 或 AUXR( 对 T2) ( 注意 TMOD 不能进行位寻址 ) 2) 设置分频方式, 将控制字写入 AUXR 寄存器 默认的情况是 12 分频 ( 兼容传统 8051 单片机 ), 如使用传统 8051 单片机模式, 无需设置 3) 计算定时 / 计数初值, 并将其装入 TLx THx 寄存器 ( 对于 T0 和 T1), 或 T2L
T2H 寄存器 ( 对于 T2) 4) 置位 ETx 和 EA 允许定时 / 计数器中断 ( 若需要 ), 必要时, 还需要对 IP 操作, 确定各个中断源的优先级 5) 置位 TRx ( 对于 T0 和 T1) 或 T2R ( 对于 T2) 以启动定时 / 计数 以定时器 0, 系统时钟频率 6MHz, 用 12 分频, 需定时 1ms 中断为例, 初始化编程如下 : MOV TMOD, #01H ;T0 初始化, 方式 1, 16 位定时器方式 MOV TL0, #0CH ; 计数初值 9E58H MOV TH0, #0FEH ; 装入时间常数 MOV AUXR, #00H ; AUXR 初始化为 0, 也可不设置 SETB ET0 ; 允外 T0 中断 SETB EA ;CPU 开中断 SETB TR0 ; 启动 T0 计数 5. STC15F2K60S2 单片机提供了 4 路可编程时钟输出功能 ( 了解即可 ) MCLKO/P5.4, T0CLKO/P3.5, T1CLKO/P3.4, T2CLKO/P3.0 第 8 章数据通信 1. 并行和串行通信的区别是什么? 有哪些优缺点? 答 : 并行通信是以字节 (Byte) 或字节的倍数为传输单位 ; 一次传送一个或一个以上字节的数据, 数据的各位同时进行传送 优点是 : 控制简单, 传送速度快 缺点是 : 由于传输线较多, 长距离传送成本较高, 因此仅适用于短距离传送 串行通信是通信双方使用一根或两根数据信号线相连, 同一时刻, 数据在一根数据信号线上一位一位地顺序传送, 每一位数据都占据一个固定的时间长度 优点是 : 传输线少, 长距离传送成本很低, 适合远距离传送及易于扩展 缺点是 :
速度慢 传输时间长等 缺点是传输速度慢, 因此适用于长距离传输 2. 同步通信和异步通信的区别是什么? 有哪些优缺点? 答 : 异步通信的数据通常是以字符 ( 或字节 ) 为单位组成字符帧传送的 优点是不需要传送同步时钟, 字符帧长度不受限制, 故而设备简单 缺点是字符帧中因为包含起始位和停止位而降低了有效数据的传输速率 同步通信是一种连续串行传送数据的通信方式, 一次通信传输一组数据 ( 包含若干个字符数据 ) 优点是数据传输速率较高, 通常可达 56000 bit/s 或更高 缺点是要求发送时钟和接收时钟必须保持严格同步, 硬件电路也很复杂 3. 串口 1 的通信模式及波特率的计算 ( 了解 ) 4. 串口 1 的编程要点 1) 设置串口的工作模式 设置 SCON 寄存器的内容 若要串口接收, 需将其中的 REN 位置 1
串口 1 控制寄存器 SCON 2) 设置正确的波特率 ( 结合定时器的初始化 ) 1 使用定时器 1 作为波特率发生器时, 需设置定时器 1 的工作方式和时间常数 ( 设置 TMOD 和 TH1,TL1 寄存器内容 ), PCON. SMOD 位 ; 启动定时器 1( 置位 TCON. TR1) 2 使用定时器 2 作为波特率发生器时, 需设置定时器 2 寄存器和相应的 位, 包括 : 定时器 2 自动重装寄存器 T2H 和 T2L, AUXR. T2_C/ 位, T2x12 位 启动 T2( 置位 T2R), T2 开始计数 3) 设置串口的中断优先级 ( 根据需要设置 IP 寄存器 PS 位, 也可以不设置, 取默认值 ), 设置相应的中断控制位 (IE. ES 和 IE. EA) 4) 如要串口 1 发送, 将数据送入 SBUF 5) 编制串行中断服务程序, 在中断服务程序中要有清除中断标志指令 ( 将 SCON. TI 和 RI 清 0) 5. 单片机用串口 1 工作于方式 1 与计算机通信, 允许接收数据, 串口开中断, 单片机的系统时钟为 11.0592MHz, 通信参数为 9600,n,8,1 ( 这是常见通信参数表示方法, 即波特率为 9600bit/s, 无奇偶校验 (n: none) ( 或 E:Even, O:Odd), 8 个数据位, 1 个停止位 ) 试编写串口 1 的初始化程序 ( 只写初始化程序 ) 参考作业 8-6 第 9 章模数转换器与数模转换器 () 1. 逐次逼近式模数转换器的工作原理
+ 比较器 - Vx VC D/A 转换 基准电源 SAR 数字量 输出 转换命令 时序及控制逻辑 状态线 2. 选择 A/D 模块的重要的指标是 : 转换精度和转换速度 转换精度常用分辨率和转换误差来描述, 而分辨率是 A/D 转换器能分辨最小信号的能力, 表示数字量变化一个相邻数码所需输入模拟电压的变化量 分辨率常用 A/D 转换器输出的二进制位数表示 3. STC15F2K60S2 单片机 ADC 模块的编程要点 1) 设置 P1 口中的相应口线作为 A/D 转换通道 ( 设置 P1ASF 寄存器 ) 根据需要设置转换结果存储格式 ( 设置 CLK_DIV 中的 ADRJ 位 ) 位号 D7 D6 D5 D4 D3 D2 D1 D0 名称 P17ASF P16ASF P15ASF P14ASF P13ASF P12ASF P11ASF P10ASF 2) 设置 ADC_CONTR( 包括打开 ADC 电源, 时钟速度, 通道选择, 开启 ) 位号 D7 D6 D5 D4 D3 D2 D1 D0 名称 ADC_ POWER SPEED1 SPEED0 ADC_ FLAG ADC_ START CHS2 CHS1 CHS0 3) 适当延时, 等内部模拟电源稳定, 设置值稳定 一般延时 1ms 以内即可 4) 查询 A/D 转换结束标志 ADC_FLAG, 判断 A/D 转换是否完成, 若完成, 则读出结果 ( 结果保存在 ADC_RES 和 ADC_RESL 寄存器中 ), 并进行数据处理 如果是多通道模拟量进行转换, 则更换 A/D 转换通道后要适当延时, 使
输入电压稳定, 延时量取 20-200μs 即可 ( 与输入电压源的内阻有关 ), 如果输入电压源的内阻在 10KΩ 以下, 可不加延时 5) 若用中断方式, 还需进行中断设置 (EADC 置 1,EA 置 1) 6) 在中断服务程序中读取 ADC 转换结果, 并将 ADC 中断请求标志 ADC_FLAG 4. 权电阻型数 / 模转换器的原理 D7 D6 D5 D4 D3 D2 D1 D0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 V B S 7 20 R S6 2 1 R S5 22 R S 4 2 3 R S 3 2 4 R S 2 2 5 R S 1 2 6 R S 0 27R R f - A + V OUT V 0 V 1 V 2 V 3 V 4 V 5 V 6 V 7 20R 21R 22R 2 3 R 24R 25R 26R 27R R f - A + V OUT
第 10 章人机交互接口 () 1. 非编码简易键盘接口电路 +5V R0 R1 R2 R3 R4 R5 R6 R7 CD4068 2 1 3 4 5 9 10 11 12 STC15F2K60S2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 S0 S1 S2 S3 S4 S5 S6 S7 INT0 2. 为什么进行按键消抖? 有哪些方法? 键盘在使用中考虑到人员操作或机械特性在接触时产生的抖动问题, 即按键开关在接通或断开瞬间并非完全可靠接触, 而是存在一个抖动期, 在此期间的电平变化波形如图所示 th tw1 tl tw2 th 抖动期一般不超过 10 ms 在口线电平抖动期间, 单片机无法准确检测出口线电平的正确值, 必须采取一定的措施进行鉴别 常用的方法是延时消抖法, 例如遇到由高向低的电平转换后先不急于读取口线键值, 而是在中断服务程序的开始执行一段 10~20 ms 的延时程序 若延时程
STC15F2K60S2 序后再次判断口线仍为低电平则进入口线的键值读取程序, 否则放弃键值读取操 作 3. 矩阵式编码键盘接口电路 +5V R3 R2 R1 R0 R4 R5 R6 R7 STC12C5A60S2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 INT0 4. 共阴极七段码 LED 静态显示接口电路 RXD TXD P1.0 +5V Q1Q2Q3Q4Q5Q6Q7Q8 EN CD4094 D QS CP ST +5V Q1Q2Q3Q4Q5Q6Q7Q8 EN CD4094 D QS CP ST +5V Q1Q2Q3Q4Q5Q6Q7Q8 EN CD4094 D QS CP ST 5. LED 动态显示接口的具体电路 STC15F2K60S2 P2.3 P2.2 P2.1 P2.0 5.1kΩ 5.1kΩ 5.1kΩ 5.1kΩ +5V P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1G 2G 74LS244 560Ω 8a b c d e f g dp a b c d e f g dp a b c d e f g dp a b c d e f g dp
第 11 章复位 时钟和省电方式控制 () 1.STC15F2K60S2 单片机的复位有哪几种? 哪些是热启动复位? 哪些是冷启动复位? 七种 : 1) 外部 RST 引脚复位 2) 软件复位 3) 内部低电压检测复位 4) 看门狗复位 5) 及程序地址非法复位 6) 掉电复位 / 上电复位 ( 并可选择增加额外的复位延时 180ms, 也叫 MAX810 专用复位电路, 其实就是在上电复位后增加一个 180ms 复位延时 ) 7) MAX810 专用复位电路复位其中,1)-5)5 种复位是热启动复位,6),7) 种是冷启动复位 2. STC15F2K60S2 单片机内置的看门狗电路的作用是什么? 大致原理是怎样的? 单片机为防止系统在异常情况下受到干扰, CPU 程序跑飞, 导致系统长时间异常工作, 往往需在系统中使用看门狗 (Watch Dog) 电路 看门狗电路的基本作用就是监视 CPU 的工作 如果 CPU 在规定的时间内没有按要求访问看门狗, 就认为 CPU 处于异常状态, 看门狗就会强迫 CPU 复位, 使系统重新从头开始按规律执行用户程序 大致原理 : 正常工作时, 单片机可通过一个 I/O 引脚定时向看门狗脉冲 输入端输入脉冲 ( 脉冲宽度只要不超出看门狗电路的溢出时间即可 ) 当系统死机时, 单片机就会停止向看门狗脉冲输入端输入脉冲, 超过一定时间后, 看门狗电路就会发出复位信号, 将系统复位, 使系统恢复正常工作 3. STC15F2K60S2 单片机有哪几种 3 种省电模式可以降低功耗? 怎
么退出掉电模式和空闲模式? 1) 3 种省电模式可以降低功耗低速模式空闲模式掉电模式 2) 进入掉电模式的单片机可由外部中断唤醒 可将 CPU 从掉电模式唤醒的外部管脚 ( 除 ADC,SPI) 有 : INT0/P3.2, INT1/P3.3, /INT2/P3.6, /INT3/P3.7, /INT4/P3.0, CCP0/CCP1/CCP2, RxD/RxD2,T0/T1/T2 和内部低功耗掉电唤醒专用定时器 ( 内部低电压检测中断也能 ) STC15F2K60S2 单片机进入停机模式 / 掉电模式后, 除了可以通过外部中断源进行唤醒外, 用掉电唤醒专用定时器, 也可将进入掉电模式后的单片机唤醒, 使其恢复到正常工作状态 附加重点 :( 特殊功能寄存器 1 2 3 4 必须掌握 ) 特殊功能寄存器 ( 从上到下依次对应寄存器的高位到低位 ) 1 程序状态标志寄存器 PSW CY: 进位标志 执行加减指令时, 如果操作结果的最高位 D7 进 / 借位, 则 CY 位置 1 否则置 0, 执行乘法指令时,CY 清 0 AC: 辅助进位标志 当执行加减指令时, 如果低四位数向高四位数产生进 / 借位 则 AC 置 1, 否则置 0 F0: 用户自定义 RS1 RS0: 工作寄存器组选择控制位 OV: 溢出标志位, 指示运算过程中是否发生了溢出, 有溢出时,OV 为 1 否则为 0 F1: 用户标志位 1 P: 奇偶标志位, 如果累加器 ACC 中的 1 的个数为偶数,P=0, 否则 P=1
2 辅助寄存器 AUXR T0x12: 决定定时器 T0 是否 12 分频 0:12 分频, 定时周期为 1μs 1: 不分频, 定时周期为 1T T1x12: 决定定时器 T1 是否 12 分频 0:12 分频, 定时周期为 1μs 1: 不分频, 定时周期为 1T UART_M0x6: 串行口模式 0 状态下的速度设置 TR2: 定时 / 计数器 T2 运行控制位 T2_C/T: 定时 / 计数器 T2 功能选择位 T2x12:T2 是否 12 分频 EXTRAM: 内部扩展 RAM 访问控制位 S1ST2: 串行口 1 波特率发生器选择位 0: 选择 T1 为波特率发生器 1: 选择 T2 为波特率发生器 3 中断允许控制器 IE(0: 关闭中断 ;1: 开放中断 ) EA: 中断总开关 ELVD: 低电压中断允许控制位 EADC:A/D 转换中断允许位 ES: 串行口中断允许标志 ET1: 定时器 T1 中断允许控制位 EX1: 外部中断 1 允许控制位 ET0: 定时器 T0 中断允许控制位 EX0: 外部中断 0 允许控制位 4 工作方式寄存器 TMOD GATE: 门控位 C/T: 功能选择位 0: 设定为定时器工作模式 1: 设定为计数器工作模式
M1 MO: 选择定时器 / 计数器工作模式 5 中断优先级控制寄存器 IP(0: 低优先级 ;1: 高优先级 ) PPCA:PCA 中断优先级 PLVD: 低电压中断优先级 PADC:A/D 转换中断优先级 PS: 串行口中断优先级 PT1: 定时 / 计数器 T1 中断优先级 PX1: 外部中断 1 优先级 PT0: 定时 / 计数器 T0 中断优先级 PX0: 外部中断 0 优先级 6 定时/ 计数器控制寄存器 TCON TF1:T1 溢出中断请求标志 TR1:T1 的运行控制位 0:T1 停止运行 1:T1 启动运行 TF0:T0 溢出中断请求标志 TR0:T0 的运行控制位 0:T0 停止运行 1:T0 启动运行 IE1: 外部中断 1 的中断请求标志 IT1: 外部中断 1 的中断触发方式控制位 IE0: 外部中断 0 的中断请求标志 IT0: 外部中断 0 的中断触发控制位 7 串口 1 控制寄存器 SCON SM0/FE: 为 1 时, 该位用于帧错误检测, 它必须由软件清零 为 0 时,SM0/FE 位和 SM1 一起指定串行通信的工作方式 SM1: 多机通信控制位 SM2: 多机通信控制位 REN: 允许接收控制位
1: 允许串行口接收数据 ; 0: 禁止串行口接收数据 TB8: 在方式 2 和 3 时, 它是要发送的第 9 个数据位, 按需要由软件进行置位或清零 该位可用作数据的奇偶校验位, 或在多机通信中用作地址帧 / 数据帧的标志位 RB8: 在方式 2 和 3 时, 它是接收到的第 9 位数据, 为奇偶检验位或地址帧 / 数据帧标志位 在方式 1 时, 若 SM2=0, 则 RB8 是接收到的停止位 在方式 0 时, 不使用 RB8 TI: 发送中断标志位, 必须用软件清零 RI: 接收中断标志位 8 掉电控制寄存器 PCON SMOD: 串行口波特率系数控制位 1: 使方式 1 方式 2 和方式 3 的波特率加倍 0: 各工作方式的波特率不加倍 SMOD0: 帧错误检测有效控制位 1:SCON 寄存器中的 SM0/FE 位用于 FE( 帧错误检测 ) 功能 0:SCON 寄存器中的 SM0/FE 位用于 SM0 功能, 和 SM1 一起指定串行通信的工作方式 LVDF: 片内低电压检测中断请求标志位 9 ADC 控制寄存器 ADC_CONTR ADC_POWER:ADC 电源控制位 SPEED1:ADC 转换速度控制位 SPEED0:ADC 转换速度控制位 ADC_FLAG:A/D 转换结束标志位 ADC_START:A/D 转换起动控制位 CHS2: 模拟输入通道选择 CHS1: 模拟输入通道选择 CHS0: 模拟输入通道选择 10 模拟功能控制寄存器 P1ASF
P17ASF P16ASF P15ASF P14ASF P13ASF P12ASF P11ASF P10ASF 功能 : 如果要使用相应口的模拟功能, 需将 P1ASF 特殊功能寄存器中的相应位置为 1