第九届蓝桥杯省赛:彩灯控制器

赛题:

1、基本功能描述

  通过单片机控制8个LED指示灯按照特定的顺序(工作模式)亮灭;指示灯的流转间隔可通过按键调整,亮度可由电位器RB2进行控制;各工作模式的流转间隔时间需在E2PROM中保存,并可在硬件重新上电后,自动载入。

2、设计说明

  1)关闭蜂鸣器、继电器等与本试题程序设计无关的外设资源。

  2) 设备上电后默认数码管、LED指示灯均为熄灭状态。

  3)流转间隔可调整范围为400ms-1200ms。

  4)设备固定安照模式1、模式2、模式3、模式4的次序循环往复运行。

3、LED指示灯工作模式

  1) 模式1:按照L1、L2...L8的顺序,从左到右单循环点亮。

  2) 模式2:按照L8、L7...L1的顺序,从右到左单循环点亮。

  3) 模式3:按照L8、L1同时向内点亮至L4、L5的顺序,从外向里单循环点亮     

  4) 模式4:按照L4、L5同时向外点亮至L1、L8的顺序,从里向外单循环点亮

4、亮度等级控制

  检测电位器RB2的输出电压,控制8个LED指示灯的亮度,要求在0V~5V的可调区间内,实现4个均匀分布的LED指示灯亮度等级。

5、按键功能

  1) 按键S7定义为"启动/停止"按键,按下后启动或停止LED的流转。

  2)按键S6定义为"设置"按键,按键按下后数码管进入"流转间隔"设置界面,如下图所示:

     

  通过按键S6可切换选择“运行模式”、“流转间隔”两个显示单元。当前被选择单元以0.8秒为间隔亮灭。

   

  3) 按键S5定义为"加"按键,在设置界面下,按下该键,若当前选择的是运行模式,则运行模式编号加1,若当前选择的是流转间隔,则流转间隔增加100ms。

  4)按键S4定义为"减"按键,在设置界面下,按下该键,若当前选择的是运行模式,则运行模式编号减1,若当前选择的是流转间隔,则流转间隔减少100ms。

  5) 按键S4、S5的"加"、"减"功能只在"设置状态"下有效,数值的调整应注意边界属性。

  6) 在非"设置状态"下,按键S4按键可显示指示灯当前的亮度等级,4个亮度等级从暗到亮,依次用数字1、2、3、4表示;松开按键S4,数码管显示关闭,亮度等级的显示格式如下图所示:

      


 

理解: 

  本届赛题主要在于各个界面的显示切换、各功能之间的协调整合以及定时器的使用。比如:如果不将数码管显示写在定时器里,整个功能的实现就比较麻烦了。

  需要注意题目的各细节:模式循环往复运行,注意边界属性,各按键在何种情况下有效等等。

  实现的功能主要为以下几种:

  1、关闭无关外设,系统初始化
  2、LED具有4种工作模式
  3、由电位器控制LED亮度
  4、流转间隔可更改
  5、数码管显示(按照格式)
  6、数码管0.8s闪烁
  7、按键切换界面、模式
  8、各运行模式的流转间隔记录


 

程序

原程序写了太多中文注释,复制后注释会变为大量乱码。因此,下方代码为主要代码的图片形式。

本文工程文件需从以下链接自取:

  链接:https://pan.baidu.com/s/1Apj2HBhnjuKEdRSdiC4qBw?pwd=wdbr
  提取码:wdbr

 希望本篇文章能对你有所帮助。

 

 

posted @ 2022-02-24 15:24  ailaopo_zhai  阅读(530)  评论(1编辑  收藏  举报