国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題

這篇具有很好參考價值的文章主要介紹了藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

上期我們學(xué)習(xí)了NE555方波發(fā)生器&頻率測量,講到我會更新之后省賽的題目,那么,他來了。
首先聲明:我還沒有參加藍(lán)橋杯單片機(jī)比賽,也沒有拿過獎,所以我寫的代碼注定不會那么完美,存在BUG是必然的,我寫這個系列的目的純粹是為了記錄我的學(xué)習(xí)…………

任務(wù)要求

1.基本要求

藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件

2.競賽板配置要求

藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件

3.硬件框圖

藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件

4.功能描述

關(guān)于功能描述,我只想說是真的多,第一次寫,花了我快一天的時間,但好在功能大部分已經(jīng)實現(xiàn)完全了,不說了,看吧…………
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件

藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
看到這里,說明你是一個有耐心的人,那么作為一個有耐心的人,我覺得你一定能繼續(xù)看下去的,下面,未來講一下我的代碼實現(xiàn)思路。

實現(xiàn)思路

首先我們拿到題目,必須要大概的看一遍,明確用到了那些模塊,一些大概的要求什么的,重點要完成哪些部分。
【1】編寫一些基本的函數(shù)內(nèi)容,完成相關(guān)外設(shè)的初始化。
【2】完成數(shù)碼管顯示相關(guān)變量的各個頁面,
【3】定義變量,實現(xiàn)數(shù)碼管顯示頁面和顯示內(nèi)容的改變
【4】 按照任務(wù)要求在此基礎(chǔ)上不斷的修正代碼結(jié)構(gòu)框架
【5】檢驗代碼的可行性,不斷的DeBug…………

具體代碼框架如下:
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件
可能光看這個圖會顯得有些抽象,不知道在寫什么,所以我們來嘗試加上代碼一起理解。

代碼實現(xiàn)

1.main.C

#include <STC15F2K60S2.H>
#include "LS138.h"
#include "Key.h"
#include "ds1302.h"
#include "onewire.h"

unsigned int Mode = 1;
struct Environment
{
    
    unsigned int Tempreature;		//定義溫度變量
    unsigned int Tempreature_Set;	//定義溫度設(shè)置值
    unsigned int Key_Vlaue;			//定義按鍵值
    unsigned int Time_Show_Mode;	//定義時間顯示模式
    unsigned int Control_Mode;		//定義溫度/時間控制模式
    unsigned char Relay_Flag;		//定義繼電器狀態(tài)
    unsigned int LED0_Flag ;		//定義LED0/L1狀態(tài)
    unsigned int LED2_Flag ;		//定義LED1/L2狀態(tài)
    unsigned long int Tick;			//定義時間值/tick為一天過了多少秒
    
}E1;

void Timer_Init(void)
{
     ET1 = 1;
    TMOD = 0x00;
    TH1 = 0xFC;
    TL1 = 0x18;
    EA = 1;
    TR1 = 1;
}
void Environment_Init(void)
{
    
    E1.Tempreature = 235;
    E1.Tempreature_Set = 230;
    E1.Key_Vlaue = 0;
    E1.Relay_Flag = 0;
    E1.Tick = 3595;
    E1.Time_Show_Mode = 1;
    E1.Control_Mode = 1;
    E1.LED0_Flag = 0;
    E1.LED2_Flag = 0;
    
}
void Init(void)
{
    Environment_Init();
    LS_Init();
    DS1302_Write_Time(E1.Tick);
    Timer_Init();
}
void SEG_Task(void)
{
    switch(Mode)
    {
        case 1: SEG_Page1(E1.Tempreature);
            break;
        case 2: SEG_Page2(E1.Time_Show_Mode,E1.Tick);
            break;
        case 3: SEG_Page3(E1.Tempreature_Set);
        break;
    }
    
}

