我目前只会51学习板上各个独立的模块,像这个按不同的键,数码管显示不同的数据该怎么实现呢?
2016年11月底江苏理工学院“STC选拔赛”——试题2.doc
(59 KB, 下载次数: 18)
暨蓝桥杯(单片机组)校内选拔赛试题二
“简易电度表” 设计任务书 功能简述 通过竞赛硬件平台模拟简易电度表的工作流程:通过按键切换电度表的不同功能,通过数码管显示当前的时分秒、费率、用电量及总费用;通过光敏电阻检测环境亮度,在亮度过低的情况下,自动电度表照明灯。系统硬件电路主要由单片机控制电路、数码管显示电路、A/D 转换电路及功能按键组成。系统框图如图1 所示: 图1 系统框图 I2C 总线驱动程序、考试平台电路原理图以及本题所涉及到的芯片数据手册,可参考计算机上的电子文档(文件夹位于E盘)。程序及相关工程文件请以考生号命名,并保存在计算机上的考生文件夹中(文件夹名为考生准考证号,文件夹位于Windows 桌面上)。 设计任务及要求 1. 按键控制单元 设定按键S1 为启动控制按键,当S1 按下后,电度表开始计算用电量(指示灯L1 点亮)。设定按键S2 为时分秒控制按键,当S2 按下后,电度表显示当前的时分秒。设定按键S3为电费计算按键,当S3按下后,电度表计算总费用。 2. 数码管显示单元 通过4 位数码管DS1 显示费率(单位为元/度,保留2位有效数字)和当前小时(单位为小时); 通过4 位数码管DS2 显示当前分钟、秒和总价(停止时,单位为元):按下启动按键S1后,清除数码管DS1和DS2 显示数据,数码管DS1显示费率(0.52元/度),数码管DS2 实时显示用电量(单位为度,保留2位有效数字),在启动状态下,再次按下S1,不会影响启动状态;按下时分秒按键S2后,数码管DS1实时显示当前小时,数码管DS2实时显示当前分钟和秒;按下下车结算按键S3后,数码管DS1显示总用电量,数码管DS2 显示总价(保留2位有效数字)。 例:当启动按键S1 按下后,数码管示意图如图2 所示: 图2 电度表启动状态数码管显示 当时钟按键S2 按下后,数码管示意图如图3 所示: 图3电度表时钟状态数码管显示 当电费结算按键S3按下后,数码管示意图如图4所示: 图4 电度表电费结算数码管显示 3. AD 转换单元 通过光敏电阻RD1 和AD 转换芯片组成的电表照明控制电路(亮度值转换为光敏电阻通道的电压);当光敏电阻通道输入电压小于1.25 V 时,L2点亮,大于1.25V 时,L2 熄灭。 4. 系统说明 假定费率为0.52元/度,速度为0.1度/秒;
一、按键控制功能实现 1.S1启动功能实现(5分) 2.S2时钟功能实现(5分) 3.S3电费结算功能实现(5分)
二、数码管显示功能实现 1.启动状态数码管显示实现(15分) 2.时钟状态数码管显示实现(15分) 3.电费结算状态数码管显示实现(15分)
三、电费速度功能实现 1.电费速度为0.1度/秒(15分)
四、AD采集及LED 控制功能实现 1.AD采集功能实现(20) 2.LED根据光照实现通断功能(5)
|