蓝桥杯大赛单片机比赛的心得总结

翻了下以前做过的一些项目和比赛,发现了之前准备比赛的一些注意事项和心得,分享给大家希望大家能够避免错误拿高分。

                适当的延时很重要,可以解决一些不正常现象
        ds1302读取的时间是BCD码,操作时间时换成10进制操作例:(shi / 16) * 10 + shi % 16
**********************************使用串口时*********************
            每次只接受和发送一个字符,字符用单引号 ‘’ 字符串用双引号“”
            if(SBUF == ‘a’)而不是if(SBUF == "a")

**1.总中断EA定时器中断ET0和串行通信中断ES记得开

**2.52单片机程序不可以直接使用P32的写法,15单片机可以,52使用前需要先进行定义P32=P3^2

*3.main函数下面不能忘记写while(1){}

4.简单初始化函数必须写在while1(){}上面,不能写在里面

5.DS18B20当需要执行温度测量和ad转换的时候,总线控制器必须发出[44h]命令

6.写iic的读字节函数不用这行程序:temp=0.39*temp;
   iicwrite()函数里面写(要存的地址,要存的值)或者直接把add换成地址

7.pwm的精度不同表现在占空比上,比如8位pwm占空比最小只能是1:256,尔10位pwm占空比可以使1:1024.

8.定时器溢出时间=周期/占空比

9.定时器不好用的时候可以用ds1302代替

10.ds1302和ds18b20部分子程序名相同,注意!!

11.串口通信发送或接受一个字节就进入中断,TI或RI = 1;使用串口助手时一定要选对波特率和文本模式或HEX模式

***12.修改时钟时,将BCD转换成10进制在进行加减,时到24变成0,分和秒到60变成0,修改时分秒显示时 /10  不是/16

13.超声波用的TR1,TF1,TH1,TL1.用的是定时器1,串口通信的波特率在模式1下与定时器1的溢出率有关

14.写数据到EEPROM时,地址最好0x00到0x56,最好间隔一个地址存多个数据,存入的数据最大为255,超过可把数据分开存储

15.读取时钟时先关中断在读,写EEPROM和读iic和温度时,加延时,注意++i和i++的区别使用

16.iic返回数都是unsigned char,adc_val / 255.0f * 5.ds18b20返回数是float,先读low,再读high函数里temp定义为int,temp*0.0625。读函数都要初始化两次,超声波distance = t * 0.017

17.读时间和adc时关总中断再读取

18.当矩阵键盘和串口同时使用时,串口不要用串口1;P30端口会相互影响;

19.定义数组时预设内存比实际使用大一点
速查表:

char -128 ~ +127 (1 Byte)
short -32767 ~ + 32768 (2 Bytes)
unsigned short 0 ~ 65536 (2 Bytes)
int -2147483648 ~ +2147483647 (4 Bytes)
unsigned int 0 ~ 4294967295 (4 Bytes)
long == int
long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)
double 1.7 * 10^308 (8 Bytes)

unsigned int 0~4294967295 
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:1844674407370955161

__int64的最大值:9223372036854775807
__int64的最小值:-9223372036854775808
unsigned __int64的最大值:18446744073709551615

  • 39
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
蓝桥杯大赛51单片机A组真题要求我们根据给定的电路图和要求,设计一个单片机控制系统。 首先,我们需要了解给定电路图中的元件及其功能。通过仔细观察电路图,我们可以发现其中包含了多个LED灯和一个按钮,以及相应的电阻和连接线。LED灯是用来发光的,而按钮则是用来控制LED灯的亮灭。 根据题目要求,我们需要设计一个控制系统,实现以下功能: 1. 当按下按钮时,所有的LED灯同时熄灭。 2. 当再次按下按钮时,所有的LED灯顺序点亮,即从第一个LED灯开始,直到最后一个LED灯全部点亮。 3. 当再次按下按钮时,所有的LED灯逆序熄灭,即从最后一个LED灯开始,直到第一个LED灯全部熄灭。 为了实现以上功能,我们可以通过编写单片机的程序来控制LED灯的亮灭。 首先,我们可以将按钮连接到单片机的某个IO口,并设置其工作模式为输入模式。 然后,我们可以通过编写程序,实现如下操作: 1. 当检测到按钮按下时,将所有的IO口电平设置为高电平,即所有的LED灯熄灭。 2. 当再次检测到按钮按下时,利用循环语句逐个点亮LED灯,即将对应的IO口电平设置为低电平。 3. 当再次检测到按钮按下时,利用循环语句逐个熄灭LED灯,即将对应的IO口电平设置为高电平。 通过以上步骤,我们可以实现给定电路图中所要求的功能。 在实际设计过程中,还需要根据具体的单片机型号来选择合适的编程工具和语言,同时还需考虑电路图中元件的参数和连接方式。另外,我们还可以添加其他功能,如控制LED灯的闪烁频率或者实现不同灯光模式等。 总结起来,蓝桥杯大赛51单片机A组真题需要我们根据给定的电路图和要求,设计一个单片机控制系统,通过编写程序实现按下按钮时控制LED灯的亮灭功能。这不仅是对我们所学知识的应用,也是对我们动手实践和创新能力的检验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余生还长着呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值