void Key_Task(void)
{
    E1.Key_Vlaue = KeyScan();
    if(E1.Key_Vlaue == 12)
    {
        Mode++;
        if(Mode >3)
        {
            Mode = 1;
        }
    }
    if(E1.Key_Vlaue == 13)
    {
        E1.Control_Mode ++;
        if(E1.Control_Mode >=3)
        {
            E1.Control_Mode = 1;
        }
    }
    if(E1.Control_Mode == 1)
    {
        if(E1.Tempreature > E1.Tempreature_Set)
        {
            Relay_Control(1);
            E1.LED2_Flag = 1;
        }
        else
        {
            Relay_Control(0);
            E1.LED2_Flag = 0;
        }
    }
    if(E1.Control_Mode == 2)
    {
        if(E1.Tick % 3600 == 0 )
        {
            E1.Relay_Flag = 1;
            E1.LED2_Flag = 1;
        }
        
        if(E1.LED0_Flag == 1)
        {
            LED_Write(0xFE);
        }
        else
        {
            LED_Write(0xFF);
        }
    }
    if(E1.Tick % 3600 == 0 )
    {
        E1.LED0_Flag = 1;
    }
    if(E1.LED0_Flag == 1)
    {
        LED_Write(0xFE);
    }
    if(E1.LED0_Flag == 0)
    {
        LED_Write(0xFF);
    }
    if(Mode == 3)
    {
        if(E1.Key_Vlaue == 16)
        {
            E1.Tempreature_Set = E1.Tempreature_Set + 10;
            if(E1.Tempreature_Set > 999)
            {
                E1.Tempreature_Set = 999;
            }
        }
        if(E1.Key_Vlaue == 17)
        {
            E1.Tempreature_Set = E1.Tempreature_Set - 10;
            if(E1.Tempreature_Set < 100)
            {
                E1.Tempreature_Set = 100;
            }
        }
    }
    if(Mode == 2)
    {
        if(E1.Key_Vlaue == 17)
        {
            E1.Time_Show_Mode++;
        }
    }
    
    
}
void main()
{
    
    
    Init();
    while(1)
    {
        E1.Tempreature = DS_Read_Tempreatur();
        E1.Tick = DS1302_Read_Time(); 
        SEG_Task();
        Key_Task();
    }
}

void Timer0_Handler() interrupt 3
{
    static unsigned int Timer1_Count = 0;
    static unsigned int Relay_Count = 0;
    static unsigned int LED0_Count = 0;
    static unsigned int LED2_Count = 0;
    Timer1_Count++;
    
    if(E1.Control_Mode == 1)
    {
        if(E1.LED0_Flag == 1)
        {
            LED_Write(0xFC);
        }
        else
        {
            LED_Write(0xFD);
        }
        
    }
    if(Timer1_Count % 100 == 0)
    {
        if(E1.LED2_Flag == 1)
        {
            LED2_Count++;
            
            if(LED2_Count%2)
            {
                LED_Write(0xFB);
            }
            else
            {
                LED_Write(0xFF);
            }
        }
        
        
    }
    
    if(Timer1_Count >= 1000)
    {
        Timer1_Count = 0;
        
        if(E1.Relay_Flag == 1)
        {
            Relay_Count++;
            if(Relay_Count < 5)
            {
                Relay_Control(1);
            }
            else
            {
                Relay_Count = 0;
                E1.Relay_Flag = 0;
                E1.LED2_Flag = 0;
                Relay_Control(0);
            }
             
        }
        if(E1.LED0_Flag == 1)
        {
            LED0_Count++;
            
            if(LED0_Count >= 6)
            {
                LED0_Count = 0;
                E1.LED0_Flag = 0;
            }
        }
    }
}

LS138.h

#ifndef _LS138_H_
#define _LS138_H_

#include <STC15F2K60S2.H>


sbit LS_A = P2^5;
sbit LS_B = P2^6;
sbit LS_C = P2^7;




void LS_Init(void);

void LS138_Set(unsigned int dat);

void LS138_Clear(void);

void DelayXms(unsigned int x);

void LED_Control(unsigned int Flag);

void LED_Write(unsigned char dat);

void BEEP_Control(unsigned int Flag);

void Relay_Control(unsigned int Flag);

void SEG_Write(unsigned char pos, unsigned char dat);

void SEG_Page1(unsigned int tempreature);

