找回密码
 立即注册
楼主: xyxvlbkm

0.初识8051U

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-8-27 10:03:18 | 显示全部楼层
8. 数码管任务
第八章 数码管
8.1 数码管介绍
数码管也叫LED数码管,内部是由多个发光二极管封装在一起组成,理论可以显示任意的字符或者图案。
8.2 数码管显示原理

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管 AS”代表单色,而“BS”代表双色‌
截图202508271003272111.jpg
截图202508271005081544.jpg 截图202508271005166769.jpg
截图202508271005262901.jpg
8.3 数码管静态显示
截图202508271006112921.jpg
8.4 数码管动态显示
截图202508271006579854.jpg 截图202508271007108512.jpg

具体的控制的流程如图所示,N表示有几个数码管!
其中需要注意每个延时不能太短,我们这边程序就以1ms为准,
且需要保证总共一个循环结束的时间不能大于20ms,
因为人眼的视觉不容易分辨出50HZ以上的动态刷新。

    任务2:数码管显示“12345678”


    任务3:数码管显示“00-00-00”分别代表时分秒 ,每过1秒钟秒+1;

8.5 虚拟显示——LED和数码管
截图202508271008335508.jpg
截图202508271008591451.jpg

简易10秒免单计数器
1.在前四位数码管上显示目标时间,即“ 10. 00 ”表示定时时间10秒钟
2.后四位显示当前的计时00.00,最小单位为10ms,
3.按下开始按钮后,每10ms最末尾的数字+1;直到按下结束按钮后停止计数。


回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-8-27 10:19:06 | 显示全部楼层
9. 虚拟LED和数码管任务
第九章 虚拟LED和数码管

1.硬件准备
截图202508271019446734.jpg

2.软件准备(最新的ISP软件) 菜单栏 -> 仿真调试接口

截图202508271019557194.jpg

3.参数设置  仿真调试接口 -> 接口设置

截图202508271020025125.jpg

4.选择指定的接口和协议匹配

一、 虚拟显示-LED
截图202508271027139587.jpg 截图202508271027482196.jpg 截图202508271027593852.jpg
截图202508271028273177.jpg 截图202508271028382628.jpg
二、 虚拟数码管
截图202508271029166830.jpg
截图202508271029277582.jpg 截图202508271029363585.jpg
截图202508271029558958.jpg 截图202508271030044582.jpg
三、 虚拟键盘
截图202508271030579863.jpg 截图202508271031083725.jpg

任务3:按下数字按键在数码管显示对应的按键数字!
例:按下按键0数码管显示0;


密码锁
1.没有输入时,显示“- - - - - - - -”
2.有输入时,按下一个按键,开始按顺序写入
    例如,第一个按下1,显示“1 - - - - - - -”   
    例如,第二个按下3,显示“1 3 - - - - - -”
3.当按下的密码为“ 1 2 3 4 5 6 7 8”时,数码管显示open的字符,否则,还是显示“- - - - - - - -”

截图202508271033252480.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-8-27 10:37:58 | 显示全部楼层
10. 矩阵按键任务
第十章 矩阵按键
1.矩阵按键的原理
截图202508271038063025.jpg

在按键数量较多时,为了减少I/O口的占用,将按键排列成矩阵排列的形式的按键阵列我们称位矩阵按键。
2.矩阵按键的程序实现

按键识别原理:端口默认为高电平,实时读取到引脚为低电平是表示按下。
①第一步:现将P0.0-P0.3输出低电平,P0.6-P0.7输出高电平,如果有按键按下,按下的那一行的IO就会变成低电平,就可以判断出哪一行按下了。
②第二步:现将P0.0-P0.3输出高电平,P0.6-P0.7输出低电平,如果有按键按下,按下的那一列的IO就会变成低电平,就可以判断出哪一列按下了。
③第三步:行列组合一下就可以判断出是哪个按键按下了。


任务1:数码管显示当前的按键号


密码锁
1.没有输入时,显示“- - - - - - - -”
2.有输入时,按下一个按键,开始按顺序写入
    例如,第一个按下1,显示“1 - - - - - - -”   
    例如,第二个按下3,显示“1 3 - - - - - -”
3.当按下的密码为“ 1 2 3 4 5 6 7 0”时,数码管显示open的字符,否则,还是显示“- - - - - - - -”


