蓝桥杯单片机省一经验分享1:基础篇.含详细代码与应试技巧

     那是当年4月的一个早上,一觉醒来,想起一件大事:明天蓝桥杯,心想完蛋了;下午一觉醒来,得到一个“好消息”:蓝桥杯硬件延期了,然后我欣喜若狂的接着睡....

    既然时间充足了,我就自己写一点笔记,以便自己复习,备战蓝桥杯单片机的比赛,首先,你要买一块板子,然后得到店铺的零基础教程,然后找到那个“半小时省赛三等奖”程序,就是把所有模块都用一遍,并且精准地背出来,忘了的也能看原理图写出来。(我买的是大科电子的板子和视频,当然我同学也买了什么蚂蚁工厂的...我个人认为大科的代码非常简洁,讲得也非常好)而我接下来写的是基于大科的代码,我自己的理解和应试技巧。

    考场熟悉环境:

    1.得会添加51型号:上考场后:先开机...打开keil,新建工程,然后如果没有STC15F2K60S2,莫慌!打开烧录软件STC-ISP,右侧:keil仿真设置->添加型单片机型号->选择STC15F2K60S2->添加型号和头文件到keil中(如图1)

(图1)
    2.要会改hex文件名:他最后会让你交一个hex,可能是以考试号为名,直接修改文件名称显得十分的low,而且得最后修改容易忘记。这个时候你需要在keil里点左上角那个扳手(Options for Target 'Target 1'),Output -> 勾选Create Hex File ->修改Name of Excutable  (如图2)


(图2)

平时准备:   
平时练的时候,重点不在于如何熟练地去记住这些东西,而在于两点:

万一忘了怎么看原理图写出来;

注意每个平时易错的点并且会怎么去找错(以下易错点都写在注解里)

读题思路:
考题实际应用情况———转化为———>单片机显示的现象(没想清楚前不要动笔!!)

不要觉得是个人都有这种阅读理解能力(例:“第3届自动售水机:“S7按下后,售水机持续出水"转化为实际现象———>定时器开)

开写思路:
马上开写:“半小时省赛三等奖”程序,每写一段程序(函数),在上面声明一下,ctrl+S,放主函数里跑一遍,点Translate(如果图标是灰的,那么说明你左侧的工程没有Add Files to Group'...');

“半小时省赛三等奖”程序:


驱动代码

先把.c,.h文件复制到工程文件夹下,然后再keil左侧工程添加.c,.h文件

在.c文件写总线读写函数后在,记得在.h文件里声明

1.ONEWIRE

如果没给.h文件(第一次参赛,不知道给不给)

自己建一个:(前面两根下划线)

#ifndef  __ONEWIRE_H

#define __ONEWIRE_H

....函数声明.....

#endif

在onewire.c中

如果延时函数是这个(它是89C52的延时)

void Delay_OneWire(unsigned int t)  //STC89C52RC

{while(t--);}

把下面所有的延时扩大10倍

把#include "reg52.h"改成#include<STC15F2K60S2.H>

然后写下面这个TempGet函数


如果延时是这个:

void Delay_OneWire(unsigned int t)  

{

    unsigned char i;

    while(t--)

    {

          for(i=0; i<8; i++);

     }

 }

则改成for(i = 0;i < 10;i++)然后TempGet()中Delay_OneWire(20);

在onewire.h中记得声明onewire.c中所有的函数

在main.c中#include<onewire.h>然后在while(1)中写

☆☆☆yi = TempGet()/10;er = TempGet()%10;试一下

2.IIC

如果没给.h文件(第一次参赛,不知道给不给)

自己建一个:

#ifndef _IIC_H

#define _IIC_H

.....声明.....

#endif


两种延时:无论如何你需要40个_nop_()

如果是

#define DELAY_TIME 5

void IIC_Delay(unsigned char i)

{

    do{_nop_();}

    while(i--);        

}

IIC_Delay(DELAY_TIME);

把_nop_()复制出8个

或者是

#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();} 

把大括号里的整体复制8次


(1)测AD:

在while(1)里写0x01:光敏电阻;0x03:滑动变阻器

yi = IIC_read(0x01)/100;er = IIC_read(0x01)%100/10;san = IIC_read(0x01)%10;//0x01是光!

yi = IIC_read(0x03)/100;er = IIC_read(0x03)%100/10;san = IIC_read(0x03)%10;//0x03是滑变Rb2

(2)测EEPROM: 

EEPROM_num = EEPROM_read(0x66);

EEPROM_Write(0x66,66);//需要重新开几次

yi = EEPROM_num/100;er = EEPROM_num%100/10;san = EEPROM_num%10;

3.DS1302(记不记无所谓,考到用定时器伪造)

老规矩,把#include <reg52.h>改成#include<STC15F2K60S2.H>

在ds1302.c里有_nop_()的地方都复制8次,

在Write_Ds1302_Byte()中把Write_Ds1302(dat);改成Write_Ds1302(((dat/10)<<4)|(dat%10));//十位放高四位(左移)|个位

在Read_Ds1302_Byte()中 return(temp);改成 return ((temp/16)*10+temp%16);

在main.c里写:


记得声明

void DS1302_Init(void);

void DS1302_Get(void);

uint Init_Time[6] = {20,37,18,8,5,22},shijian[6];

//秒,分,时,日,月,年(只能两位)

在while(1)里写上:

yi = shijian[3]/10;er = shijian[3]%10;san = shijian[2]/10;si = shijian[2]%10;wu = shijian[1]/10;liu = shijian[1]%10;qi = shijian[0]/10;ba = shijian[0]%10;

测试一下功能是否可用

蓝桥杯单片机设计开发实训指导PDF》是份提供蓝桥杯单片机设计开发实训指导的电子书。该指导书的目的是帮助参加蓝桥杯的学生在单片机设计开发方面获得必要的知识和技能。 该指导书主要分为以下几个方面:理论基础、实训项目、实训操作指导和实报告要求等。 在理论基础中,指导书介绍了单片机的基本概念和原理,包括常见的单片机类型、单片机的工作原理和基本应用等。学生可以通过阅读这些内容了解单片机的工作原理和基本功能。 在实训项目中,指导书给出了些常见的实训项目,如LED灯控制、温度检测、蜂鸣器控制等。学生可以按照指导书中的项目要求进行实训,并运用所学的知识进行设计开发。 在实训操作指导中,指导书详细介绍了每个实训项目的具体操作步骤和注意事项。学生可以通过按照指导书的步骤进行实操,熟悉单片机的操作方法和常用编程语言。 最后,在实报告要求中,指导书给出了实报告的撰写要求和模板。学生需要按照指导书的要求进行实报告的撰写,并对实过程和结果进行详细的描述和分析。 总而言之,《蓝桥杯单片机设计开发实训指导PDF》是份提供蓝桥杯单片机设计开发实训指导的电子书,通过阅读指导书的内容,学生可以掌握单片机的基本知识和技能,并通过实训项目的操作和实报告的撰写来提高自己的实践能力。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值