void SEG_Page2(unsigned int Flag,unsigned long int Tick);

void SEG_Page3(unsigned int tempreature);

#endif

LS138.C

#include "LS138.h"
                             //        0    1     2    3   4    5    6    7    8    9
unsigned char code SEG_Index[25] =  {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
                                    /* 0.  1.    2.          …………                  9.*/
                                    0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,
                                   /*  U    -  */
                                    0xc1,0xbf};

void LS_Init(void)
{
    
    BEEP_Control(0);
    Relay_Control(0);
    LED_Control(0);
    LED_Write(0xFF);
}
void LS138_Set(unsigned int dat)
{
    switch(dat)
    {
        case 0:     LS_A = 0; LS_B = 0; LS_C = 0;
            break;
        case 1:
            break;
        case 2:
            break;
        case 3: 
            break;
        case 4:     LS_A = 0; LS_B = 0; LS_C = 1;
            break;
        case 5:     LS_A = 1; LS_B = 0; LS_C = 1;
            break;
        case 6:     LS_A = 0; LS_B = 1; LS_C = 1;
            break;
        case 7:     LS_A = 1; LS_B = 1; LS_C = 1;
            break;
    }
}

void LS138_Clear(void)
{
    LS_A = 0; LS_B = 0; LS_C = 0;
}

void DelayXms(unsigned int x)		//@12.000MHz
{
	unsigned char i, j,k;
    for(k=0;k<x;k++)
    {
        i = 12;
        j = 169;
        do
        {
            while (--j);
        } while (--i);
        
    }
	
}

void LED_Control(unsigned int Flag)
{
    if(Flag == 1)
    {
        LS138_Clear();
        
        LS138_Set(4);
        P0 = 0x00;
        LS138_Clear();
    }
    else
    {
        LS138_Clear();
        LS138_Set(4);
         P0 = 0xFF;
        LS138_Clear();
    }
}

void LED_Write(unsigned char dat)
{
    LS138_Clear();
    
    LS138_Set(4);
    P0 = dat;
    LS138_Clear();
        
}

void BEEP_Control(unsigned int Flag)
{
    if(Flag == 1)
    {
        LS138_Clear();
        
        LS138_Set(5);
        P0 = 0x40;
        LS138_Clear();
    }
    else
    {
        LS138_Clear();
       
        LS138_Set(5);
         P0 = 0x00;
        LS138_Clear();
    }
}

void Relay_Control(unsigned int Flag)
{
    if(Flag == 1)
    {
        LS138_Clear();
        
        LS138_Set(5);
        P0 = 0x10;
        LS138_Clear();
    }
    else
    {
        LS138_Clear();
        
        LS138_Set(5);
        P0 = 0x00;
        LS138_Clear();
    }
}


void SEG_Write(unsigned char pos, unsigned char dat)
{
    LS138_Set(7);
    P0 = SEG_Index[dat];
    LS138_Clear();
    LS138_Set(6);
    P0 = 0x01 << pos;
    LS138_Clear();
    LED_Control(0);
    DelayXms(1);

}

void SEG_Page1(unsigned int tempreature)
{
    SEG_Write(0,20);
    SEG_Write(1,1);
    SEG_Write(5,tempreature/100%10);
    SEG_Write(6,tempreature/10%10 + 10);
    SEG_Write(7,tempreature %10);
}

void SEG_Page2(unsigned int Flag,unsigned long int Tick)
{
    SEG_Write(0,20);
    SEG_Write(1,2);
    SEG_Write(5,21);
    if(Flag % 2)
    {
        
        SEG_Write(3,Tick/3600/10%10);
        SEG_Write(4,Tick/3600%10);
        
        SEG_Write(6,Tick/3600/60/10%10);
        SEG_Write(7,Tick/3600/60%10);
    }
    else
    {
        SEG_Write(3,Tick/3600/60/10%10);
        SEG_Write(4,Tick/3600/60%10);
        
        SEG_Write(6,Tick%60/10%10);
        SEG_Write(7,Tick%60%10);
    }
    
}

