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

看冲哥的视频,打卡

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 18:13:36 | 显示全部楼层
第七集 第二讲 按键点灯
使用左移运算符,实现按一次按键左移一个LED点亮
------------------------------
数组
类型 数组名[数组长度];
把LED每次变化需要的样式,放到数组里面,把数组中的每个数依次给P6显示。
在keil里面竖着选择。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 18:57:02 | 显示全部楼层
第八集 蜂鸣器
有源蜂鸣器,无源蜂鸣器
用一个IO口通过SS8550三极管控制蜂鸣器
----------------------------
小需求,模拟电磁炉的部分功能
两个按键,按键1开关机,按键2,选择运行的功能,8个LED,每个LED表示一个运行功能,一个蜂鸣器。
两个按键,按键1开关机,按键2,选择运行的功能,8个LED,每个LED表示一个运行功能,一个蜂鸣器。
1、按下按键1,蜂鸣器响一下,8个LED全部亮一下,表示开机。
2、开机后,按下按键2,蜂鸣器响一下,8个LED其中一个亮,再按按键2,蜂鸣器响一下,8个LED下一个亮,原来亮的熄灭,依次。。。
3、按下按键1,蜂鸣器响一下,LED全部熄灭,表示关机。
---------
这个小需求类似于上一集的按一下按键,点亮下一个灯,上一个灯熄灭。
使用模块化编程,把小需求单独写到c和h文件中。
--------------------
用bit 定义一个位的变量,来记录开机关机状态。
用一个u8定义一个变量,记录选择运行的功能。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 19:24:05 | 显示全部楼层
第八集 第二讲 蜂鸣器
在上一讲的基础上,增加按键3。
按下按键3后启动由按键2选择的功能,选择的LED闪烁,按键2不能再对选择功能做操作。
再按键3关闭启动的功能,恢复按键2能选择功能的操作。
-------------
按键3按下,启动功能后,按键1需要按的久一些才能关机,原因是LED闪烁时占用了时间,没有及时运行到按键1检测的地方。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 20:24:31 | 显示全部楼层
第九集 数码管的静态使用
数码管就是很多LED按照一定样子排列起来,封装到一起。
共阳极数码管,把所有正极接到一起。共阴极数码管,把所有负极接到一起。
用Excel计算每个数字对应数码管的编码。
-------------------------
数码管的静态显示,只对一个数码管操作。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 21:01:13 | 显示全部楼层
第十集 数码管的动态显示
动态显示,是多个数码管循环显示,在短时间内循环一周,在人眼分辨不出来的是一个一个数码管挨个亮过时,人眼看来就好像都在显示。
循环一周的时间在20ms以内。
-------------------------
8个数码管,一个数码管称为一位数码管。
同时把8位数码管点亮,每个数码管上显示相同的内容。
-------------------------
动态显示数码管
一个数码管显示1ms时,看到所有数码管一起显示,
把显示时间加长,可以看到挨个数码管一个一个显示。
-----------------
数码管显示小数点,课程的方法是把带小数点的码表也写道数组里面。
还有一个方法,在需要小数点的地方数码管码表的值与0xEF,这样dp就是0,其他数值不变。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-20 22:22:57 | 显示全部楼层
第十一集 定时器的使用
在确定时间内对某些功能操作,更精确的时间,并且不会被其他功能影响,这样就用到了定时器。
定时器有定时功能和计数功能。
定时器中断,每个一段时间打断主函数的程序,把定时器内容运行完后,再回到主程序运行。
-----------------
T0,设置为定时器。
看STC32G数据手册,定时器章节。
T0设置的寄存器在TMOD中T0_C/T设置定时器0是定时器功能 数据手册14.2.2
分频,不分频时,每来一个时钟定时器计数一次,12分频,每来12个时钟定时器计数一次。
分频的设置在T0x12来设置,在14章开始就有介绍。
T0_M1 T0_M0 两个寄存器确定定时器是16位和8位,是自动重载和不重载。
TF0 定时器T0溢出中断,定时达到设定值后,自动置一。
TR0 开启定时器,置一后定时器开始工作。
EA 总中断开启。
---------------------------
定时器时间计算看数据手册14.2.3
T0 工作在 1T 模式(AUXR7/T0x12=1) 时的输出时钟频率 =(SYSck)/(TM0PS+1)/(65536-[RL_THO, RL_TLO])/2
T0 工作在 12T 模式(AUXR7/T0x12=1) 时的输出时钟频率 =(SYSck)/(TM0PS+1)/12/(65536-[RL_THO, RL_TLO])/2

输出的时间=1/输出的时钟频率 单位S

------------------
用STC-ISP 生成定时器初始化函数
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-21 09:34:27 | 显示全部楼层
第十二集 计数器
每次引脚有一个脉冲输入,计数器+1。是定时器的另一种用法,定时器的脉冲来自系统时钟,并且时钟一般是固定不变了,计数器的脉冲一般来自引脚,也可以来自其他地方,计数器的脉冲不固定。
计数器的脉冲可以上升沿计数,也可以是下降沿计数。
计数超出最大值后。用一个变量在计数器中断中 +1,变量每次 +1 实际上是 65536。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-21 12:05:53 | 显示全部楼层
第十三集 简易多任务处理
先把每个功能都分到对应的c和h文件中
h文件要有防重复包含的宏,
#ifndef xxx
#define xxx
h文件中的内容
#endif
在c文件中定义的变量,要在其他地方使用
要在h文件中用extern 关键字声明
extern 数据类型 变量名;
变量的声明一定不能有初始化。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-21 14:47:49 | 显示全部楼层
第十三集 第二讲 简易多任务处理
51中可以位寻址的变量定义
数据类型 bdata 变量名=初始化值;
然后就可以用sbit把上面定义的变量分解成一个一个位进行操作,例如
uint8_t bdata LED_DATA=0XFF;
sbit LED0 = LED_DATA^0;
....
如果其他地方使用
estern bit LED0;
声明,这里不用sbit
按键的功能
1、消抖 2、按下瞬间 3、松开瞬间 4、长安3秒
我认为按下状态不用课程中讲的那么多,需要的状态,未按下、单击、长按、三种状态就够用了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-04-15 21:02:07

4

主题

40

回帖

154

积分

注册会员

积分
154
发表于 2023-5-21 15:11:05 | 显示全部楼层
第十三集 第三讲 简易多任务处理
把按键写成一个单独的模块。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-17 11:17 , Processed in 0.171994 second(s), 89 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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