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

冲哥视频学习笔记

[复制链接]
  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-23 14:58:43 | 显示全部楼层
    本帖最后由 lclbf 于 2023-4-23 15:00 编辑

    本楼补充静态数码管作业:
    //****************按键2控制数码管数字减变化,按键1按下数码管显示的几蜂鸣器响几声****************
                                                    
                    P6 = SEG_D[num1];        //把段码对应数组给P6口
                    P7 = SEG_W[0];            //第一位数码管显示
                   
                    if(KEY2 == 0)                                 //按键2有按下
                    {                        
                            delay_ms(10);                        //延时10ms
                            if(KEY2 == 0)                         //再次检测按键2有按下
                            {                        
                                    BEEP = 0;                      //蜂鸣器响
                                    delay_ms(10);                //延时10ms
                                    BEEP = 1;                      //蜂鸣器停止响
                                    delay_ms(10);                //延时10ms

                                    num1++;                      //按键控制段码数组值自减                                
                                    if(num1 > 9)
                                            num1 = 0;                                

                                    while(KEY2 == 0);        //按键2松手检测,按键按下动作
                            }
                    }
                   
                    if(KEY1 == 0)                               //按键2有按下
                    {                        
                            delay_ms(10);                       //延时10ms
                            if(KEY1 == 0)                       //再次检测按键2有按下
                            {                        

                                    for(num2=0;num2<num1;num2++) //把数码管的数num1付给num2
                                    {
                                                    
                                            BEEP = 0;                                 //蜂鸣器响
                                            delay_ms(500);                        //延时500ms
                                            BEEP = 1;                                        //蜂鸣器停止响
                                            delay_ms(500);                        //延时500ms
                                    }
                                    
                                    while(KEY1 == 0);//按键2松手检测,按键按下动作
                            }
                    }

    程序如下压缩包:

    9_1 数码管静态显示3作业.rar

    83.17 KB, 下载次数: 10

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    回帖

    28

    积分

    新手上路

    积分
    28
    发表于 2023-4-23 15:39:04 | 显示全部楼层
    大佬,能不能讲解一下关于stc32与LabVIEW的通信程序,主要是传输重量数据显示,用的是USB转TTL连接是ch340g芯片
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-23 17:34:56 | 显示全部楼层
    zzcy 发表于 2023-4-23 15:39
    大佬,能不能讲解一下关于stc32与LabVIEW的通信程序,主要是传输重量数据显示,用的是USB转TTL连接是ch340g ...

    我也是初学者,看冲哥视频学习的,冲哥视频开了个专贴,你可以去去哪里问问,单独发贴也可以。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-24 10:52:51 | 显示全部楼层
    本帖最后由 lclbf 于 2023-4-24 11:09 编辑

    第十四集:矩阵按键
      用了P0口来实现矩阵按键。电路如下图:

    1.png

    矩阵按键可以用少单片机的端口是现多个按键控制。控制原理,利用扫描法:先给列加低电平,
    给行加高电平,来读取行,如果那个端口是低电平,对应的行有按键按下;再给行加低电平,给
    列加高电平,来读取列,如果那个端口是低电平,对应的列就有按键按下;最后把行和列用或(|),
    就可以判断那个按键有按下。

    2.png

    3.png

    实验程序如下压缩包:


    14_1 矩阵按键1.rar

    159.89 KB, 下载次数: 11

    14_1 矩阵按键2.rar

    162.09 KB, 下载次数: 10

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-24 15:21:34 | 显示全部楼层
    本帖最后由 lclbf 于 2023-5-16 08:04 编辑

    第十五集:外部中断
      STC32有 INT0,INT1,INT2,INT3,IN4四个外部中断,其中INT0,INT1可以同时支持上升沿和下降沿触发,INT2,INT3,INT4只支持下降沿触发.
      在学习本集视频中又遇到点问题:1,最后一位数码管有很暗的段码和流水灯一起变化(冲哥的程序也有这样的现象)。2,用外部中断0没有
      发现问题,用外部中断1时,本来设置为下降沿触发的,实际中上下降沿都触发。有9.6实验箱的朋友下载我的程序,帮我测试一下。
      第一个问题相关程序如下,我是把数码管关闭了的。
    1.png

    第二个问题相关程序如下:
    2.png

    3.png

    上面出现的问题,LED流水灯的时候最后一位数码管的断码也随着变化,在冲哥的指导下终于搞定,就是在数码管刷新
    和LED刷新中间再加一个else if来关闭数码管,程序如下:
    void SEG_LED_Fre()
    {
            static num = 0;

            if(num <= 7)                                                      //8位数码管刷新
            {
                    LEDPower = 1;                                           //关闭LED
                    SEG_SEG = SEG_D[SEG_Show[num]];   //段码给P6口
                    SEG_COM = SEG_W[num];                        //第一位数码管显示
            }
            else if(num <= 8)                                           //LED刷新
            {
                    SEG_COM = 0xff;                                   //关闭数码管的位来实现关闭数码管,实现消影        
            }
            else if(num <= 9)                                          //LED刷新
            {
                    SEG_COM = 0xff;                                  //关闭数码管
                    LEDPower = 0;                                     //打开LED总电源
                    SEG_SEG = LED_DATA;                      //点亮对应的LED
            }
            else
            {
                    LEDPower = 1;                                   //关闭LED
                    SEG_COM = 0XFF;                            //关闭数码管
                    SEG_SEG = 0XFF;                            //关闭P6口
            }

            num++;                                                    //段码数组值自加
            if(num >= 11)                                         //加到10归0
            num = 0;
    }


    全部程序如下压缩包2:





    15_1 外部中断1.rar

    178.37 KB, 下载次数: 15

    15_1 外部中断2.rar

    177.7 KB, 下载次数: 11

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    38

    主题

    982

    回帖

    6759

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6759
    QQ
    发表于 2023-4-24 16:07:55 | 显示全部楼层
    lclbf 发表于 2023-4-24 15:21
    第十五集:外部中断
      STC32有 INT0,INT1,INT2,INT3,IN4四个外部中断,其中INT0,INT1可以同时支持上升沿和 ...

    最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-24 17:53:06 | 显示全部楼层
    电子DIY小家 发表于 2023-4-24 16:07
    最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了 ...

    我是全部关闭数码管位的,你说的消隐和关闭位有区别吗?

    1.png

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-25 08:03:25 | 显示全部楼层
    本帖最后由 lclbf 于 2023-4-25 08:59 编辑
    电子DIY小家 发表于 2023-4-24 16:07
    最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了 ...

    为啥我把位(数码管LED刷新里面也关闭了的)关闭了,数码管还没有亮呢?为啥只是最后一位数码管会出现这样的情况,
    其他位数码管不会?不可能那个三极管漏电?我测试控制位的三极管是截止了的。多次对比原理图没有看出哪里有毛病。冲
    哥能用我的程序在你的开发箱试试是我程序问题还是开发箱问题?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 89 天

    [LV.6]常住居民II

    38

    主题

    982

    回帖

    6759

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6759
    QQ
    发表于 2023-4-25 10:07:41 | 显示全部楼层
    lclbf 发表于 2023-4-25 08:03
    为啥我把位(数码管LED刷新里面也关闭了的)关闭了,数码管还没有亮呢?为啥只是最后一位数码管会出现这样 ...

    代码是上面那个代码吗?晚上我回去试试
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    7 天前
  • 签到天数: 73 天

    [LV.6]常住居民II

    11

    主题

    148

    回帖

    426

    积分

    中级会员

    积分
    426
     楼主| 发表于 2023-4-25 11:58:37 | 显示全部楼层
    本帖最后由 lclbf 于 2023-4-25 12:02 编辑
    电子DIY小家 发表于 2023-4-25 10:07
    代码是上面那个代码吗?晚上我回去试试

    46楼外部中断2.谢谢

    1.png

    这里关闭数码管,有点多此一举的感觉,在数码管刷新里面已经关闭了,还有这个再打开LED,我昨天晚上还发现,有时候灯会全亮一下,光很弱。
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-4-28 18:49 , Processed in 0.084243 second(s), 66 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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