简易洗衣机面板
1.按下开机键后,数码管显示1,表示默认为清洗模式1;
2.用矩阵按键模拟洗衣机的操作面板,前五个按键模拟1-5的清洗模式按键,选择几的时候数码管显示数字几,表示以当前为第几个功能;
3.按下启动后,按照选择的模式对应的时间开始倒计时,倒计时结束后,数码管熄灭,表示清洗完成(清洗时间自己随意设置)

截图202508271040066330.jpg

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-12-16 09:25:49

18

主题

144

回帖

1296

积分

版主

积分
1296
发表于 2025-8-27 11:48:18 | 显示全部楼层
推荐优先看的 printf_usb("Hello World !\r\n")及usb不停电下载, 演示视频链接

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 15:39:47 | 显示全部楼层
11. 复位系统任务
第十一章 复位系统
确保系统处于确定状态:
复位操作可以确保单片机在开始工作时处于已知的状态,使其能够正确初始化各个寄存器和外设。
避免不确定行为:
没有进行复位时,内部控制寄存器的内容可能是随机的,这可能导致定时器溢出、中断异常、外设误操作等不确定行为。
初始化系统:
复位操作可以进行系统的初始化,包括清除寄存器、设置默认值、配置时钟等,为系统正常运行做好准备。
保证程序正常开始执行:
复位确保程序从正确的地址开始执行,避免跳转到未知的地址或执行错误的指令。
截图202509011618151442.jpg
1.硬件复位
1.上电复位(复位电压为1.7-1.9V):
截图202509011618563245.jpg
上电复位时间的影响因素1 上电复位使用较长延时
PS:如对开机时间没有严格要求,建议勾选这个!
上电复位时间的影响因素2 下次冷启动时,P3.2/P3.3为0/0才可下载程序
PS:如果需要快速开机,建议将P3.2 P3.3至少一个上拉一个5.1K电阻到VCC
2.低压复位:
截图202509011619361555.jpg
● 勾选后,当VCC电压低于设置的低压检测电压时,MCU会产生低压复位。
● 如果不勾选允许低压复位选项,当VCC电压低于设置的低压检测电压时,
MCU会产生低压中断标志。如果使能了低压中断的话,就会产生低压中断。
3.复位脚复位:
截图202509011620043715.jpg
● 将下载软件哪个的“复位脚用在I/O口”勾勾去掉,并外接这个电阻和按键,即可实现硬件复位!
4.看门狗复位:
截图202509011621035656.jpg
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,
如果到了一定的时间还不去清理看门狗(也叫喂狗),
那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
所以,在使用有看门狗的芯片时要注意清理看门狗。
任务1:编写看门狗程序
● 参考手册9.7.1范例程序(程序有USB功能记得先加USB复位)
P3M0 = 0x00;
P3M1 = 0x00;
P3M0 &= ~0x03;
P3M1 |= 0x03;
USBCON = 0X00;
USBCLK = 0X00;
IRC48MCR = 0X00;
Delay10ms();
2.软件复位
截图202509011622451999.jpg
密码锁
1.没有输入时,显示“- - - - - - - -”
2.有输入时,按下一个按键,开始按顺序写入
    例如,第一个按下1,显示“1 - - - - - - -”   
    例如,第二个按下3,显示“1 3 - - - - - -”
3.当按下的密码为“ 1 2 3 4 5 6 7 0”时,数码管显示open的字符,否则,还是显示“- - - - - - - -”
新增:
1.看门狗,超时1秒自动复位
2.增加开机版本号,开机显示三秒的U 1.00 版本号
3.增加手动复位,P33按钮按下时重启(方便查看版本号和清除密码)
截图202509011609172593.jpg

截图202509011608251981.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 16:25:46 | 显示全部楼层
12. 外部中断任务
第十二章 外部中断
1.中断系统介绍
截图202509011625565337.jpg

        当中央处理机 CPU 正在处理某件事的时候外界发生了紧急事件请求,
CPU 暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,
继续原来的工作,这样的过程称为中断。实现这种功能的部件称为中断系统。
● CPU 总是先响应优先级别最高的中断请求
● CPU 能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,
● 每一个中断源可以用软件独立地控制为开中断或关中断
● 部分中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断
截图202509011627055320.jpg 截图202509011627195256.jpg
截图202509011627318874.jpg

CPU 总是先响应优先级别最高的中断请求


CPU 能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序


每一个中断源可以用软件独立地控制为开中断或关中断


部分中断的优先级别均可用软件设置。高优先级的中断请求可以打断低优先级的中断

2.外部中断介绍
截图202509011628413782.jpg 截图202509011628568192.jpg

