单片机交流
登录
直播中
王鑫
7年用户
1136经验值
私信
关注
[问答]
小白求助,求大佬分享C51复习纲要及核心模块知识点总结
开启该帖子的消息推送
C51
小白求助,求大佬分享C51复习纲要及核心模块知识点总结
回帖
(1)
李昕萌
2021-10-20 11:12:51
备注:
C51复习纲要为根据单片机老师期末复习总结归纳而来
C51核心模块知识点为课堂所做笔记
51MCU复习纲要
十速的51系列,78B芯片(
CPU
+
RAM
+
Flash(ROM)
+
IO
+
Timer/Counter
+
Interrupt
+
AD
+
PWM
+
Touch
+
LED/LCD
):
1、时钟的构成:
外部时钟
,
内部时钟
;
快时钟
与
慢时钟
,时钟的分配。
2、
78B单片机的系统时钟是2个周期(执行一条指令的时间),标准的51是12周期的
。
3、·RAM(数据空间):非常有限,数据空间的访问方式(寻址方式):
位寻址
;
直接寻址
;
间接寻址
;
立即数寻址
·数据格式(位,字节,多字节;有符号,无符号;整型,实数,浮点;),多字节的存储方式(
小尾
和
大尾
)数据的表示范围(整型的范围)。
4、代码空间(flash/ROM):
用代码空间存储常量
,代码空间的划分(
中断向量区
,
调试区
,
用户代码区
,
代码区仿真可擦写的数据区
)。
5、IO:IO模式(
上拉输入
,
悬浮输入
,
推挽输出
,
开漏输出
,
特殊功能模式
),逻辑1对应的高电位(
输出高Voh
,
输入高Vih
,两者关系),逻辑0对应的低电位(
输出低VoL
,
输入低ViL
,两者关系),单个IO和整个芯片输出与输入电流的上限。
/*
输出高大于等于输入高
*/
6、Timer/Counter:
输入的基准时钟
,
分频
,
时钟加法器(长度)
,
溢出后自动加载
,
时钟的溢出标志位和中断号(中断向量)
,
时钟中断子程序(编程)
。
7、中断:中断的控制位,中断标志位,中断号,中断子程序,中断子程序与主程序的协作关系(volatile)。
8、AD:
AD的字长(12位的)
,转换时间,通道数量,内置校准电压通道,
外部硬件滤波
,
内部数字滤波
。
9、PWM:脉冲宽度调制技术,调光,调速,声音的生成。
10、Touch:
电容触摸的基本原理
,
触摸基值的获取
,复杂环境的触摸基值的获取(
电源波动
,
电磁干扰
,
环境温度
,
工作环境
等),触摸的手势(
按下
,
抬起
,
单击
,
双击
,
多点
,
滑动
)。
11、LED/LCD
12、C51编程:统一编程风格(
工程名
、
文件名
、
宏
、
变量
、
子函数命名规则
、
功能模块与文件划分
等),
变量的作用域
、
可见域
、
生命周期
(
全局变量
、
局部变量
),
变量修饰符
(const、code、static、volatile),
简单类型数据结构
(u8,u16,u32,bit),
子函数的作用域
、
可见域
、
生命周期
(堆栈的有限性),中断子函数(现场保护、堆栈使用、返回),
中断子程序与主程序的协作关系
(volatile)。
工具链KeilC51、VSCode、git(github、bitbucket)。
C51外部模块——AD模块
1、其他形式的物理量转换成电量(包括:电压和电流),并送到计算机体系中进行加工,数据处理。
2、用电阻网络测电压(用折半搜索的方式猜测电压值进行AD转换)
3、AD转换的精度:
5V / 4096(mv / bit)
4、AD转换的时间;采样速度;信息恢复(奈奎斯特采样定理)
5、
采样速度:信息变化周期速度的2倍,同时肯定低于AD转换的时间
6、多路AD转换(
一个转换模块
,
时分多路复用
)
7、用12位二进制表示转换出来的AD值:
2^12=4096
,
8、AD转换的标定,基于内部参考电压。
9、
1MHz刚好为1微妙
10、SYSCLK:系统时钟——>ADC Clock:开关转换的时钟
11、UBG:1.2V的内部基准电压源(降压稳压)
12、如果外部输入电压为5V,则(1.2 / 5)
4096 = 983;
如果外部输入电压为4V,则(1.2 / 4)
4096 = 1228
因此:
外部电压越低,值越大,单片机进行保护模式,可提醒用户,电池没电了,该换电池了
。
13、I/O端口、时钟、AD转换==》5278B-cn.pdf
14、ADSOC:AD开始转换
15、
AD采样数据一定有波动
,所以要做滤波(
硬件滤波
和
软件滤波
)
16、
NTC电阻特性:负温度电阻
;
PTC电阻特性:正温度电阻
17、AD干扰源分析(在电脑进行分析)
采用合适的滤波方案(软件滤波成本较低)
18、简单的数字滤波:
1)
平均滤波
,移动窗口滤波
Yn = (X1 + X2 + … + Xn) / n
其中:Xi 为滤波器输入;
Yn为滤波器输出。
2)
指数移动滤波
Yn = c1
Yn-1 + c2
Xn
其中:
Xn: 第n次采样
Yn-1:第n-1次滤波器输出;
Yn:第n次滤波器输出;
c1 >= 0; c2 >= 0
c1 + c2 = 1
3)
高效实现指数移动滤波器
·c1 = 0.9, c2 = 0.1;
·c1 = 9, c2 = 1, 再除以10
·c1 = 7, c2 = 1, 再除以8
eg: 50Hz的滤波用200Hz的采样频率进行采样
C51外部模块——中断
1、定时/计数器主要受
方式寄存器TMOD
和
控制寄存器TCON
的控制。
2、定时/计数器的核心是
一个加1计数器
,脉冲来源有两个:一个是
由系统的时钟晶振器输出脉冲经12分频后送来
;另一个是
由T0或T1引脚输入的外部脉冲源提供
。
3、每来一个脉冲则加1计数器加1,当加到加1计数器为全1时,再来一个脉冲就使加1计数器回到零;且加1计数器的溢出使得TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求。如果定时/计数器工作于定时模式,则表示定时时间已到;如果定时/计数器工作于计数模式,则表示计数值已满。
4、
定时器的定时时间不仅与计数器的初值有关,而且还与系统的时钟频率有关,需要根据时钟频率来确定定时器的初值
。
5、定时/计数器有两个控制寄存器,即TMOD和TCON。
TMOD用于控制定时/控制器的工作方式,选择定时或计数功能
;
TCON则用于控制定时/计数器的启动和停止,并控制定时/计数器的工作状态
。
6、启动定时/计数器开始工作之前,需要
定义定时/计数器的工作方式
,同时
对TL0、TH0及TL1、TH1进行初始化编程
。
7、定时/计数器的初始化需完成以下工作:
对TMOD赋值,以确定T0和T1和工作方式
计算初值,并将其写入TH0、TL0或TH1、TL1。
使用中断方式时,则对IE赋值,开放中断。
使TR0或TR1置位,启动定时/计数器的定时或计数。
补充
C5178B的代码空间:8K Bytes Flash
C5178B的数据空间:512Bytes SRAM
时钟
双时钟系统
时钟分频(把高频降为低频) 时钟倍频
external:表示外部快速时钟
快时钟
· 外 FXT(快速晶振)
· 内 FRC(快速内部)
约为7.3728MHz,大约为8MHz
。
慢时钟
·外 SXT(慢速晶振)大约为32.768kHz
·内 SRC(慢速内部)大约为24kHz
SYSCLK:系统时钟
刚上电时,单片机按“内部慢时钟”进行
WDT(看门口定时器):(看门狗定时器复位)
·“+1程序”
·“清零程序”
复位:
·程序从某个位置开始运行
·指令的初始位置
看门狗定时器复位:在空间/停止模式下可选运行或停止
“内部快时钟两分成”在C语言中如何完成?
“.h文件”:
封装配置常量
存储器(8K)内部 ·IRAM ·SFR 时钟—>操作模式
sfr CLKCON = 0xd8;
***it:位操作 SCKTYPE = CLKCON^7
低电压复位
指令周期 = 系统时钟SYSCLK / 2
(因为:78B单片机的系统时钟是2个周期)
对于高级工程师的编程要求:
(1)程序正确,能跑起来
(2)程序与硬件能成为一个产品
(3)
模块化
、
松耦合
、
可复用
(4)代码工作量估算
(5)代码风格很重要
1、Alt+N,Ctrl+P:
用于快速定位
2、RCP2H、RCP2L:重载寄存器
3、ET2:定时器2的中断使能
4、IE:中断使能寄存器
5、TF2 = 0:中断标志位清零(TR2可以删除)
6、程序中“tim1”:表示时间;“timer”:表示定时器
7、单片机中只有
ARM
和
特殊功能寄存器的部分单元
有位地址,因此
位寻址只能对有位地址的这两个空间进行寻址操作
。
附录
51CPU模块的思维导图
C51语言模块的思维导图
外部设备模块的思维导图
备注:
C51复习纲要为根据单片机老师期末复习总结归纳而来
C51核心模块知识点为课堂所做笔记
51MCU复习纲要
十速的51系列,78B芯片(
CPU
+
RAM
+
Flash(ROM)
+
IO
+
Timer/Counter
+
Interrupt
+
AD
+
PWM
+
Touch
+
LED/LCD
):
1、时钟的构成:
外部时钟
,
内部时钟
;
快时钟
与
慢时钟
,时钟的分配。
2、
78B单片机的系统时钟是2个周期(执行一条指令的时间),标准的51是12周期的
。
3、·RAM(数据空间):非常有限,数据空间的访问方式(寻址方式):
位寻址
;
直接寻址
;
间接寻址
;
立即数寻址
·数据格式(位,字节,多字节;有符号,无符号;整型,实数,浮点;),多字节的存储方式(
小尾
和
大尾
)数据的表示范围(整型的范围)。
4、代码空间(flash/ROM):
用代码空间存储常量
,代码空间的划分(
中断向量区
,
调试区
,
用户代码区
,
代码区仿真可擦写的数据区
)。
5、IO:IO模式(
上拉输入
,
悬浮输入
,
推挽输出
,
开漏输出
,
特殊功能模式
),逻辑1对应的高电位(
输出高Voh
,
输入高Vih
,两者关系),逻辑0对应的低电位(
输出低VoL
,
输入低ViL
,两者关系),单个IO和整个芯片输出与输入电流的上限。
/*
输出高大于等于输入高
*/
6、Timer/Counter:
输入的基准时钟
,
分频
,
时钟加法器(长度)
,
溢出后自动加载
,
时钟的溢出标志位和中断号(中断向量)
,
时钟中断子程序(编程)
。
7、中断:中断的控制位,中断标志位,中断号,中断子程序,中断子程序与主程序的协作关系(volatile)。
8、AD:
AD的字长(12位的)
,转换时间,通道数量,内置校准电压通道,
外部硬件滤波
,
内部数字滤波
。
9、PWM:脉冲宽度调制技术,调光,调速,声音的生成。
10、Touch:
电容触摸的基本原理
,
触摸基值的获取
,复杂环境的触摸基值的获取(
电源波动
,
电磁干扰
,
环境温度
,
工作环境
等),触摸的手势(
按下
,
抬起
,
单击
,
双击
,
多点
,
滑动
)。
11、LED/LCD
12、C51编程:统一编程风格(
工程名
、
文件名
、
宏
、
变量
、
子函数命名规则
、
功能模块与文件划分
等),
变量的作用域
、
可见域
、
生命周期
(
全局变量
、
局部变量
),
变量修饰符
(const、code、static、volatile),
简单类型数据结构
(u8,u16,u32,bit),
子函数的作用域
、
可见域
、
生命周期
(堆栈的有限性),中断子函数(现场保护、堆栈使用、返回),
中断子程序与主程序的协作关系
(volatile)。
工具链KeilC51、VSCode、git(github、bitbucket)。
C51外部模块——AD模块
1、其他形式的物理量转换成电量(包括:电压和电流),并送到计算机体系中进行加工,数据处理。
2、用电阻网络测电压(用折半搜索的方式猜测电压值进行AD转换)
3、AD转换的精度:
5V / 4096(mv / bit)
4、AD转换的时间;采样速度;信息恢复(奈奎斯特采样定理)
5、
采样速度:信息变化周期速度的2倍,同时肯定低于AD转换的时间
6、多路AD转换(
一个转换模块
,
时分多路复用
)
7、用12位二进制表示转换出来的AD值:
2^12=4096
,
8、AD转换的标定,基于内部参考电压。
9、
1MHz刚好为1微妙
10、SYSCLK:系统时钟——>ADC Clock:开关转换的时钟
11、UBG:1.2V的内部基准电压源(降压稳压)
12、如果外部输入电压为5V,则(1.2 / 5)
4096 = 983;
如果外部输入电压为4V,则(1.2 / 4)
4096 = 1228
因此:
外部电压越低,值越大,单片机进行保护模式,可提醒用户,电池没电了,该换电池了
。
13、I/O端口、时钟、AD转换==》5278B-cn.pdf
14、ADSOC:AD开始转换
15、
AD采样数据一定有波动
,所以要做滤波(
硬件滤波
和
软件滤波
)
16、
NTC电阻特性:负温度电阻
;
PTC电阻特性:正温度电阻
17、AD干扰源分析(在电脑进行分析)
采用合适的滤波方案(软件滤波成本较低)
18、简单的数字滤波:
1)
平均滤波
,移动窗口滤波
Yn = (X1 + X2 + … + Xn) / n
其中:Xi 为滤波器输入;
Yn为滤波器输出。
2)
指数移动滤波
Yn = c1
Yn-1 + c2
Xn
其中:
Xn: 第n次采样
Yn-1:第n-1次滤波器输出;
Yn:第n次滤波器输出;
c1 >= 0; c2 >= 0
c1 + c2 = 1
3)
高效实现指数移动滤波器
·c1 = 0.9, c2 = 0.1;
·c1 = 9, c2 = 1, 再除以10
·c1 = 7, c2 = 1, 再除以8
eg: 50Hz的滤波用200Hz的采样频率进行采样
C51外部模块——中断
1、定时/计数器主要受
方式寄存器TMOD
和
控制寄存器TCON
的控制。
2、定时/计数器的核心是
一个加1计数器
,脉冲来源有两个:一个是
由系统的时钟晶振器输出脉冲经12分频后送来
;另一个是
由T0或T1引脚输入的外部脉冲源提供
。
3、每来一个脉冲则加1计数器加1,当加到加1计数器为全1时,再来一个脉冲就使加1计数器回到零;且加1计数器的溢出使得TCON寄存器中的TF0(或TF1)置1,向CPU发出中断请求。如果定时/计数器工作于定时模式,则表示定时时间已到;如果定时/计数器工作于计数模式,则表示计数值已满。
4、
定时器的定时时间不仅与计数器的初值有关,而且还与系统的时钟频率有关,需要根据时钟频率来确定定时器的初值
。
5、定时/计数器有两个控制寄存器,即TMOD和TCON。
TMOD用于控制定时/控制器的工作方式,选择定时或计数功能
;
TCON则用于控制定时/计数器的启动和停止,并控制定时/计数器的工作状态
。
6、启动定时/计数器开始工作之前,需要
定义定时/计数器的工作方式
,同时
对TL0、TH0及TL1、TH1进行初始化编程
。
7、定时/计数器的初始化需完成以下工作:
对TMOD赋值,以确定T0和T1和工作方式
计算初值,并将其写入TH0、TL0或TH1、TL1。
使用中断方式时,则对IE赋值,开放中断。
使TR0或TR1置位,启动定时/计数器的定时或计数。
补充
C5178B的代码空间:8K Bytes Flash
C5178B的数据空间:512Bytes SRAM
时钟
双时钟系统
时钟分频(把高频降为低频) 时钟倍频
external:表示外部快速时钟
快时钟
· 外 FXT(快速晶振)
· 内 FRC(快速内部)
约为7.3728MHz,大约为8MHz
。
慢时钟
·外 SXT(慢速晶振)大约为32.768kHz
·内 SRC(慢速内部)大约为24kHz
SYSCLK:系统时钟
刚上电时,单片机按“内部慢时钟”进行
WDT(看门口定时器):(看门狗定时器复位)
·“+1程序”
·“清零程序”
复位:
·程序从某个位置开始运行
·指令的初始位置
看门狗定时器复位:在空间/停止模式下可选运行或停止
“内部快时钟两分成”在C语言中如何完成?
“.h文件”:
封装配置常量
存储器(8K)内部 ·IRAM ·SFR 时钟—>操作模式
sfr CLKCON = 0xd8;
***it:位操作 SCKTYPE = CLKCON^7
低电压复位
指令周期 = 系统时钟SYSCLK / 2
(因为:78B单片机的系统时钟是2个周期)
对于高级工程师的编程要求:
(1)程序正确,能跑起来
(2)程序与硬件能成为一个产品
(3)
模块化
、
松耦合
、
可复用
(4)代码工作量估算
(5)代码风格很重要
1、Alt+N,Ctrl+P:
用于快速定位
2、RCP2H、RCP2L:重载寄存器
3、ET2:定时器2的中断使能
4、IE:中断使能寄存器
5、TF2 = 0:中断标志位清零(TR2可以删除)
6、程序中“tim1”:表示时间;“timer”:表示定时器
7、单片机中只有
ARM
和
特殊功能寄存器的部分单元
有位地址,因此
位寻址只能对有位地址的这两个空间进行寻址操作
。
附录
51CPU模块的思维导图
C51语言模块的思维导图
外部设备模块的思维导图
举报
更多回帖
rotate(-90deg);
回复
相关问答
C51
萌新
求助
,
求
大佬
分享单片机的
知识点
2021-10-18
1138
关于蓝牙
核心
模块
CC2541的
知识点
总结
的太棒了
2021-06-15
1853
小白
求助
,
求
大佬
分享stm32标准库外部中断的
知识点
2021-11-17
718
萌新
求助
,
求
大佬
分享STM32的TIM延时的
知识点
2021-11-16
699
萌新
求助
,
求
大佬
分享ARM的嵌入式Linux开发的
知识点
2021-11-05
1012
求
大佬
分享关于TSMC 0.18um dc数字单元的
知识点
2021-06-21
809
关于
C
++的
知识点
总结
的太棒了
2021-10-11
1288
萌新
求助
,
求
35BYJ46步进电机的
知识点
2021-10-18
757
关于
c
语言中数组下标的加减平移
知识点
总结
不看肯定后悔
2021-10-14
2057
求助
c51
上怎么设计播放音乐
求
原理
2012-01-30
2924
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分