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

冲哥视频学习笔记

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

积分
816
发表于 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, 下载次数: 102

回复 支持 反对

使用道具 举报 送花

0

主题

4

回帖

28

积分

新手上路

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

积分
816
发表于 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, 下载次数: 112

14_1 矩阵按键2.rar

162.09 KB, 下载次数: 108

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

积分
816
发表于 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, 下载次数: 117

15_1 外部中断2.rar

177.7 KB, 下载次数: 111

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

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

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

1.png

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

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

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

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:135
  • 最近打卡:2024-12-25 10:15:05

47

主题

1350

回帖

8058

积分

荣誉版主

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

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

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

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-30 07:42:48

19

主题

205

回帖

816

积分

高级会员

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

46楼外部中断2.谢谢

1.png

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

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 03:11 , Processed in 0.923728 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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