第四届蓝桥杯单片机类(附代码)

2012 年第四届全国电子专业人才设计与技能大赛(蓝桥杯)

“自动售水机”设计任务书

功能简述
通过竞赛硬件平台模拟小区自动售水机的工作流程:通过按键控制售水机水流出和停止;
通过数码管显示费率、出水量及总费用;通过光敏电阻检测环境亮度,在亮度过低的情况下,
自动开灯。系统硬件电路主要由单片机控制电路、数码管显示电路、A/D 转换电路及功能按 键组成。系统框图如图 1 所示:
在这里插入图片描述

设计任务及要求

  1. 按键控制单元

设定按键 S7 为出水控制按键,当 S7 按下后,售水机持续出水(继电器接通,指示 灯 L10 点亮)。设定按键 S6 为停水控制按键,当 S6 按下后,停止出水(继电器断开, 指示灯 L10 熄灭)。

  1. 数码管显示单元
    通过 4 位数码管 DS1 显示费率,单位为元/升,保留 2 位有效数字;通过 4 位数码管 DS2 显示当前出水总量(出水时,单位为升)和总价(停止时,单 位为元):按下出水按键 S7 后,清除数码管 DS2 显示数据,数码管 DS2 实时显示出水 量(保留两位有效数字),在出水状态下,再次按下 S7,不会影响出水状态,直到按下停 止按键 S6 为止;按下停止出水按键 S6 后,数码管 DS2 显示总价(保留两位有效数字)。
    例:当 S7 按下后,数码管示意图如图 2 所示:
    在这里插入图片描述

售水机出水状态数码管显示 当按键 S6 按下后,数码管示意图如图 3 所示:
在这里插入图片描述

3. AD 转换单元

通过光敏电阻 RD1 和 AD 转换芯片 PCF8591 组成的亮度检测电路(亮度值转换为 PCF8591 光敏电阻通道的电压)检测环境亮度;当 PCF8591 光敏电阻通道输入电压小 于 1.25 V 时,L1 点亮,大于 1.25V 时,L1 熄灭。

4. 系统说明

(1)假定水价为 0.5 元/升,出水速度为 100 毫升/秒;
(2)一次出水总量达到 99.99L 时,继电器自动断开,数码管显示 DS2 显示价格。

废话不多说,直接上代码:

#include <stc15f2k60s2.h>
#include <iic.h>

typedef unsigned int uint;
typedef unsigned char uchar;

#define  s7 P30
#define  s6 P31

uint a=0,num=0,zj=0,flag=0,ad;

uchar danjia[4]={
   0xFF, 0x40, 0x92, 0xc0};
uchar smg[]= {
   0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar smg_bit[8]={
   0};

void Timer0Init(void)		//10毫秒@11.0592MHz
{
   
	AUXR &= 0x7F
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值