找回密码
 立即注册
楼主: 千年***

接下来我在这个帖子里准备发对冲哥视频做的笔记

[复制链接]

该用户从未签到

552

主题

9537

回帖

1万

积分

管理员

积分
14068
发表于 2022-12-23 11:15:10 | 显示全部楼层

要提前打开内部上拉的 4K 电阻

  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2022-12-23 12:22:46 | 显示全部楼层
    已收到姚总配发的STC全家福!接下来我会将之前的作业一些效果图以及视频发于此。
    也请姚总帮我提高等级,以便让我上传视频!
    QQ图片20221223122126.jpg

    该用户从未签到

    552

    主题

    9537

    回帖

    1万

    积分

    管理员

    积分
    14068
    发表于 2022-12-23 13:22:00 | 显示全部楼层
    您已是金牌会员
    1.png

    该用户从未签到

    552

    主题

    9537

    回帖

    1万

    积分

    管理员

    积分
    14068
    发表于 2022-12-23 13:27:08 | 显示全部楼层
    “开源广场及教学视频交流”版块已开通上传播放视频功能
    【新提醒】论坛上传视频方法介绍 - 开源广场及教学视频交流 国芯论坛 (stcaimcu.com)
    1.png
  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2022-12-24 19:58:30 | 显示全部楼层
    本帖最后由 千年老姚 于 2023-1-4 19:23 编辑

    各位晚上好!今天是2023考研第一天
    听说英一特别难?:dizzy:
    政治肖秀荣发挥依旧稳定:lol
    刚才看完了第十二集,以下为简略版笔记
    若笔记有误,请各位指正
    第九章:数码管的静态使用
    一.认识数码管
    数码管为LED数码管,内部是由多个发光二极管封装在一起组成。
    本质都是点亮内部LED来显示的,只要面板做好了,理论可以显示任意的字符或者图案。
    开发板中带了两个四位数码管。
    按发光二极管单元连接方式可以分为共阳极数码管和共阴极数码管,尾缀A标识共阳,K表示共阴。
    共阳接通:某管给低电平
    共阴接通:某管给高电平
    开发板上:共阳数码管/
    二.控制原理
    今日任务:点亮最后一位8
    使用P6和COM0即可点亮LED
    COM0——P7.0
    码表
    P67
    P66
    P65
    P64
    P63
    P62
    P61
    P60
    十进制
    16进制
    dp
    g
    f
    e
    d
    c
    b
    a
    0
    1
    1
    0
    0
    0
    0
    0
    0
    192
    C0
    1
    1
    1
    1
    1
    1
    0
    0
    1
    249
    F9
    2
    1
    0
    1
    0
    0
    1
    0
    0
    164
    A4
    3
    1
    0
    1
    1
    0
    0
    0
    0
    176
    B0
    4
    1
    0
    0
    1
    1
    0
    0
    1
    153
    99
    5
    1
    0
    0
    1
    0
    0
    1
    0
    146
    92
    6
    1
    0
    0
    0
    0
    0
    1
    0
    130
    82
    7
    1
    1
    1
    1
    1
    0
    0
    0
    248
    F8
    8
    1
    0
    0
    0
    0
    0
    0
    0
    128
    80
    9
    1
    0
    0
    1
    0
    0
    0
    0
    144
    90

    三.数码管实现0-9的显示
    1.用数组定义0-9的内码
    2.尝试用延时实现0-9的循环显示
    3.用按键控制数字的加或者减。
    代码如下(省略部分头文件)
    1. u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9,参照上方码表
    2. void main()
    3. {
    4. num = 0;
    5. while(1)
    6. {
    7. P70 = 0 ;//开启一个数码管
    8. P6 = SEG_Tab[num];  //该数码管输出段码
    9. num++;
    10. delay_ms(1000);
    11. if (num>9)
    12. num = 0;
    13. }
    14. }
    复制代码

    3.按键加减
    1. #define KEY1 P32
    2. #define KEY2 P33
    3. #define BEEP P54
    4. ......
    5. u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9,参照上方码表
    6. void main()
    7. {
    8. num = 0;
    9. while(1)
    10. {
    11. P70 = 0 ;//开启一个数码管
    12. P6 = SEG_Tab[num];  //该数码管输出段码
    13. if (KEY1 == 0)
    14. {
    15. delay_ms(10);
    16. if (KEY1 == 0)
    17. {
    18. BEEP = 0;
    19. delay_ms(10);
    20. BEEP = 1;
    21. while(KEY1 == 0)
    22. if (num < 9)
    23. {
    24. num++;
    25. }
    26. }
    27. }
    28. if (KEY1 == 0)
    29. {
    30. delay_ms(10);
    31. if (KEY2 == 0)
    32. {
    33. BEEP = 0;
    34. delay_ms(10);
    35. BEEP = 1;
    36. while (KEY2 == 0)
    37. if (num > 0)
    38. {
    39. num--;
    40. }
    41. }
    42. }
    43. }
    44. }
    复制代码

    自己需要学会取码,后期学习LCD会运用到。
    总结:
    1.了解数码管的数字内码的由来
    2.学会数码管通过数组的方式获取数值。
    课后练习:1.尝试使用数码管显示  -   H  J    L   N   o  P   U  t  r 等字母或符号。
    2.通过一个按键设置数码管显示数字0-9循环,在按一下另一个按键的时候,数码管上显示的数字几,蜂鸣器就响几声。

  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2022-12-26 20:13:54 | 显示全部楼层
    本帖最后由 千年老姚 于 2023-1-4 19:26 编辑

    各位晚上好!
    刚才看完了第十三集,以下为简略版笔记
    若笔记有误,请各位指正
    第十章:数码管的动态显示
    1.数码管动态刷新的原理
    后面附图
    2.控制原理
    注意:延时不能太短,人眼难以分辨50hz以上动态刷新
    3.八位数码管的同时点亮
    1.在上一节课的基础上,新增一个位码选择的数组
    数组  
    P77        P76        P75        P74        P73        P72        P71        P70
    1        2        3        4        5        6        7        8        十六进制
    点1                0        1        1        1        1        1        1        1        7F
    点2                1        0        1        1        1        1        1        1        BF        
    点3                1        1        0        1        1        1        1        1        DF
    点4                1        1        1        0        1        1        1        1        EF
    点5                1        1        1        1        0        1        1        1        F7
    点6                1        1        1        1        1        0        1        1        FB
    点7                1        1        1        1        1        1        0        1        FD
    点8                1        1        1        1        1        1        1        0        FE


    2.调用数组选择位码

    1. //以下省略部分头文件
    2. u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9,参照上方码表
    3. u8 COM_Tab[8]= {0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE} //点亮某个数码管
    4. void main()
    5. {
    6. while(1)
    7. {
    8. P7 = COM_Tab[0];
    9. P6 = SEG_Tab[0];
    10. delay_ms(200);
    11. P7 = COM_Tab[1];
    12. P6 = SEG_Tab[1];
    13. delay_ms(200);
    14. P7 = COM_Tab[2];
    15. P6 = SEG_Tab[2];
    16. delay_ms(200);
    17. P7 = COM_Tab[3];
    18. P6 = SEG_Tab[3];
    19. delay_ms(200);  //显示0123
    20. }
    21. }
    复制代码

    简略写法(省去部分头文件,函数定义):
    1. while(1)
    2. {
    3. P7 = COM_Tab[num];
    4. P6 = SEG_Tab[num+1];
    5. delay_ms(200);
    6. num++;
    7. if(num > 7)
    8. num = 0;
    9. }
    复制代码


    3.新建一个数组选择每个位需要显示的内容
    1. //以下省略部分头文件
    2. u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9,参照上方码表
    3. u8 COM_Tab[8]= {0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE} //点亮某个数码管
    4. u8 Show_Tab[8] = [1,9,1,9,8,1,0,0]
    5. void main()
    6. {
    7. while(1)
    8. {
    9. P7 = COM_Tab[num];  //位码的选择
    10. P6 = SEG_Tab[Show_Tab[num]]; //需要显示数字的内码 赋给 P6
    11. //num = 0 —> Show_Tab[num] = 1 —> P6 = 0xF9
    12. P6 = SEG_Tab[num+1];
    13. delay_ms(200);
    14. num++;
    15. if(num > 7)
    16. num = 0;
    17. }
    18. }
    复制代码


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

    1. //以下省略部分头文件
    2. //u8 SEG_Tab[10] = { 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0-9,参照上方码表
    3. //带小数点段码:最高位- 0x80就可以
    4. u8 SEG_Tab[10] = { 0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
    5. u8 COM_Tab[8]= {0X7F,0XBF,0XDF,0XEF,0XF7,0XFB,0XFD,0XFE}; //点亮某个数码管
    6. u8 Show_Tab[8] = {0,0,0,0,10,0,0,0};
    7. u32 TimCount = 0;  //计数单位1ms
    8. bit RUN_State = 0 //开始运行/结束运行
    9. void main()
    10. {
    11. while(1)
    12. {
    13. Show_Tab[0] = 1;
    14. Show_Tab[1] = 10;
    15. Show_Tab[2] = 0;
    16. Show_Tab[3] = 0;
    17. P7 = COM_Tab[num];  //位码的选择
    18. P6 = SEG_Tab[Show_Tab[num]]; //需要显示数字的内码 赋给 P6
    19. //num = 0 —> Show_Tab[num] = 1 —> P6 = 0xF9
    20. P6 = SEG_Tab[num+1];
    21. delay_ms(200);
    22. if (RUN_State == 1)
    23. {
    24. TimCount++;
    25. Show_Tab[4] = TimCount/1000%10;
    26. Show_Tab[5] = TimCount/1000%10;  //显示小数点和千位
    27. Show_Tab[6] = TimCount/100%10;   //取百位
    28. Show_Tab[7] = TimCount/10%10;  //取十位
    29. }
    30. num++;
    31. if(num > 7)
    32. num = 0;
    33. if (KEY1 == 0)
    34. {
    35. delay_ms(10);
    36. if (KEY1 == 0)
    37. {
    38. BEEP = 0;
    39. delay_ms(10);
    40. BEEP = 1;
    41. while(KEY1 == 0)
    42. {
    43. P7 = COM_Tab[num];  
    44. P6 = SEG_Tab[Show_Tab[num]];
    45. delay_ms(200);
    46. num++;
    47. if(num > 7)
    48. num = 0;
    49. }
    50. if (RUN_State == 0)
    51. RUN_State = !RUN_State;
    52. }
    53. }
    54. }
    55. }
    复制代码

    总结:
    1.了解数码管怎么实现的动态显示。
    2.学会每一位的数码管的任意内容的显示。
    课后练习:
    一、做一个简易时钟,功能如下
    1.初始状态显示 00 - 00 - 00,分别作为时,分,秒
    2.每隔一秒钟,秒+1,一分钟,分+1,以此类推
    3.时间到达00 - 00 - 30的时候,蜂鸣响3秒钟表示闹钟
  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2022-12-26 20:50:45 | 显示全部楼层
    这几天有点累 笔记质量有些下降。
    我这周主要任务是上传作业视频给各位 以供各位参考。
    今年考研数学太难了 我看的都头晕:dizzy:
  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2022-12-29 20:27:44 来自手机 | 显示全部楼层
    各位 我最终还是羊了 大家要注意身体

    该用户从未签到

    552

    主题

    9537

    回帖

    1万

    积分

    管理员

    积分
    14068
    发表于 2022-12-29 21:13:46 | 显示全部楼层
  • TA的每日心情
    开心
    2024-2-28 07:06
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    5

    主题

    52

    回帖

    1334

    积分

    金牌会员

    积分
    1334
     楼主| 发表于 2023-1-1 18:34:22 来自手机 | 显示全部楼层
    昨天测得 还没好 继续养身体
    IMG_20221231_130303.jpg
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-20 10:14 , Processed in 0.081789 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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