外部中断就是在单片机的一个引脚上,由于外部因素导致了一个电平的变化(比如由高变低),
而通过捕获这个变化,单片机内部自主运行的程序就会被暂时打断,转而去执行相应的中断处理程序,
执行完后又回到原来中断的地方继续执行原来的程序。

什么引脚能作为外部中断口?


引脚带INTx标识的


分别能支持什么类型的中断?


截图202509011630115159.jpg
外部中断0:
IT0
IE0
EX0
EA
外部中断1:
IT1
IE1
EX1
EA
外部中断x:x=2-4
INTxIF
EXn
EA
截图202509011630529758.jpg

外部中断1:
IT1
IE1
EX1
EA

3.外部中断用法

截图202509011631472663.jpg

雕刻机保护系统

1.按下矩阵键盘上的按钮1开始工作
2.工作时打开LED0,表示雕刻机电源已打开
3.当外部中断1端口导通时,立刻关闭LED0,
    表示切断雕刻机电源,从而实现保护功能。

截图202509011632216938.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 16:39:11 | 显示全部楼层
13. IO中断任务
第十三章 IO中断
1.IO中断介绍
截图202509011639215036.jpg
相比于外部中断,IO中断有以下优点:
1.支持所有的IO口(外部中断只有特定的外部中断的引脚)
2.可以任意配置上升沿/下降沿/高电平/低电平(外部中断只有上升/下降沿中断)
缺点:
IO中断同时只能支持一种中断模式,外部中断0和1可以同时支持上升/下降沿中断(可以用两个IO端口实现双边沿检测!)。
2.IO中断用法
1.选择合适的中断模式
截图202509011640119633.jpg 截图202509011640238378.jpg
2.打开端口的中断功能
截图202509011640476086.jpg
3.配置IO口的中断
截图202509011641419372.jpg
4.中断号处理
截图202509011642109434.jpg
任务1:编写IO中断的程序
3.中断优先级的设置
截图202509011642437363.jpg
相同优先级,靠前的中断源先执行,执行完 之后在执行低中断源,且一个中断源在执行的时候不能被打断。
定时器0和P3中断都是最低优先级,定时器0中断号1,P3中断号40,执行完定时器0,在执行P3,在执行定定时器0,在执行...
任务2:编写P4端口的IO中断 打断 P3低电平中断的的程序(注意优先级)
多路抢答器
1.上电后一位数码管显示0,表示没有按下
2.选择任意三个独立按键作为三个用户,分别
   代表“用户1”,“用户2”,“用户3”
3.谁第一个按下按钮,数码管就显示数字几
   代表抢答成功
截图202509011643266252.jpg

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 16:47:09 | 显示全部楼层

14. 定时器计数任务

第十四章 定时器计数
1.计数器的作用
只要输出信号是高低电平变化的传感器,想要计算个数的就可以用计数器的功能。
2.定时器做为计数器的用法
截图202509011651244447.jpg
任务1:编写定时器1计数的的程序
(为了方便计数,10个脉冲中断一次)
3.定时器1测量INT1引脚低电平脉冲宽度
任务2:编写INT1测量低电平时间
(由按键模拟信号,100us的计数周期计数!)
CT计数器:
在设备的出料端口有一个感应器,每次有成品出来就会有一个低电平出来,计算相邻的两个产品出来的时间差来计算CT时间。
     1.计算P33引脚的相邻两次按下的时间,精确到100ms(即单个时间)
     2.计算按下P33的次数(即总产量)
3.数码管前四位显示单个时间 ,后四位显示次数
截图202509011652336677.jpg

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 16:59:54 | 显示全部楼层
15. DS18B20测温任务
第十五章 DS18B20测温
1.DS18B20简介
截图202509011700074748.jpg
DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,
抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,
如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样。主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,
农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,
使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
①、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
② 、测温范围 -55℃~+125℃,固有测温误差1℃。
③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,
       实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