void SEG_Page3(unsigned int tempreature)
{
    SEG_Write(0,20);
    SEG_Write(1,3);
    SEG_Write(6,tempreature/100%10);
    SEG_Write(7,tempreature/10%10);
}

Key.C

#include "Key.h"

unsigned int KeyScan(void)
{
    	static unsigned char    cnt = 0,	//continue value
	                last_trg = 0;	        //last trigger value
	unsigned char   trg = 0,	        //trigger value
            cur = 0,                //current value
            value = 3,             //必須初始化為3
            key_x = 0,
            key_y = 0;

    P3 = 0x0f;
    P4 = 0x00;
    if(!P30)        key_x = 3;          //獲取X軸坐標(biāo)
    else if(!P31)   key_x = 2;
    else if(!P32)   key_x = 1;
    else if(!P33)   key_x = 0;

    P3 = 0xf0;
    P4 = 0xff;
    if(!P34)        key_y = 4;          //獲取Y軸坐標(biāo)
    else if(!P35)   key_y = 3;
    else if(!P42)   key_y = 2;
    else if(!P44)   key_y = 1;

    cur = key_y^0;
    trg = cur^cnt & cur;
    cnt = cur;
    if((last_trg ^ trg & last_trg) && cur)
    {
        //計算矩陣按鍵的鍵值
        value = key_x + key_y * 4;
    }
    last_trg = trg;

    return value;    //返回獨立按鍵的鍵值
    
}
Key.h這里就不寫了,里面也沒啥,就是一個KeyScan函數(shù)的聲明

溫度讀取函數(shù)

unsigned int  DS_Read_Tempreatur(void)
{
    unsigned int dat  =0;
    unsigned char HSB,LSB;
    init_ds18b20();
    Write_DS18B20(0xCC);
    Write_DS18B20(0x44);
    
    init_ds18b20();
    Write_DS18B20(0xCC);
    Write_DS18B20(0xBE);
    LSB = Read_DS18B20();
    HSB = Read_DS18B20();
    
    init_ds18b20();
    dat = (HSB << 8) | LSB ;
    if((dat & 0xF800) == 0x0000) 
    {
        dat = (dat >> 4) * 10 ;
        dat  =dat + (LSB & 0x0F) * 0.625 ;
        return dat ;
    }
    return dat ;
}

DS1302時間寫入函數(shù)

void DS1302_Write_Time(unsigned long int Tick)
{
    unsigned char sec,min,hour;
    sec = Tick % 60;
    sec = (sec/10 * 16) +( sec %10);
    min = Tick / 60;
    min = (min/10 * 16) +( min %10);
    
    hour = Tick / 3600;
    hour = (hour/10* 16) +( hour %10);
    Write_Ds1302_Byte(0x8E,0x00);
    Write_Ds1302_Byte(0x80,sec);
    Write_Ds1302_Byte(0x82,min);
    Write_Ds1302_Byte(0x84,hour);
    Write_Ds1302_Byte(0x8E,0xFF);
    
}

DS1302時間讀取函數(shù)

unsigned long int DS1302_Read_Time(void)
{
    unsigned long int tick = 0;
    unsigned char sec,min,hour;
    sec = Read_Ds1302_Byte(0x81);
    min = Read_Ds1302_Byte(0x83);
    hour = Read_Ds1302_Byte(0x85);
    sec =(sec /16 * 10) +  sec %16;
    min =(min /16 * 10) +  min %16;
    hour =(hour /16 * 10) +  hour %16;
    tick = hour * 3600 + min * 60 + sec;
    return tick;
}
關(guān)于DS1302和DS18B20的底層驅(qū)動函數(shù),我就不貼出來了,官方會提供的,我前面幾期的博客里面也有,需要的可以自己去看看。

總結(jié)

  1. 這一次的省賽題總體來說還算是比較正常的,我也完成了七七八八,但沒有完全完成,畢竟我只是個菜鳥,能不能拿獎還是未知呢…………
  2. 通過這次的實踐,我也發(fā)現(xiàn)了許多的問題,我發(fā)現(xiàn)我寫的代碼存在可優(yōu)化的地方,許多模塊一起使用的話,會存在互相干擾的問題,針對這些問題,我也在想辦法,希望在比賽前解決掉這些問題吧。
  3. 不出意外的話,下一期會更新12屆省賽題目的代碼。

