西咸新区建设环保网站,网址收录平台,巴中城乡建设官方网站,十堰网站建设u2028【单片机】51单片机学习笔记 第1、2章#xff1a;概述1. 单片机的概述#xff08;位数和内核#xff09;2. 单片机命名规则3. 单片机的各引脚功能4. 硬件结构5. 存储器6. 时钟#xff08;机器周期的计算#xff09;7. 复位 第3章 #xff1a;基础1. keil目标文件后缀名2.… 【单片机】51单片机学习笔记 第1、2章概述1. 单片机的概述位数和内核2. 单片机命名规则3. 单片机的各引脚功能4. 硬件结构5. 存储器6. 时钟机器周期的计算7. 复位 第3章 基础1. keil目标文件后缀名2. proteus中元器件的名称3. 基本进制之间转换4. 数据类型5. 运算符6. 基本控制语句7. 变量及存储方式 第4章IO口1. IO口结构2. 功能和特点 第5章数码管和键盘1. 数码管分类和显示方法2. 矩阵键盘的分类3. 去机械抖动方法4. 控制线的根数 第6章中断1. 51单片机中断源个数2. 各中断对应引脚3. 中断嵌套4. 中断请求5. 中断响应6. 中断优先级处理原则7. 中断相关寄存器TCON、IE、IP8. 中断入口地址9. 外部中断触发方式 第7章定时/计数器1. 定时器/计数器核心部件2. 实质3. 不同功能脉冲来源4. 定时器相关寄存器TMOD5. 计数时所对应的引脚编号6. 总结 第八章串口1. 51单片机串口概述2. 相关寄存器3. 工作方式4. 接收发送完成后判断条件 第九章数模转换1. LCD1602显示内容多少2. 每行的起始地址3. ADC和DAC的功能4. DAC08325. 10位ADC分辨率的计算 第1、2章概述
1. 单片机的概述位数和内核
8位、内核8051
2. 单片机命名规则
前缀表示是哪家公司的产品型号9代表内部含 FLASHC代表 CMOS 产品LV 代表低电压S 代表可串行下载。XXXX代表型号数字如 51、52后缀4个参数分别是速度单位 MHz、封装、温度范围、处理工艺 例如 AT89C51-12PI AT该单片机是 ATMEL 公司9含 FLASH 存储器单片机CCMOS 产品51型号1212MHzP塑料双列直插 DIP 封装I是工业用产品温度范围为 -40~125℃按标准处理工艺生产
3. 单片机的各引脚功能 40个引脚可分为4类电源2个、时钟2个、控制4个、IO口32个电源VCC、GND GND20号引脚接地VCC40号引脚5V 电压 时钟XTALExternal Crystal Oscillator外部晶振 XTAL119号引脚接外部晶体和微调电容的一端。在芯片内部是振荡电路反相放大器的输入端。XTAL218号引脚接外部晶体和微雕电容的另一端。在芯片内部是振荡电路反相放大器的输出端。 控制RST、EA、ALE、PSEN RSTReset9号引脚复位是单片机和系统中的其他部件处于某种确定的初始状态。复位后程序从 0000H 开始执行。复位有上电复位和开关复位。 复位后内部寄存器SP 为 07H、P0~P3 为 FFH EA/VPP31号引脚内部和外部程序存储器选择信号。当 EA 为高电平时CPU 从片内程序存储器取指令执行地址超过 0FFFH 后自动转向片外程序存储器。当 EA 为低电平时CPU 只从片外程序存储器取指令对片内 EPROM 编程时该脚接 21V 编程电压 VPP。ALEAddress Latch Enable30号引脚地址锁存信号。与PROG编程脉冲输入端共用一个引脚。在访问外部存储器时自动输出信号锁存 P0 地址。在非访问外部存储器时ALE 引脚会以时钟频率的六分之一输出脉冲可用作系统中其他芯片的时钟源。PSENProgram Store Enable29号引脚低电平时有效访问外部存储器的选通信号。当 AT89C51 由外部程序存储器取指令或数据时每个机器周期两次 PSEN 有效即输出两个脉冲。在执行片内程序指令和访问外部数据时不产生信号。 IO口四个双向的8位并行IO端口P0、P1、P2、P3
4. 硬件结构
内部结构框图1个 8 为CPU、4KB FLASH ROM、128B RAM、2个16位定时器/计数器、4个8位并行IO端口、1个串行口、中断系统以及特殊功能寄存器SFR CPU 运算器 算数 / 逻辑部件 ALU累加器 ACC程序状态字寄存器 PSW暂存寄存器寄存器 B 控制器 程序计数器 PC指令寄存器 IR指令译码器 ID定时控制与条件转移逻辑电路
5. 存储器
物理结构分为四个物理独立存储空间即 片内、片外数据存储器片内、片外程序存储器。 存储器结构 程序存储区ROM也成为 CODE 区常用来存放可执行代码。 片内 ROM根据单片机的型号不同片内 ROM 的大小有所不同。片内 4KB。片外 ROM可通过扩展的方式在外部扩展。可扩展 64 KB。 数据存储器RAM存放单片机运行时的数据断电数据即清空。低128字节为真正的RAM区高128字节为特殊功能寄存器。
6. 时钟机器周期的计算
时钟周期也称振荡周期即振荡器的振荡频率的倒数。 例如 晶振为 f_osc12MHz 则时钟周期为 1 / 12000000 s 1 / 12000 ms 1 / 12 μs 机器周期执行一条指令的过程可分为若干个阶段每一阶段完成一规定的操作完成一个规定操作所需要的时间称为一个机器周期。 1 机器周期 12 时钟周期 1 μs 指令周期执行一条指令所用的时间。 指令周期通常为 1-4 个机器周期。
7. 复位
当外界给 RST9号引脚一小段高电平单片机就会复位。复位有两种上电复位和开关复位。
第3章 基础
1. keil目标文件后缀名
.cC文件.hex执行文件.uvproj工程文件.asm汇编文件
2. proteus中元器件的名称
晶振crystal电容capacitor电阻resistor按键button灯led电源power接地ground
3. 基本进制之间转换
十进制二进制八进制十六进制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F
4. 数据类型
bit 位标量是 C51 编译器的扩充数据类型。sfr 特殊功能寄存器占 1个内存单元。sfr16 16位特殊功能寄存器占 2个内存单元。sbit 可录址位利用它能访问芯片内部RAM中的可寻址位或特殊功能寄存器中的可寻址位。
数据类型长度值域unsigned char单字节0~255signed char单字节-128~127unsigned int双字节0~65536signed int双字节-32768~32767unsigned long四字节0~4294967295signed long四字节-2147483648~2147483647float四字节1.175494E-38~3.402823E38double四字节1.175494E-38~3.402823E38*1~3字节对象的地址bit位0或1sfr单字节0~255sfr16双字节0~65535sbit位0或1
5. 运算符
算术运算符用于各类数值运算。包括 、-、*、/、%、、–关系运算符 、、、 、 、!逻辑运算符 、||、!位操作运算符 、|、~、^、、赋值运算符 、、-、*、/、%、、|、^、、条件运算符?:逗号运算符: 指针运算符 *、求字节数运算符sizeof特殊运算符()、[]、→、.
6. 基本控制语句
条件判断语句if 语句、switch语句循环控制语句do while语句、while语句、for语句转向语句break语句、continue语句、return语句。
7. 变量及存储方式
数组int a[3] {0, 1, 2};字符char a A;指针int * i_pointer;常用变量类型其中 1和2 可以快速存取数据常用来存放临时性的传递变量或使用频率较高的变量 data片内 RAM 的低 128 字节。bdata可寻址位的片内 RAM。idata整个片内 RAM。xdata片外存储区64KB。pdata属于 xdata 类型。由于它的高字节保存在 P2 口中只能寻址 256 字节。codeROM 内数据不会丢失。 存储模式 SMALL 模式如果不做特别说明参数及局部变量默认为 data 型放在片内 RAM 128字节内访问迅速。COMPACT 模式不做特别说明参数及局部变量默认为 pdata 栈空间在内部 RAM。LARGE 模式参数及局部变量默认为 xdata使用 DPTRData Pointer数据指针寄存器 寻址访问效率低。
第4章IO口
1. IO口结构
共有 4 个 8 位并行端口分别命名为 P0、P1、P2、P3共 32 根 IO 线。每个IO端口都由 1 个 8 位数据锁存器用于输出和 1 个 8 位数据缓冲器用于输入组成属于 21 个特殊功能寄存器中的 4 个对应内部 RAM 地址分别为 80H、90H、A0H、B0H。
P0 口80H P0 口是双向8位三态高电平、低电平、高阻态 IO 口单位地址为 80H位地址范围是 80H - 87H。组成1个数据输出锁存器、2个三态数据输入缓冲器、1个多路转换开关MUX、数据输出驱动、控制电路。P0 口是真正的双向 IO 口具有较大的负载能力。51 单片机 P0 口内部没有上拉电阻为高阻状态因此该组 IO 口在使用时必须外接上拉电阻。 P1 口90H P1 口是一个准双向口字节地址为 90H位地址范围是 90H - 97H。组成1个数据输出锁存器、2个数据输入缓冲器、输出驱动电路。对于通常的 51 内核单片机而言P1 口是单功能端口只能作为通用的 IO 端口。作为通用 IO 口使用它能读引脚和读锁存器也可用于 “读 - 修改 - 写”。输入时先写入 “FF”。 P2 口A0H P2 口是双功能口字节地址为 A0H位地址为 A0H - A7H。组成1个数据输出锁存器、2个三态数据输入缓冲器、1个多路转接开关 MUX、输出驱动电路。8位 IO 口每个口可独立控制内带上拉电阻与 P1 口相似。 P3 口B0H P3 口是多用途准双向口字节地址为 B0H位地址为 B0H - B7H。组件1个数据输出锁存器、3个三态数据输入缓冲器、输出驱动电路由 “与非门”、场效应管FET和内部上拉电阻。每个口可独立工作内带上拉电阻该口作为输入使用前要先进行写 1 操作使 FET 截止。
2. 功能和特点
P0 口 功能 P0 口可以作为通用 IO 接口使用P0.0 - P0.7 用于传送输入 / 输出数据。输出数据时可以得到锁存不需外接专用锁存器输入数据可以得到缓冲。P0.0 - P0.7 在 CPU 访问片外存储器时用于传送片外存储器的低 8 位地址然后传送 CPU 对片外存储器的读写数据。 特点 P0 口为双功能口 —— 地址 / 数据复用口和通用 IO 口。当 P0 口作为地址 / 数据复用口时是一个真正的双向口用作外扩存储器输出低 8 位地址和输入 / 输出 8 位数据。当 P0 口用作通用 IO 口时由于需要在片外接上拉电阻端口不存在高阻抗悬浮状态因此是一个准双向口。为保证引脚信号正确读入应首先向锁存器写 “1”当 P0 口由原来的输出状态转变为输入状态时应首先置锁存器为 “1”。P0 口作为地址 / 数据复用口时就不能再作为通用 IO 口使用。 P1 口 只能作为通用 IO 口使用无特别功能。 P2 口 功能 作为通用 IO 使用为准双向口无需上拉电阻。 输出 1Q 输出 1场效应管截止上拉输出高电平。输出 0Q 输出 0场效管导通输出低电平。输入时该口在作为输入使用前要先进行写 1 操作使 FETField-Effect Transistor场效应晶体管 截止。 作为地址总线与 P0 口引脚的第二功能配合用于输出片外存储器的高 8 位地址。 P3 口 功能 作为普通 IO 口使用其功能和原理与 P1 口相同。作为控制和特殊功能口使用。P3 口每一个引脚的第二功能如下 P3.0—RXD 串行数据接收口 P3.1—TXD 串行数据发送口 P3.2—INT0 外部中断0输入 P3.3—INT1 外部中断1输入 P3.4—T0 计数器0计数输入 P3.5—T1 计数器1计数输入 P3.6—WR 外部RAM写选通信号 P3.7—RD 外部RAM读选通信号
第5章数码管和键盘
1. 数码管分类和显示方法
分类按内部结构分为共阳极数码管0亮1灭、共阴极数码管1亮0灭显示方法 静态显示 数码管显示某一字符时相应的发光二极管恒定导通或恒定截止公共端恒定接地共阴极或接电源共阳极。优点显示控制程序简单显示亮度大节约单片机工作时间。缺点在显示位数较多时静态显示占用的 IO 口线较多或者需要增加额外的硬件电路硬件成本较高。 动态显示 一位一位地轮流点亮各位数码管的显示方式每个数码管点亮时间大概是 1ms。优点可以大大简化硬件线路。缺点要循环执行显示程序对各个数码管动态扫描消耗单片机较多的运行时间在显示器位数较多或刷新间隔较大时有一定的闪烁现象显示亮度较暗。 数码管显示排列 八段共阴数码管显示数据表 字型dpgfedcba段码0001111110X3f1000001100X062010110110X5b3010011110X4f4011001100X665011011010X6d6011111010X7d7000001110X078011111110X7f9011011110X6f
2. 矩阵键盘的分类
键盘分为编码键盘和非编码键盘靠软件编程来识别的键盘。按键包括独立按键和矩阵按键。 独立键盘分类直插式弹性小按键、贴片式小按键、自锁式小案件。
3. 去机械抖动方法 软件延时消抖常用 // 检测按键是否按下
if (key 0) { // 当检测到按键按下key为低电平时执行以下代码delay(10); // 软件延时消抖// 再次检测按键状态确认是否为有效按下避免抖动导致的误触发if (key 0) { // 此处省略号表示按键按下后的具体执行逻辑例如控制某个设备、切换状态等...// 等待按键释放循环检测直到key变为非0即按键松开while (!key); // 阻塞式等待按键释放确保一次按键操作只处理一次}
}硬件消抖
4. 控制线的根数 已知 M 行 * N 列计算方式为M N 4×4 矩阵键盘需要 448 根控制线 3×5 矩阵键盘需要 358 根控制线 已知 n 个按键计算方式为2√n 16 个按键需要 2 × √16 8 根控制线相当于4×4矩阵
第6章中断
1. 51单片机中断源个数
5个中断源分别是 2 个外部、2 个定时器、1 个串口
2. 各中断对应引脚
中断号中断名称触发来源描述对应引脚0INT0外部中断 0外部信号外设通过引脚触发中断P3.21定时器 0Timer0 溢出Timer0 溢出触发中断P3.42INT1外部中断 1外部信号另一路外部中断P3.33定时器 1Timer1 溢出Timer1 溢出触发中断P3.54TX/RX串口接收/发送完成收发完成触发中断3.0/3.1
3. 中断嵌套 中断优先级高的中断请求可以中断 CPU 正在处理的优先级更低的中断服务待处理完中断优先级高的服务程序之后再继续执行被打断的优先级的中断服务程序。 默认情况下8051 不支持中断嵌套。
4. 中断请求
要求中断处理发出的标志信号称为中断请求。
5. 中断响应 是 CPU 对中断源中断请求的响应包括保护断点和将程序转向中断响应后的入口地址。 中断响应条件 中断源有中断请求。中断总允许位 EA 1。发出中断请求的中断源的中断允许控制位为 1。 中断响应过程 包括保护断点和将程序转向中断服务程序的入口地址。 入口地址由硬件事先设定中断源对应 TCON、SCON 中断号中断源中断名称入口地址中断矢量地址中断级别0IE0外部中断 00003H最高优先级1TF0定时/计数器 0 中断000BH↓2IE1外部中断 10013H↓3TF1定时/计数器 1 中断001BH↓4RI、TI串行口中断0023H最低优先级
6. 中断优先级处理原则
低优先级中断源可被高优先级中断源中断而高优先级中断源不能被任何中断源所中断。一种中断源一旦得到响应与它同级的中断源不能再中断它。当同时收到同一优先级的中断时响应哪一个中断源取决于同级自然优先顺序。中断优先级由上表所示。
7. 中断相关寄存器TCON、IE、IP 四个中断寄存器2个中断请求标志寄存器TCON、SCON、1个中断允许控制寄存器IE、1个中断优先级控制寄存器IP 定时器/计数器控制寄存器 TCON88H 同时锁存 T0、T1 溢出中断源标志、外部中断请求标志。 TCON 是中断 “触发方式” 和 “是否发送” 的控制面板 IT0 / IT1 表示触发方式可以选择 0 / 1低电平触发 / 下降沿触发 IE0 / IE1 表示是否发生中断 位序号TCON位地址描述D0IT088H选择外部中断请求 0 为边沿触发或电平触发方式的控制位。D1IE089H外部中断 0 的中断申请标志。D2IT18AH选择外部中断请求 1 为边沿触发或电平触发方式的控制位。D3IE18BH外部中断 1 的中断申请标志。D4TR0—D5TF08DH片内定时器/计数器 0 溢出中断申请标志。D6TR1—D7TF18FH片内定时器/计数器 1 溢出中断申请标志。 串行口控制寄存器 SCON SCON 的低 2 位锁存串行口的接收中断和发送中断标志。 位序号SCON描述D0RI串行口的发送中断标志。D1TI串行口的接收中断标志。D2——D3——D4——D5——D6——D7—— 中断允许寄存器 IEA8H 51 单片机对中断的开放或屏蔽是由片内的中断允许寄存器 IE 控制的。 各位 0 为禁止1 为开放。 位序号IE位地址描述D0EX0A8H允许或禁止外部中断 0 INT0中断。D1ET0A9H允许或禁止定时器 / 计数器 0 溢出中断。D2EX1AAH允许或禁止外部中断 1 INT1中断。D3ET1ABH允许或禁止定时器 / 计数器 1 溢出中断。D4ESACH允许或禁止串行口中断。D5ET2ADH—D6———D7EAAFHCPU 的中断开放 / 禁止总控制位。 中断优先级寄存器 IPB8H 51 单片机设有两级优先级即高优先级中断1和低优先级中断0。 位序号IP位地址描述D0PX0B8H外部中断 0 中断优先级控制位。D1PT0B9H定时器 / 计数器 T0 中断优先级控制位。D2PX1BAH外部中断 1 中断优先级控制位。D3PT1BBH定时器 / 计数器 T1 中断优先级控制位。D4PSBCH串行口中断优先级控制位。D5———D6———D7———
8. 中断入口地址
见本章第5节中断响应。
9. 外部中断触发方式
电平触发TCON 中 IT0 / IT1 值为 0低电平触发下降沿触发TCON 中 IT0 / IT1 值为 1脉冲有效
第7章定时/计数器
1. 定时器/计数器核心部件
片内有 2 个 16 位可编程的定时器 / 计数器简称 T0 和 T1。它们都是二进制加法计数器当计数器计满归 0 是能自动产生溢出中断请求表示定时时间已到或计数终止。核心部件是二进制加 1 计数器TH0、TL0 或 TH1、TL1特殊功能寄存器 TMOD 是工作方式寄存器用于选择 T0、T1 的工作模式和工作方式。特殊功能寄存器 TCON 是控制寄存器用于控制 T0、T1 的启动和停止计数同时包含 T0、T1 的状态。
2. 实质
实质是二进制加 1 计数器16位由高 8 位THX和低 8 位TLX两个寄存器组成。通过技术脉冲来累加计数值直到溢出从而产生中断信号或执行特定任务。 定时由系统的时钟振荡器输出脉冲经12分频后送来。计数由 T0 或 T1 引脚输入的外部脉冲源。
3. 不同功能脉冲来源
模式脉冲来源说明对应引脚定时器内部时钟脉冲机器周期脉冲对周期性的定时脉冲进行计数—计数器相应的外部输入引脚负跳变下降沿有效供计数器进行加法计数。T0 为 P3.4T1 为 P3.5
4. 定时器相关寄存器TMOD TMOD 用于控制定时器 / 计数器的工作模式及工作方式其字节地址为 89H。 低 4 位决定 T0 的工作方式高 4 位决定 T1 的工作方式。 GATE门控位。 0以 TRx 来启动定时器 / 计数器运行。1用外部中断引脚上的高电平和 TRx 来启动定时器 / 计数器运行。 C/T定时器模式和计数器模式选择位。 0定时工作方式。1计数工作方式。 M1、M0工作方式选择位确定所选工作方式。共有 4 种工作方式。 M1M0工作方式备注最大计数值00方式013 位计数器使用了 TLX低5位和 THX8位。M 2¹³ 819201方式116 位计数器使用了TLX 8位和 THX8位。M 2¹⁶ 6553610方式28 位自动装载计数器TL 溢出时自动装载成 TH 的值M 2⁸ 25611方式3T0 为 2 个 8 位计数器T1 停止工作。M 2⁸ 256
5. 计数时所对应的引脚编号
见本章第三节。
6. 总结
可以把定时器/计数器想象成一个自动计数的电子闹钟。
TMOD 告诉它是用秒表模式。THx/TLx 设定起始时间值。TRx见中断中的TCON是开始按钮。TFx见中断中的TCON是 ”滴——响了“ 的提示。TCON 是总控开关板。
第八章串口
1. 51单片机串口概述
51单片机的串行口是一个 全双工 的 **异步串行通信 **接口可以同时发送和接收数据。
2. 相关寄存器 SCONSerial Port Control Register串口控制寄存器地址位 98H。 位序号SCON位地址描述0RI98H接收中断标志为 1 表示接收到数据。必须手动清 0。1TI99H发送中断标志为 1 表示发送完毕。必须手动清 0。2RB89AH接受的第 9 个数据位。3TB89BH发送的第 9 个数据位。4REN9CH允许串行接收位。1 为允许0 为不允许。5SM29DH多机通信控制位。6SM19EH串口工作方式低位配合 SM0 设置串口模式。7SM09FH串口工作方式高位配合 SM1 设置串口模式。 SBUFSerial Buffer串口数据缓冲器发送时写入数据接收时读取数据。
3. 工作方式 SM0、SM1串行口的4种工作方式选择位。 SM0SM1工作方式功 能波 特 率000同步移位寄存器fosc/1201110位异步收发8位数据常用可变由定时器控制10211位异步收发9位数据fose/64或fose/3211311位异步收发9位数据可变由定时器控制
4. 接收发送完成后判断条件
发送完成TI 为 1表示发送完成可以发送下一字节需手动清 0。接收完成RI 为 1表示接收到数据需手动清 0。
第九章数模转换
1. LCD1602显示内容多少
显示 2 行每行 16 个字符共 32 个字符。
2. 每行的起始地址
第一行起始地址0x00地址范围0x00 ~ 0x0F共 16 个地址第二行起始地址0x40地址范围0x40 ~ 0x4F共 16 个地址
3. ADC和DAC的功能
ADC模数转换器将模拟信号如电压转为数字信号。DAC数模转换器将数字信号转为模拟信号。
4. DAC0832
DAC0832 是一个 8 位 D/A 转换器芯片单电源供电。输入范围0 ~ 255。输出对应的模拟电压比例线性变化。
5. 10位ADC分辨率的计算
已知电压变化范围5V10V2V到8V等位数 n 为10位。求分辨率。 分辨率 参考电压 2 n 分辨率 \frac {参考电压}{2^n} 分辨率2n参考电压 如果电压为 5V则 分辨率 5 V 2 10 5 V 1024 ≈ 4.88 m V 分辨率 \frac{5V}{2^{10}}\frac{5V}{1024}≈4.88mV 分辨率2105V10245V≈4.88mV 即最小可区分 4.88 mV 的电压差。