lclbf
发表于 2023-4-23 14:58:43
本帖最后由 lclbf 于 2023-4-23 15:00 编辑
本楼补充静态数码管作业:
//****************按键2控制数码管数字减变化,按键1按下数码管显示的几蜂鸣器响几声****************
P6 = SEG_D; //把段码对应数组给P6口
P7 = SEG_W; //第一位数码管显示
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松手检测,按键按下动作
}
}
程序如下压缩包:
zzcy
发表于 2023-4-23 15:39:04
大佬,能不能讲解一下关于stc32与LabVIEW的通信程序,主要是传输重量数据显示,用的是USB转TTL连接是ch340g芯片
lclbf
发表于 2023-4-23 17:34:56
zzcy 发表于 2023-4-23 15:39
大佬,能不能讲解一下关于stc32与LabVIEW的通信程序,主要是传输重量数据显示,用的是USB转TTL连接是ch340g ...
我也是初学者,看冲哥视频学习的,冲哥视频开了个专贴,你可以去去哪里问问,单独发贴也可以。
lclbf
发表于 2023-4-24 10:52:51
本帖最后由 lclbf 于 2023-4-24 11:09 编辑
第十四集:矩阵按键
用了P0口来实现矩阵按键。电路如下图:
矩阵按键可以用少单片机的端口是现多个按键控制。控制原理,利用扫描法:先给列加低电平,
给行加高电平,来读取行,如果那个端口是低电平,对应的行有按键按下;再给行加低电平,给
列加高电平,来读取列,如果那个端口是低电平,对应的列就有按键按下;最后把行和列用或(|),
就可以判断那个按键有按下。
实验程序如下压缩包:
lclbf
发表于 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实验箱的朋友下载我的程序,帮我测试一下。
第一个问题相关程序如下,我是把数码管关闭了的。
第二个问题相关程序如下:
上面出现的问题,LED流水灯的时候最后一位数码管的断码也随着变化,在冲哥的指导下终于搞定,就是在数码管刷新
和LED刷新中间再加一个else if来关闭数码管,程序如下:
void SEG_LED_Fre()
{
static num = 0;
if(num <= 7) //8位数码管刷新
{
LEDPower = 1; //关闭LED
SEG_SEG = SEG_D]; //段码给P6口
SEG_COM = SEG_W; //第一位数码管显示
}
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:
电子DIY小家
发表于 2023-4-24 16:07:55
lclbf 发表于 2023-4-24 15:21
第十五集:外部中断
STC32有 INT0,INT1,INT2,INT3,IN4四个外部中断,其中INT0,INT1可以同时支持上升沿和 ...
最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了
lclbf
发表于 2023-4-24 17:53:06
电子DIY小家 发表于 2023-4-24 16:07
最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了 ...
我是全部关闭数码管位的,你说的消隐和关闭位有区别吗?
lclbf
发表于 2023-4-25 08:03:25
本帖最后由 lclbf 于 2023-4-25 08:59 编辑
电子DIY小家 发表于 2023-4-24 16:07
最后一位数码管有很暗的段码和流水灯一起变化的话。加一位数码管的消隐就好了 ...
为啥我把位(数码管LED刷新里面也关闭了的)关闭了,数码管还没有亮呢?为啥只是最后一位数码管会出现这样的情况,
其他位数码管不会?不可能那个三极管漏电?我测试控制位的三极管是截止了的。多次对比原理图没有看出哪里有毛病。冲
哥能用我的程序在你的开发箱试试是我程序问题还是开发箱问题?
电子DIY小家
发表于 2023-4-25 10:07:41
lclbf 发表于 2023-4-25 08:03
为啥我把位(数码管LED刷新里面也关闭了的)关闭了,数码管还没有亮呢?为啥只是最后一位数码管会出现这样 ...
代码是上面那个代码吗?晚上我回去试试
lclbf
发表于 2023-4-25 11:58:37
本帖最后由 lclbf 于 2023-4-25 12:02 编辑
电子DIY小家 发表于 2023-4-25 10:07
代码是上面那个代码吗?晚上我回去试试
46楼外部中断2.谢谢
这里关闭数码管,有点多此一举的感觉,在数码管刷新里面已经关闭了,还有这个再打开LED,我昨天晚上还发现,有时候灯会全亮一下,光很弱。