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

学习8051心得

[复制链接]
已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 10:47:01 来自手机 | 显示全部楼层
第十一集 定时器
前提:采用之前代码形式延时会产生程序卡死现象。
定时器/计数器统一称为定时器,因为定时用的多,此时采用的是硬件定时,结合中断,可以有效实现定时作用。
原理:T0、1、2、3、4都具有定时和计数两个功能,视频采用T0作为示范演示
TMOD:俩定时器的模式寄存器,很重要
C/T:控制定时器0,用作计时器或计数器,置0用作定时器,置1用作计数器
频率:辅助寄存器AUXR有不分频和12分频,默认除以12,即12分频。
定时器设置:
TF0:T0的溢出中断,想CPU请求中断
TR0:T0的控制设置
其他:
EA:定时器需要开启中断,也就是EA=1
ET0:分定时中断


回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 13:07:53 来自手机 | 显示全部楼层
第十三集:计数器的使用
用途:一般有高低电平变化的都可以使用计数功能
采用定时器1模式0就可以实现16进制自动装载模式,用定时器1时用TH1、TL1
配置计数器:外部计数的IO端口已经写好,只需要关注TMOD,按照计数器配置TMOD,注意,定时器1的中断号是3
定时器外部计数需要上拉电阻,因此需要配置上拉电阻相关寄存器PxPu
设置定时器1参数:
TMOD=0X40;
TH1=0xFF;
TL1=0xFF;
TF1=0;
TR1=1;
ET1=1;


回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 15:59:11 来自手机 | 显示全部楼层
十三集 回顾
重点理清程序逻辑思路,书写符合要求的代码规范

应用模块化编程,头文件和文件分开.c和.h

led.c led.h
Key.c key.h
一个功能对应一个头文件和文件
重要的函数要求写说明
要求专门的函数头写功能说明

创建文件三步:
新建文件并保存
添加到工程
添加引用路径
注意:单片机的引脚都定义在.h文件里
extern用于变量名在其他地方,在这里引用,但这个变量不能赋初值。
后面就是写代码了。。。。。自己练习



回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 19:15:24 来自手机 | 显示全部楼层
十四集 矩阵按键
原理:采用 6个口 但控制8个按键,目的在于减少IO口的使用
采用扫描法识别按键
识别原理:端口默认高电平,按下去时,读取为低电平
先判断哪一列按下:P0.0到P0.3输出低电平,6-7输出高电平 有按键按下,那一列IO变成低电平
判断哪一行按下:再把0-3高电平,6-7输出低电平,有按键按下,那一行变成低电平
最后行列组合,得出结果

读代码

通过密码锁来练习矩阵按键:
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 20:17:55 来自手机 | 显示全部楼层
十五集 外部中断
中断就是主程序在执行时,断开直接执行其他程序,之后再回来
CPU响应级别最高的中断

stc32中断源有很多,INT0,Timer0等
外部中断:在单片机引脚上,由于外部电平变化,通过捕获这个变化,单片机内程序被打断,执行中断程序
外部中断口能用的引脚:
带INTx的,
外部中断0:
IT0 IE0 EX0 EA
外部中断1:
IT1
IE1
EX1
EA

外部中断x:2-4
中断使用参考TCON
IT0:外部中断源触发控制位
IE0,外部中断0请求标志
EX0:外部中断0中断允许位
其他查阅手册
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

15

回帖

49

积分

新手上路

积分
49
发表于 2025-2-23 20:18:16 来自手机 | 显示全部楼层
图片
Screenshot_20250223_135616_com.microsoft.emmx.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-18 21:37 , Processed in 0.422531 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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