蓝桥杯2024/1/28----十二届省赛题笔记

题目要求:

2、 竞赛板配置要求

2.1将 IAP15F2K61S2 单片机内部振荡器频率设定为 12MHz。
2.2键盘工作模式跳线 J5 配置为 KBD 键盘模式。
2.3扩展方式跳线 J13 配置为 IO 模式。
2.4 请注意 选手需严格按照以上要求配置竞赛板,编写和调试程序 不符合以上
配置要求的作品将被评为零分或者被酌情扣分。

3、 硬件框图

4、 功能描述

4.1功能概述

1) 通过获取 DS18B20 温度传感器的温度数据,完成温度测量功能。
2) 通过 PCF8591 AD/DA 芯片完成 DAC 输出功能。
3) 通过数码管完成题目要求的数据显示功能。
4) 通过按键完成题目要求的显示界面切换和设置功能。
5) 通过 LED 指示灯完成题目要求的指示功能。

4.2性能要求

1) 温度数据刷新时间:≤1 秒。
2) DAC 输出电压刷新时间:≤0.5 秒。
3) 按键动作响应时间:≤0.2 秒。

4.3显示功能

4.4按键功能

1) 功能说明
S4 :定义为“界面”按键,按下 S4 按键,切换温度显示界面、参数
设置界面和 DAC 输出界面,按键 S4 切换模式如图 5 所示:
S8 :定义为“减”按键
在参数界面下按下 S8 按键,温度参数减 1。
S9 :定义为“加”按键
在参数界面下按下 S9 按键,温度参数加 1。
S5 :定义为“模式”切换按键。
模式 1: DAC 输出电压与温度相关。
通过 DS18B20 采集到的实时温度小于温度参数时,
DAC 输出 0V,否则,
DAC 输出 5V。
模式 2: DAC 按照图 7 给出的关系输出电压。
2) 其它要求
按键应做好消抖处理,避免出现一次按键动作导致功能多次触发等问
题。 按键动作不影响数码管显示和数据采集过程。
S8、S9 按键仅在参数设置界面有效。
设定的温度参数在退出参数设置界面时生效。

4.5LED 指示灯功能

1) 当前处于模式 1 状态,指示灯 L1 点亮,否则熄灭。
2) 当前处于温度显示界面,指示灯 L2 点亮,否则熄灭。
3) 当前处于参数设置界面,指示灯 L3 点亮,否则熄灭。
4) 当前处于 DAC 输出界面,指示灯 L4 点亮,否则熄灭。

4.6初始状态说明

请严格按照以下要求设计作品的上电初始状态。
1) 处于温度显示界面。
2) 处于模式 1。
3) 温度参数为 25℃

每次建好工程文件夹,里边包含User(放工程文件,mian.c,可以在这里写如同我这个文章的文本文档)、Driver(存放底层文件如Led.c,Led.h等)
新建的工程先搭建框架,可以先书写底层函数(此次书写了六个函数并包含相应的头文件共十二个底层文件)


底层函数内容:

1.初始化底层驱动专用文件

比如先用3个IO口控制74HC138译码器,控制Y4为低电平;当Y4为低电平时,或非门74HC02控制Y4C为高电平,使74HC573的OE端口有效,OE端口有效时,可使用P0口控制LED的亮灭。
可以去多了解74HC138译码器,74HC02或非门,74HC573八路输出透明锁存器的相关内容会更好理解
#include <Init.h>

//关闭外设
void System_Init()
{
    P0 = 0xff;
    P2 = P2 & 0x1f | 0x80;
    P2 &= 0x1f;
    P0 = 0x00;
    P2 = P2 & 0x1f | 0xa0;
    P2 &= 0x1f;
}
//头文件
#include <STC15F2K60S2.H>
void System_Init();

2.Led底层驱动专用文件

与初始化底层驱动专用文件同理,需要了解对应的锁存器控制,可以在使用的芯片数据手册查看
#include <Led.h>

void Led_Disp(unsigned char addr,enable)//LED
{
    static unsigned char temp = 0x00;
    static unsigned char temp_Old = 0xff;
    if(enable)
        temp |=0x01 << addr;
    else
        temp&= ~ (0x01 << addr);
    if(temp != temp_Old)
    {
        P0 = ~ temp;
        P2 = P2 & 0x1f | 0x80;
        P2 &= 0x1f;
        temp_Old = temp;
    }
}
void Beep(unsigned char flag)//蜂鸣器
{
    static un

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值