④、工作电源: 3.0~5.5V/DC (可以数据线寄生电源)
⑤ 、在使用中不需要任何外围元件
⑥、 测量结果以9~12位数字量方式串行传送
2.硬件连接
截图202509011702008175.jpg 截图202509011702193291.jpg
3.功能描述
3.1温度测量
截图202509011702539599.jpg 截图202509011703264462.jpg
正数补码:本身不变
负数补码:按位取反在+1,加个-号
4.代码编写
截图202509011704148943.jpg
截图202509011705281996.jpg
截图202509011705551314.jpg
截图202509011706302955.jpg
截图202509011706471198.jpg
截图202509011706578704.jpg
1)复位和存在
复位(输出0保持480us,输出1保持60us,读取当前电平,延时420us)
2)写0,写1
写0(输出0保持60us+,输出1保持1us+)
写1(输出0保持1us+,输出1保持60us+)
3)读0,读1
读0/1(输出0保持1us+,输出1保持1us+,读取当前电平,延时60us)
4.1 底层驱动
复位(输出0保持480us,输出1保持60us,读取当前电平,延时420us)
写0(输出0保持60us+,输出1保持1us+)
写1(输出0保持1us+,输出1保持60us+)
读0/1(输出0保持1us+,输出1保持1us+,读取当前电平,延时60us)
4.2 接口函数
写1字节(先输出低位,在输出高位)
读1字节(先读到的是低位,后读到的是高位)
4.3 用户功能函数
温度读取换算函数
(复位-CCH-44H-等待-复位-CCH-BEH-读取2字节温度数据-换算)
测温计:
1.按下开关机按钮开机
2.开机后显示三个横杠和单位 “- - - C”/“- - - F”
3.在2秒内显示出当前温度
4.有一个按键可以切换摄氏和华氏
5.按下开关机按钮后关机,或者无操作30秒自动关机
截图202509011708422066.jpg
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:114
  • 最近打卡:2025-12-16 10:43:49
已绑定手机

3

主题

16

回帖

480

积分

中级会员

积分
480
发表于 2025-9-1 17:14:39 | 显示全部楼层
16. 串口简单应用任务
第十六章 串口简单应用
1.串口通信的基础知识
通信指设备之间通过一定的协议进行的信息交换。
通信要素:通信双方必须用一样的通信格式才能通信成功!
截图202509011717061825.jpg
截图202509011717199596.jpg
串口1/2和3/4的主要区别就在工作模式和工作方式上,这节课主要讲异步串口。
截图202509011718218606.jpg
每次发送一位数据的称为串行通信,多位一起传输的称为并行通信。
今天要讲的串口通信是串行通信的其中的一种!
截图202509011719404675.jpg 截图202509011719519462.jpg
①异步串口通信不需要统一的时钟信号,每个数据字节的传输都是独立的。所以需要发送和接收设备的时钟比较接近
②每个数据字节通常会被起始位和停止位包围,起始位用于通知接收端数据传输的开始,停止位用于标志数据字节的结束。
③由于没有统一的时钟信号,异步串口的传输速率相对较低,且需要额外的起始位和停止位,因此效率较低

①同步串口通信依赖于一个统一的时钟信号来同步发送端和接收端的数据传输。
②发送端和接收端共享同一个时钟信号,或者通过某种方式(如曼彻斯特编码)在数据流中嵌入时钟信息。
③由于有时钟信号的同步,数据传输的速率可以较高,且不需要起始位和停止位来界定每个数据字节,因此效率较高
截图202509011720467558.jpg 截图202509011720573426.jpg
截图202509011721073050.jpg
●波特率?  例如9600的波特率意味着每秒钟可以发9600位的数据。
●数据位?  
●校验位?
●停止位?
截图202509011722023595.jpg 截图202509011723266340.jpg
截图202509011722241367.jpg 截图202509011722331205.jpg
截图202509011722458828.jpg 截图202509011722551472.jpg
截图202509011723034343.jpg 截图202509011723132955.jpg
串口转以太网
截图202509011724176366.jpg
串口转WIFI
截图202509011724414073.jpg
串口转蓝牙
截图202509011725035114.jpg
串口转zigbee
截图202509011725245293.jpg
2.串口通信的寄存器配置
引脚选择
截图202509011726037731.jpg
截图202509011726217110.jpg
截图202509011726311649.jpg
3.串口通信的硬件连接
截图202509011727251629.jpg
截图202509011726467533.jpg
截图202509011727127851.jpg
4.使用ISP软件自动生成串口初始化代码
截图202509011727489803.jpg
截图202509011728076099.jpg
智能数码管显示屏
1.发送OPEN\r\n打开数码管,数码管显示“- - - -”
2.发送CLOSE\r\n打开数码管,数码管全部熄灭
3.再打开的情况下,串口发送DAT+123\r\n,数码管显示数值“123”
截图202509011728317726.jpg

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-16 16:20 , Processed in 0.143122 second(s), 82 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表