one_stu 发表于 2025-5-10 17:26:02

按键实现led灯亮
p3.3实现按下led左移。
如果是擎天柱开发板 ,led灯应该从P6改成P2

one_stu 发表于 2025-5-10 17:32:10

蜂鸣器的开发
单片机的学习离不开原理图,应当结合原理图学习
#define BEEP P54 定义BEEP为54引脚,是因为在硬件连接上54引脚相当于开关
队54引脚进行高低压输入,就可以实现蜂鸣器的开和关

one_stu 发表于 2025-5-10 17:41:59

第九集 数码管的静态应用

视频案例里,给出的蜂鸣器实例程序 注释没改
#define BEEP P54                //定义一个按键 引脚选择P33
===》改成
#define BEEP P54                //定义一个按键 引脚选择P54

从原理图上,可以看出来P7的io引脚管理数码管的位选,也就是选择哪个亮,看P7的值
而数码管显示什么数字,有P6引脚决定
所以,程序控制P7,再控制P6引脚开关,就可以实现数码管的显示‘

one_stu 发表于 2025-5-10 17:43:36

静态数码管的程序变化,是变化P6的值,
动态数码管的变化,主要是改变P7的十六进制数值,再将刷新率调高,就可以实现全部数码管一起显示

one_stu 发表于 2025-5-10 20:23:34

定时器
主函数多了一个需要执行的函数
程序系统的初始化+不断电下载的初始化+中断初始化

中断系统,比较常用的是定时器0中断,本次学习也采用的这个
使用方式是
1. 开启中断EA = 1
2. 选择是定时器还是计数器 AUXR
3. 选择模式TMOD = 0xF0
4. 给定时器设定初始值 TL0 TH0低八位和高八位一起组成初始值
5. 开启定时器TR0 = 1
6. 定时器和中断关联 ET0 = 1

申明中断服务的时候,要记得关键词 interrupt 以及后面的数字,对于定时器0而言,是1 (中断号)

我理解的中断顺序
程序从main主函数开始,执行到 Timer0_Init 的时候开启中断
主函数和中断的函数 Timer0_Isr 相当于同时在运行
Timer0_Isr 里面的程序理解为独立在执行

one_stu 发表于 2025-5-11 08:20:11

第15集 中断系统的详细内容在15集,非定时器那一集
思考外部中断以及定时器中断区别(个人理解):
定时器的中断是程序内部软件级别的中断,而外部中断是信号传递或者硬件引起的中断,相对来说,外部中断给一个信号就可以开启中断,更加简单

自己写的程序实现的功能是:
外部按键按下,第2个led灯就取反

写程序:
按照多任务处理的方式,将程序区分开,并将头文件以及实现文件进行区别
头文件进行定义
c文件实现功能
在c文件里初始化,开启外部中断

one_stu 发表于 2025-5-11 15:10:38

第十六集 IO中断
个人理解:stc32芯片可以让每个IO口都能实现中断功能
如果需要某个引脚实现中断功能,就对其进行配置
如P0口的6号脚,p06 那么,对7EFD00H(P0INTE)地址进行赋值为 01000000

对于中断大于31,可以借助13号中断,也可以采用下载软件补丁的形式,突破31限制
在官网上可以下载,第二个,下载安装。
此外视频中P3是40,P0可以看出来是37
页: 1 2 [3]
查看完整版本: 32G12K128学习打卡 |已送实验箱