单片机知识点相对详细版总结
单片机小实验
1.有一个想法,做一个倒数计时器
2.模块化编程,delay.h 为什么可以被调用两次?
- 键盘密码锁和蜂鸣器的结合使用
- 定时器闹钟
- 温度报警器和蜂鸣器的结合使用
单片机相关的英语
最根本的解决途径:看手册,浏览器搜索
不是固定的,可以人为按照需求自由地自定义使用命名
SRCLK: serial clock,串行时钟
RCLK: receive clock
SER: serial
SRCLR: serial clear
必备的基础知识
单位转换
计算单位
毫 微 纳 皮 飞
k m g
m 这个单位是“兆”,在现代科学上表示 百万1 000 000. 在中国古代表示“亿亿”
各种物理量
编码方式
- 2(binary),8(octal),10(decimal),16(hexadecimal) 进制
- ascii , , bcd
知识点
7-2 定时器
- 晶振: 电路中的陶瓷发出固定频率的可以被检测到的震动
- 晶振频率
- 单片机(11.0592mhz),计算机(3.20 GHz)的CPU频率说的就是晶振频率
- 定时器:三个部件模块的电路图实现,以及相关学习寄存器的功能实现(软件编程控制寄存器,寄存器实现电路硬件功能)
- 前半段讲的是 定时器的代码实现逻辑;后半部分讲的是定时器结合其他模块一起工作。
- 可是我的定时器不准确,太慢了。就算把时钟频 改成11.0592,和手机的相比,一分钟慢了六秒我去。
- 代码:定时器实现时钟
8-1 串口
- 串口的相关概念。串口的电路图实现,如何配置相关的寄存器
貌似发送不需要中断,接受需 要中断把数据取出来 - 计算波特率
- 编码方式:字符与ascii码和hex码的对应关系
- 双八位定时寄存器:把初值写到高字节(8位),只使用低字节(8位)做定时器,溢出时自动使用高字节初始化低字节,立即 开始下一次定时。
- 代码:单片机与电脑相互传输数据
9-1 LCD 点阵屏
- 点阵屏是什么
- 电路图实现
- 74HC595 拓展 io口 实现
- 代码:静态的笑脸和笑脸动画
DS1302实时时钟
- DS1302:是一个外设时钟芯片,对比单片机自带的定时器
- 定时器额外消耗cpu性能,造成资源的浪费
- 定时器精度不如DS1302,深有体会
- DS1302是实时工作的,就算单片机断电,还能连接本身自带的电池继续工作,直到单片机下次供电(但是,单片机上的没电池)
- 地址/命令字节 Address / Command Byte
- 用的是bcd 编码
- 芯片的内部结构,实现原理!!
- 代码:实现一个可视化时钟;第二个不想看了,以后再说吧
蜂鸣器
-
一开始还以为是单片机的其他问题,或许是声音太小听不见,后来是芯片开发板不同的原因,浪费好多时间。不行的话,直接用卖家的代码就好了
-
解决问题了,电路图也很简单
-
蜂鸣器:利用脉冲电流来驱动金属板的振动以产生声音。需要不断地反转电平,不然金属板就会一直被压在一侧无法震动,也就无法产出声音
-
ULN2023芯片,没听懂,只知道取反输出
-
一些基础的蜂鸣器用到的乐理知识,两个要点:音高,按下的时间长短(四分音符作为时间标准)。
-
-
音色由震动的频率来决定,定时器计时模拟频率
- 计算重装载值,中断,反转io口(结合ULN2023芯片)
-
代码:1.按键提示声音;2.播放音乐
- 计算重装载值,中断,反转io口
- 音色,弹奏时间,停顿等等在程序中的表达存储
AT24C02(I^2C总线)
-
老师讲课给小明,然后老师提问小明回答问题的例子
-
存储器分类介绍(小知识:硬盘C、D盘;软盘(被淘汰所以没有了)A、B盘。光盘:光信息存储)
-
存储器简化模型:
- 行和列是不重叠的
- 烧录概念的意思和由来 PROM--->EPROM(稳压二极管 反向击穿可逆)
- PROM,烧录的时候,怎么样依次相应选中,依次相应击穿二极管?(熔丝和两个二极管 写入相反,二极管是熔丝的升级版,熔丝太大了)
- 郭天祥是真的牛掰,讲的很清楚了,通过特殊的高压编程器控制D1--D8 的电压,实现数据的烧录
-
-
AT24C02:掉电不丢失的储存芯片
- 引脚,内部结构框图
- 字节写,随机读
-
IIC 总线
-
协议规范
- 工作原理,结构图
-
-
时序
-
开始结束,发送接收,收发应答 六块拼图
-
数据帧,比喻成载货的火车,装东西,运出去,实现数据传输。
- 普通的,复合格式
-
-
代码:
-
普通的数据储存
- 定时器扫描按键数码管外加数据储存(定时器每隔一段时间进行扫描(中断,然后cpu进行处理,实际上仍然是cpu进行扫描,提高使用体验(优先级高的任务尽快完成)但扫描频率降低了,cpu处理扫描的工作时间减少了,提高cpu的利用率)。重点还是在于:定时器扫描提高cpu效率
-
DS18B20 温度传感器
本节课的任务就是单片机cpu 与 温度传感器 进行 数据交互。那么下面这些是需要了解的。
-
温度传感器的知识点。
-
数据交互: 用到 数据通信的知识点,总线,协议。
- DS18B20 温度传感器 简介 数字传感器 vs 模拟传感器
- 引脚、內部框图(身份证校验码,有兴趣可以了解一下)
- 单总线(1-Write Bus) vs I2C
- 工作模式,协议,时序
- 单总线不允许中断,I2C可以。
- 因为I2C有单独的时钟线,被中断后没有影响
- 单总线依赖绝对的微秒级别的时间,被中断后受影响很大
- 数据帧结构
- 代码:1. 直接读取环境的温度; 2.温度报警器(结合前面做的都总结实践了)
LCD1602 显示屏
Liquid Crystal(晶体) Display ,也是一个单独的集成芯片,自动不断扫描,规定好可以显示的字符对应的字符码表
基本功能:showchar(); 其余的都是相对进阶功能
- 引脚和应用电路
- 也是数据传输部分。时序结构, 数据帧
- 写指令(初始化)---->写数据
- 代码:1.编写LCD1602 显示屏的代码
- 感觉使用ShowString() > ShowNum()
- 流动字幕
直流电机驱动(PWM)
-
电机的工作原理,梦回中学,磁场,电流,作用力
线圈转动带动铁心转动,这就是电机转动
-
感应电压他说的不太清楚,以后再看。
-
PWM:Pulse Width Modulation 脉冲宽度调制
- 具有“惯性”的情况下使用,用来控制以某种想要的“程度”
- LED呼吸灯, 电机挡位控制
-
代码:LED呼吸灯, 电机挡位控制
AD/DA, XPT2046
-
概念
-
工作的例子
-
原理解析:听不懂哦。细节没懂,会用就行了吧,呜呜呜
-
运算放大器
-
代码:数模相互转换的例子
-
总结,要是不去理解具体是怎么工作的话,这玩意用起来是真的简单。
红外遥控
-
简介
-
硬件电路:遥控器发送光信号,开发板接收
-
外部中断
-
代码:
-
- 普通的红外遥控(基础) 2.
-
写代码的时候,遥控器--->开发板上的红外接收模块不用管,别人已经做好的了,直到相关的原理概念就可以了
-
重点是读取和识别 红外接收模块 发送出来的数据(连接到外部中断), 判断 是一还是零(组成发送出去的信号(开始,机器地址,按键码,一直按下的情况))。。这根据信号时间长短(两个下降沿的时间间隔)来决定,因此就用到了定时器
-
定时器的计时器使用而不是中断
-
接收到外部中断后,就可以进行逻辑判断(按键码)是遥控器上的哪个按键按下了,然后进行相应的处理
-
难点回顾
- 定时器
- 串口
- AT24C02(I^2C总线)
- AD/DA,这个是听不懂,算了,现在了解一个大概就好了,等需要在细学
杂七杂八
被那个自动下载坑惨了,出现莫名其妙的错误
学习收获
- 单片机的知识
- 对计算机体系结构加深认识理解
- 学习到各种硬件知识和通讯协议相关的原理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」