蓝桥杯大赛单片机比赛经验总结
2024/5/29 21:03:13
本文主要是介绍蓝桥杯大赛单片机比赛经验总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
蓝桥杯大赛单片机比赛经验总结
-
适当的延时很重要,可以解决一些不正常现象
-
ds1302读取的时间是BCD码,操作时间时换成10进制操作例:
(shi / 16) * 10 + shi % 16
-
每次只接受和发送一个字符,字符用单引号 ‘’ 字符串用双引号“”
if(SBUF == ‘a’)
- 而不是
if(SBUF == "a")
-
总中断EA定时器中断ET0和串行通信中断ES记得开
-
52单片机程序不可以直接使用P32的写法,15单片机可以,52使用前需要先进行定义
P32=P3^2
-
main函数下面不能忘记写while(1){}
-
简单初始化函数必须写在while(1){}上面,不能写在里面
-
DS18B20当需要执行温度测量和ad转换的时候,总线控制器必须发出[44h]命令
-
写iic的读字节函数不用这行程序:
temp=0.39*temp
-
iicwrite()函数里面写(要存的地址,要存的值)或者直接把add换成地址
-
pwm的精度不同表现在占空比上,比如8位pwm占空比最小只能是
1:256
,尔10位pwm占空比可以使1:1024
-
定时器溢出时间=周期/占空比
-
定时器不好用的时候可以用ds1302代替
-
ds1302和ds18b20部分子程序名相同
-
串口通信发送或接受一个字节就进入中断,TI或RI = 1;使用串口助手时一定要选对波特率和文本模式或HEX模式
-
修改时钟时,将BCD转换成10进制在进行加减,时到24变成0,分和秒到60变成0,修改时分秒显示时
/10
不是/16
-
超声波用的TR1,TF1,TH1,TL1.用的是定时器1,串口通信的波特率在模式1下与定时器1的溢出率有关
-
写数据到EEPROM时,地址最好
0x00
到0x56
,最好间隔一个地址存多个数据,存入的数据最大为255,超过可把数据分开存储 -
读取时钟时先关中断在读,写EEPROM和读iic和温度时,加延时,注意
++i
和i++
的区别使用 -
iic返回数都是unsigned char,
adc_val / 255.0f * 5
ds18b20返回数是float,先读low,再读high函数里temp定义为int,temp*0.0625
。读函数都要初始化两次,超声波distance = t * 0.017
-
读时间和adc时关总中断再读取
-
当矩阵键盘和串口同时使用时,串口不要用串口1;P30端口会相互影响
-
定义数组时预设内存比实际使用大一点
-
速查表
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的最大值:1844674407370955161int64的最大值:9223372036854775807
int64的最小值:-9223372036854775808
unsigned int64的最大值:18446744073709551615
微信公众号搜索:余生还长着呢
这篇关于蓝桥杯大赛单片机比赛经验总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25探索随机贪心算法:从入门到初级应用
- 2024-12-25树形模型进阶:从入门到初级应用教程
- 2024-12-25搜索算法进阶:新手入门教程
- 2024-12-25算法高级进阶:新手与初级用户指南
- 2024-12-25随机贪心算法进阶:初学者的详细指南
- 2024-12-25贪心算法进阶:从入门到实践
- 2024-12-25线性模型进阶:初学者的全面指南
- 2024-12-25朴素贪心算法教程:初学者指南
- 2024-12-25树形模型教程:从零开始的图形建模入门指南
- 2024-12-25搜索算法教程:初学者必备指南