【灯光控制任务书】大功告成
本帖最后由 caijie001 于 2018-3-16 06:52 编辑在蓝桥杯单片机平台CT107D上已经测试通过,功能都符合要求。现在发布出来
功能是实现了,不过里面的逻辑和代码并不是最好的,希望大家多多指教!这是更新之后的代码
这是视频的链接 v.youku.com/v_show/id_XMzQ1NzU5NjE1Ng==.html?spm=a2h3j.8428770.3416059.1
建议把过程写的详细点。。。。。。上个视频效果更佳。。。 caijie001 发表于 2018-3-10 18:58
建议把过程写的详细点。。。。。。上个视频效果更佳。。。
好的,谢谢杰杰 本帖最后由 蔡名进 于 2018-3-12 12:44 编辑
今天打开看了下,发现了几个可以改进的地方。第一个:并没有注意到题目要求的系统一上电显示时间,因此修改了这一个问题。
第二:修改了在LED检测时,没有显示时间的问题(修改方法,改变了延时函数的延时方法)
第三:在按键按下时,因为要进行松键检测,显示时间停止的问题。(在松键检测的同时进行系统时间显示)这是更改之后的工程。在keil V4.729环境下编写编译。
视频稍后奉上,各位关于本工程有任何问题,都可以提出来,我们一起学习进步。
本帖最后由 caijie001 于 2018-3-16 06:51 编辑
这是视频的链接 v.youku.com/v_show/id_XMzQ1NzU5NjE1Ng==.html?spm=a2h3j.8428770.3416059.1 嗯...不错,看了视频,perfect!!!
数码管检测很有创意...如果有最佳创意奖,估计得给你了。 ohy3686 发表于 2018-3-12 16:46
嗯...不错,看了视频,perfect!!!
数码管检测很有创意...如果有最佳创意奖,估计得给你了。 ...
谢谢{:lol:} 显示很有创意,点个赞。 同学,如果这样玩数码管的话,学到超声波你会哭的 来点综合的比较好 小明工作室 发表于 2018-3-27 07:39
同学,如果这样玩数码管的话,学到超声波你会哭的
超声波用定时器计时不就好了?其实数码管这么搞,是理解错题目了,题目说“从左到右依次点亮数码管的所有段码,再依次从左到右熄灭”,我的理解中,数码管一位,八个段码。所以才这样搞,不过采取了一定的算法,实现起来并不是很难
void SMG_Init()
{
unsigned char i=0,j=0,temp=0xff;
while(1)
{
Display_Duan(j,temp);//段码亮灭控制
Display_other(j,1);//其余几位数码管显示控制
if(SMG_bit==1) //SMG_bit:定时器标志位
{
SMG_bit=0;
temp=temp<<1;
i++;
if(i==8)
{
temp=0xff;
i=0;
j++;
if(j==8)break;
}
}
}
j=0;i=8;temp=0x00;
while(1)
{
Display_Duan(j,temp);
Display_other(j+1,0);
if(SMG_bit==1)
{
temp=temp*2+1;
SMG_bit=0;
i--;
if(i==0)
{
temp=0x00;
i=7;
j++;
if(j==8)break;
}
}
}
Display_Duan(j,temp);
SMG_off();
}
1-按下S6和S7会控制L5和L6,这个题目没有要求。
2-本地控制和远程控制不兼容,例如:
L8点亮的情况下,串口发送a1命令,点亮L1的同时,把L8也关掉了
L1点亮的情况下,按下S5,点亮的是L8,而不是L7,同时L1也被关掉了
....控制逻辑有点混乱,
这个在实际应用中是不允许的,如果控制的不是LED而是大型设备,可能就会出事故了。
页:
[1]