存在的問題

  1. 調(diào)用數(shù)碼管顯示函數(shù)的時候,LED不受控制,時不時的亂跳,關(guān)于這個BUG,我想了好久,但是還是沒法解決,所以我只能通過程序控制,把影響盡可能地減小,希望哪位大神來解答一下我的疑惑。
  2. 關(guān)于矩陣按鍵的掃描函數(shù),我用的是我們老師提供的代碼,因為我發(fā)現(xiàn)我之前寫的代碼存在使用過程中會影響其他外設(shè)正常工作,容易誤觸發(fā)等問題,而且我們老師提供的代碼出奇的好用(我們老師就是厲害)。但是我還是沒看懂原理,同樣希望哪位大佬可以幫我解釋一些。

你都看到這里了,說明你是一個很有耐心的人,那么這個有耐心的陌生人,能支持我一下嗎?
藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題,藍(lán)橋杯單片機(jī)學(xué)習(xí),單片機(jī),藍(lán)橋杯,學(xué)習(xí),c語言,嵌入式硬件文章來源地址http://www.zghlxwxcb.cn/news/detail-736064.html

到了這里,關(guān)于藍(lán)橋杯單片機(jī)學(xué)習(xí)14——第十三屆省賽題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【藍(lán)橋杯-單片機(jī)學(xué)習(xí)筆記(十三)】DS18B20溫度傳感器

    【藍(lán)橋杯-單片機(jī)學(xué)習(xí)筆記(十三)】DS18B20溫度傳感器

    一、溫度傳感器-DS18B20介紹 DS18B20是單總線數(shù)字化溫度傳感器,測量溫度范圍是-55℃~+125℃,在-10℃~+85℃范圍內(nèi),精度為±0.5℃。支持3V~5.5V的供電電壓范圍。DS18B20可以程序設(shè)定9~12位的分辨率,精度為±0.5℃。 1.DS18B20內(nèi)部結(jié)構(gòu) DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度

    2023年04月09日
    瀏覽(28)
  • 藍(lán)橋杯單片機(jī) 第十二屆 國賽

    藍(lán)橋杯單片機(jī) 第十二屆 國賽

    藍(lán)橋杯第十二屆,模塊都比較常規(guī),感覺都和省賽差不多,主要是麻煩在數(shù)據(jù)處理上,而我們處理的數(shù)據(jù)又要在界面中顯示出來。 對比之前的第十屆,其實題目差不多,并且少了串口收發(fā)這一比較難的模塊。但是多了max,min,avg三個超聲波數(shù)據(jù)的處理。所以按道理時間方面應(yīng)該

    2023年04月08日
    瀏覽(90)
  • 【第十四屆藍(lán)橋杯單片機(jī)沖刺版】

    【第十四屆藍(lán)橋杯單片機(jī)沖刺版】

    明天就是正式比賽啦,今天可以在把各個模塊練習(xí)一遍,??嫉耐庠O(shè)相關(guān)代碼一定要熟練哦。 比賽時拿到資料包了,檢查驅(qū)動文件,使用到的驅(qū)動文件,自己做相應(yīng)的修改,確保是能夠正常使用(驅(qū)動修改相關(guān)可看之前的文章)。 下面是自己將常考的外設(shè)結(jié)合一起的練習(xí),

    2023年04月27日
    瀏覽(90)
  • 第十二屆藍(lán)橋杯單片機(jī)省賽

    直接復(fù)制粘貼然后運行 然后打開stc燒錄到開發(fā)板上面就能用 程序哪里不懂的話問我,我閑的蛋疼! #include STC15F2K60S2.H #include intrins.h unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0xff,0xc6,0x8c,0x88}; unsigned char yi,er,san,si,wu,liu,qi,ba; l

    2023年04月09日
    瀏覽(106)
  • 第十三屆藍(lán)橋杯經(jīng)驗分享

    第十三屆藍(lán)橋杯經(jīng)驗分享

    當(dāng)時報名參加藍(lán)橋杯,是為了以后工作能有個證吧,但苦于大三 沒有時間準(zhǔn)備 ,就這樣輕裝上陣, 一點兒沒復(fù)習(xí) , 真題也沒做,練習(xí)也沒整 , 一篇經(jīng)驗貼也沒仔細(xì)看 ,結(jié)果還拿了個省三,不知道是不是參與獎哈哈。但作為過來人,還是有點經(jīng)驗的,特來分享 ヽ(??▽?

    2024年02月15日
    瀏覽(99)
  • 【藍(lán)橋杯單片機(jī)】第十二屆省賽(含題目和解答代碼)

    【藍(lán)橋杯單片機(jī)】第十二屆省賽(含題目和解答代碼)

    main.c? iic.c iic.h onewire.c onewire.h ? ? ?

    2024年02月04日
    瀏覽(163)
  • 藍(lán)橋杯單片機(jī)第十四屆省賽題目和程序答案

    藍(lán)橋杯單片機(jī)第十四屆省賽題目和程序答案

    目錄 ?1、前言 ?2、題目 3、程序架構(gòu)? ? ?3.1 display.c ? ?3.2 ds1302.c ? ?3.3 iic.c ? ?3.4 onewire.c ? ?3.5 main.c 主函數(shù)文件 ? ?3.6 環(huán)境配置 4. 歷年藍(lán)橋杯單片機(jī)試題和答案 ? ? ? ?抽空復(fù)習(xí)了一下,拿下單片機(jī)省賽一等獎,在此分享一下最新的14屆省賽程序設(shè)計答案 ? ? ? ? ?模

    2024年02月06日
    瀏覽(818)
  • 第十四屆藍(lán)橋杯單片機(jī)第二場模擬賽程序

    第十四屆藍(lán)橋杯單片機(jī)第二場模擬賽程序

    第十四屆藍(lán)橋杯單片機(jī)第二場模擬賽程序(少量bug) 題目來源于4T評測網(wǎng) www.4t.wiki 使用大賽組委會提供的國信長天單片機(jī)競賽實訓(xùn)平臺,完成本試題的程序設(shè)計與調(diào)試。程序編寫、調(diào)試完成后,選手需通過考試系統(tǒng)提交以準(zhǔn)考證號命名的hex文件。不符合以上文件提交要求的作

    2023年04月14日
    瀏覽(100)
  • 藍(lán)橋杯單片機(jī)14屆記錄 + 6-13屆省賽代碼+試題

    藍(lán)橋杯單片機(jī)14屆記錄 + 6-13屆省賽代碼+試題

    客觀題 01. 一個 8 位的 DAC 轉(zhuǎn)換器,供電電壓為 3.3V,參考電壓 2.4V,其 1LSB 產(chǎn)生的輸出電 壓增量是( )V。 A. 0.0129 B. 0.0047 C. 0.0064 D. 0.0094 ?02. IAP15F2K61S2 單片機(jī)支持通過哪些接口進(jìn)行在線調(diào)試( )。 A. SPI B. UART C. I2C D. JTAG ?03. 下列電路中屬于時序邏輯電路的是( )。 A. 計數(shù)

    2024年02月06日
    瀏覽(102)
  • 第十四屆藍(lán)橋杯單片機(jī)省賽真題(巨簡代碼+超級詳解)

    第十四屆藍(lán)橋杯單片機(jī)省賽真題(巨簡代碼+超級詳解)

    相關(guān)說明: 開發(fā)板:CT107D——IAP15F2K61S2 開發(fā)環(huán)境: Keil5 涉及題目:第十四屆藍(lán)橋杯單片機(jī)省賽真題 數(shù)碼管忘記不足2位左側(cè)補(bǔ)0;采集的濕度無效時,溫濕度、采集次數(shù)、采集時間不統(tǒng)計,更不參與計算平均值;溫度參數(shù)有邊界條件;在時間回顯子界面長按松開后才能清零,

    2024年02月04日
    瀏覽(89)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包