文章目录[隐藏]
合伙创业、商业需求 Q:1274510382
https://www.bilibili.com/video/av286413345/
功能与使用
单核A2产品
基于STC89C52
低功耗,高性能的51内核的CMOS 8位单片机
产品的 A6/7 双cpu
STC8A STM8M
功能模块
-
数码管 四位一体
共阴极 -
数码管 驱动电路(不能直接用 单片机 管脚来驱动)
大的 : 74hc245 CMOS高速收发器 输出 作为 数码管 段选 信号
小的 : 74HC138 高速CMOS器件 74HC138译码器
八个数码管的片选
节约 iO口资源
CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)
-
LCD1602液晶显示器 接口
显示 数字 字符
-
LCD9648 液晶屏
-
LCD12864
带字库/不带字库
字库芯片 -
电位器
1602 对比度
(对应 电压管脚) -
LED 8*8 点阵
64 个 灯(内部电路 很明白 清楚)(初学易学)
或者 市场上 8*8集成点阵 (带控制引脚)
比较 不太好 初学
-
io拓展 芯片 74HC595
8位串行输入、并行输出的位移缓存器
串转并
3个管脚 拓展 8个(剩下的 8 个 通过 单片机io口)
节约io口 -
跳线帽 短接片
595 有一个 使能 管脚控制 切换
默认 接 GND 右 (左边 VCC)
处于 一直工作 状态 有效
使得 管脚 有 默认 的 输出电平
使得 点阵 发光
对应 丝印
-
LED 模块
简单 io口 操作
用 LED灯 练习基本 IO口 使用
用来 调试 程序 -
4*4 矩阵键盘
独立 按键 一个 io口 一个 按键 (另一端接地)
根据 监测 io口 电平状态 就能 按键功能检测
单片机总共 32 io口
矩阵 4*4 (既要检查 行 又要 检测 列)
(也可以拆分成 独立按键)
8个io口可以解决
有效的 拓展 按键数量 (输入)
1602显示器(输出)2*16 = 32 字符
02说明 2行
16能显示16个字符(数字,字符)
12864/9648中文 汉字 图形
96 液晶屏像素点 一行
有48 个 行
每一行128点
每一列64点
通常 汉字有 16*16 个像素点
1602 用 5*7
汉字为 两个 字符 大小
128/16 == 8 个 汉字
64/16 = 4
字符
16个 一行
-
ds18b20 温度传感器
-
红外 接收头
注意凸起 丝印 ------ 不然容易 电源短路烧掉 传感器/芯片 -
2.4G 接口
nRF24L01 模块
两个模块 通信
500m左右 通信距离
- 电源 输出 管脚
配置 为 系统的 电源
给外部传感器 供电 插针
3.3 gnd 5v
外部电源
从 usb 供电口 供电
-
稳压芯片 将5v 转成 3.3(wifi , 蓝牙 ,2.4G)
-
usb 转 串口 模块
单片机支持 串口 下载
ch340c 芯片
信号转换
usb — 串口
通过 上位机 实现 程序 下载
还可以 供电
短接片 (跳线帽)
串口 连到 转接片 ----到 单片机
接受 与 发送
wifi 蓝牙 gps GSM 等
串口模块 调试
可以通过 串口调试助手 AT指令 进行调试
模拟 单片机 的 串口功能
模块 进行 响应
双方 进行 学习 (电脑 调试助手 / 单片机)
usb转 TTL电平信号 (串口)
- AD/DA 模块
ad芯片xpt2046
精度 12位
四路模拟输入通道
通过电位器 改变电压 (模拟电压)输入到 对应通道
采集电压值 - 第一路
光敏 (模拟信号) 光线强弱 变化 ad值 也会变化
转换成 数字信号 给 单片机 处理 - 第二路
热敏电阻 感应环境温度 - 第三路
外部 传感器 模拟信号 输入到 芯片 进行 采集 - 第四路
- 加上 gnd
da 没有用 da芯片
在实际的 开发 中 用的不多
- 成本高
- 精度 一般 8位
- 一般 单片机 输出 pwm 波 / RC 电路 实现 da 模拟 来实现 da芯片 功能
- LM358是双运算放大器
信号 放大
da 的 输出 模拟信号 进行 外部 调节 (电机)
通过 灯 进行 变化 体现 功能
- 无源蜂鸣器
有源 只需要 电源 发生
无源 需要 一定频率 脉冲
-
DS1302 实时时钟芯片
时钟电路
-
32.768K晶振
给 ds1302 提供 时钟源 -
电机模块 uln2003
高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成,
每一对达林顿(两个三极管接在一起)都串联一个2.7K 的基极电阻,
在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,
可以直接处理原先需要标准逻辑缓冲器来处理的数据
五线四相步进电机/直流电机(只能驱动 一个方向/ 不能 反转)
- 单片机 stc89c52
一个低功耗,高性能的51内核的CMOS 8位单片机
stc89c516
at89c52
8051内核
40个 管脚
32 个 io口
4*8
avr
msp430
stm32
连接对应模块
-
主芯片 晶振电路
12M晶振
最小系统 -
复位电路
高电平 复位
复位管脚
芯片 重新运行
芯片 方向
短路
vcc gnd 对调
- ch340 驱动
https://gitee.com/rtthread/rt-thread 开源物联网操作系统
设备管理器 串口号 ch340
- 程序下载软件
P2 51单片机介绍(一)
基础
-
大学里 学 电子的 课程
-
ROM 只读存储器 (掉电不丢失)(存储程序)
-
RAM 随机存储器 (掉电丢失) (存储变量参数)
-
cpu 位数
-
rom ram 大小
-
DIP 封装 双列直插封装 dual in-line package
-
SOP 封装 贴片 封装
AT (Atmel 半导体)
- MAX232芯片
美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。
-
AT 89c51
-
CMOS是Complementary Metal Oxide Semiconductor(互补金属氧化物半导体)的缩写。
它是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片,
是电脑主板上的一块可读写的RAM芯片。
因为可读写的特性,所以在电脑主板上用来保存BIOS设置。
80C51 89C51总线型
P3.6 没有引出来 非总线型
32个IO口 40 管脚
第二功能
通讯 串行接口 RX TX
下载程序
并行 io口
T/C 定时/计数
串口I/O UART 通用 异步 接收发送器
可以跟电脑通信
12MHZ晶振
P3 51单片机介绍(二)
学习板子
开漏输出OC门 P0 内部没有上拉电阻 要输入 高低电平 需要外部加
- 集电极开路(漏极开路)与非门门电路,Open Collector(Open Drain)
p1 p2 p3 准双向 IO 内部 有 上拉电阻
反相器
晶体管
通过 上拉电阻 保持 IO口 与 内部输出 同步
数电模电
P4 C语言基础
- 头文件 包含 单片机 一些 特殊寄存器
do while 至少执行 一下 do里的语句
QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方认证-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!
添加 stc 芯片库
keil5新建c51工程 并配置
QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方认证-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!
Keil uVision 5-C51和MDK-ARM共存
QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方认证-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!
C51学习 —— 外部中断 and 定时器中断
QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方认证-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!
1.什么是中断
中断就是指CPU正在执行一项任务A,
然后突然停止任务A去执行任务B,
执行完任务B再回来继续执行任务A的过程。
中断跟硬件有关。可以说是硬件来让单片机中断。
2.中断有什么用
1.中断能让CPU同时执行多项任务,
例如CPU在执行流水灯程序,
就无法执行 按下按键时,蜂鸣器发声了。
2.当然上面的例子可以用软件轮询检擦案件是否按下来实现,
但这样就消耗了CPU一部分资源来轮询检测
按键是否有按下了,所以中断的另一个优点就是
节省CPU资源
3.双重功能的P3引脚
由最小系统板的原理图可知,
P3.0~P3.7的引脚对应着
RXD,TXD,INTO,INT1,T0,T1等,
说明P3引脚既是 I/O口,
由有别的功能,这个功能就是中断功能。
4.8051中断体系
8051的单片机有
5个中断源,2个优先级
由上图可知,
INT0是通过引脚P3.2,
INI1时通过引脚P3.3,
定时器T0和T1是 引脚P3.4和P3.5
中断源:
INT0(外部中断0),
INT1(外部中断1),
T0(定时器0),T1(定时器1),
RXD和TXD(同属串口中断)
中断相关的特殊寄存器:
(1)中断允许控制寄存器(IE)--------控制各中断的开放和屏蔽
(2)定时器/计数器控制寄存器(TCON)-------定时器和外部中断的控制
(3)串行口控制寄存器(SCON)-------串行中断的控制
(4)中断优先级控制寄存器(IP)-------设置各中断的优先级
各寄存器的控制范围如下图:
从上图可看出从中断源产生请求
到请求进入CPU的过程:
以INT0为例,INT0产生中断源,
经过TCON寄存器中的IT0为选择是下边沿触发
还是
低电平触发的中断请求 (当然IT0是程序人工设置的),
当中断请求到达IE0的时候,
IE0会被硬件置1(当CPU响应此中断请求时,IE0被硬件置0),
然后就到 IE寄存器的地方了,
EX0是外部中断INT0的开关,
而 EA 是所有中断的总开关,这都由 IE寄存器控制,
最后经过 IP寄存器
设置优先级,这个一般比较少用,
默认的优先级为,INT0 > T0 > INT1 > T1 >串口中断。
最后把中断请求传给CPU。
5.中断特寄存器
TCON寄存器
IE寄存器
EA:中断的总开关,EA=1才能允许中断传给CPU
ES:串行口中断开关
ET1:定时器1中断开关
EX1:外部中断1开关
ET0:定时器0中断开关
EX0:外部中断0开关
IP优先级寄存器
(对应为设置成1说明优先级设置成高,8051只有高低两种优先级)
6.中断的优先级
8051只有高低两种优先级,
默认下优先级从高到低:INT0 > T0 > INT1 > T1 > 串行中断。
1.高优先级的中断可以打断低优先级的中断。
2.正在响应的中断,不能被同级或者低级的中断打断。
3.同时发生几个中断,先响应优先级高的中断
7.中断服务程序的编写
中断服务程序就是中断发生后,CPU去执行的函数。
1.中断服务函数没有返回值
2.中断服务函数不能传入参数
例如:
void 函数名 (void) interrupt x using y
{
}
x 范围为0~4,分别代表5个中断源,例如外部中断INT0就是0,T0就是1,INT1就是2,T1就是3,串行中断就是4
y 的范围为0~3,分别表示4组工作寄存器,不写就用0. 不写也可以
8.外部中断实现代码
#include<reg52.h>
sbit LED=P1^0;
void main()
{
IT0=0; //中断触发方式为低电平触发,IT0=1则为下边沿触发
EX0=1; //打开外部中断0
EA=1; //打开中断总开关
while(1)
{
LED=1; //在没有中断发生时,LED关闭
}
}
void INTERR(void) interrupt 0
{
LED=0;//有中断发生时,LED亮起
}
把开发板的
P3.2用杜邦线接到GND上,
就会触发中断,发现LED亮起来了。
(为什么是P3.2?因为由最上面的原理图可知道INT0的引脚是P3.2)
9.定时器/计数器中断工作原理
1.由最上面的最小系统原理图可以看出,
定时器T0和T1分别对应的引脚是P3.4和P3.5
2.定时器/计数器 的
计数脉冲来源可以有两个,
一个是芯片内部晶振振荡器输出脉冲12分频后的脉冲,
一个是从外部接入的外部脉冲
3.TLx和THx寄存器,x=0,1。
以TL0和TH0为例,
TL0和TH0 都是8位寄存器(8051的寄存器都是8位),
所以TL0和TH0形成高八位和低八位寄存器,用于计数,一共16位。
2^16=65536,
所以 TL0和TH0加一起最大能计数的值是0~65536,一共65536.
4.定时器/计数器的两个寄存器:
TCON和TMOD,
其中TCON用于开启定时器/计数器中断,
TMOD用于设置定时器/计数器的工作方式(TCON上面 已经说过了)
TMOD寄存器:
(由图:低八位为定时器T0,高八位为定时器T1)
GATE:门控制。
当GATE=1:
INTx引脚为高电平且TRx 要同时为1,定时器Tx才启动。
当GATE=0:
只要TRx =1,定时器Tx就启动,不用理会INTx引脚的电平高低。
C/T:决定是使用 定时功能,还是 计数功能
当C/T=0:
定时功能。加1计数器
对芯片晶振12分频的脉冲计数,一个脉冲过来,就加一,直到 TFx 加满了溢出。
(TFx在TCON寄存器中)
当C/T=1:
计数功能。加1计数器
对来自输入引脚T0(P3.4)或T1(P3.5)的外部脉冲进行计数,
一个脉冲加一,直到TFx加满溢出。
10.定时器/计数器定时数值的计算
例:
我要定时10ms。晶振频率是12M,
工作模式在方式1
f = 12M/12 =1M (因为要12分频),
也就是说 1秒 1000000个机器周期,
10ms有10000个机器周期。
65536 - 10000 = 55536 ,意思是
计数器从65536 一直减到 55536 所用的时间就是10ms。
55536的十六进制是0xD8F0
所以设置
TH0 = 0XD8,TL0=0XF0
下面给出代码
或者直接下载一个C51定时器计算器:
定时器/计数器代码
#include<reg52.h>
sbit LED0=P1^0;
unsigned char i;
void main()
{
TMOD=0X01; //设置使用定时器0,16位的定时/计数寄存器
TL0=0xD8; //低八位赋初值
TH0=0XF0; //高八位赋初值
ET0=1; //开启定时器0中断
TR0=1; //运行定时器0
EA=1; //开启中断总开关
while(1);
}
void Delay(void) interrupt 1 using 0
{
i++;
TR0=0; //进入中断函数时,关闭定时器
TL0=0XD8; //重新赋初值
TH0=0XF0;
if(i==20) //因为10ms一次处罚看不出明显结果,所以让20次触发才让灯变一次
{
LED0=~LED0;
}
TR0=1; //重新开启定时器
}
C51学习 —— 解决中文注释 ??? 的问题
QQ 1274510382
Wechat JNZ_aming
商业联盟 QQ群538250800
技术搞事 QQ群599020441
解决方案 QQ群152889761
加入我们 QQ群649347320
共享学习 QQ群674240731
纪年科技aming
网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。
叮叮叮:产品已上线 —>关注 官方认证-微信公众号——济南纪年信息科技有限公司
民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/
安全项目:态势感知防御系统/内网巡查系统
云服项目:动态扩容云主机/域名/弹性存储-数据库-云盘/API-AIeverthing
产品咨询/服务售后(同)
纸上得来终觉浅,绝知此事要躬行 !!!
寻找志同道合伙伴创业中。。。抱团滴滴aming联系方式!!
版权声明:本文为CSDN博主「amingMM」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33608000/article/details/122525506
暂无评论