第十屆藍(lán)橋杯杯賽學(xué)習(xí)筆記(電子類單片機(jī)組)

第十屆藍(lán)橋杯杯賽學(xué)習(xí)筆記(電子類單片機(jī)組)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-----------make by why(2019.03.19)、
程序介紹:文件中幾個(gè)通訊協(xié)議程序,都是藍(lán)橋杯單片機(jī)比賽中官網(wǎng)提供的驅(qū)動(dòng)程序;
由于官網(wǎng)提供的程序使用于89C52單片機(jī),而近幾年,由于單片機(jī)芯片更新速度快,藍(lán)橋杯單片機(jī)競(jìng)賽使用的單片機(jī)也有所升級(jí),使用IAP15F2K61S2單片機(jī)。15單片機(jī)為1T單片機(jī),而52單片機(jī)為12T單片機(jī),相比之下15單片機(jī)執(zhí)行速度是52單片機(jī)的8—10倍;也就是說(shuō),在使用官網(wǎng)提供的驅(qū)動(dòng)程序時(shí),有一些相應(yīng)的延時(shí),要增加8倍-10倍左右。
I.官方驅(qū)動(dòng)文件調(diào)用
一.??ds18b20溫度傳感器
ds18b20.c?
ds18b20.h
1.延時(shí)方面

2.調(diào)用這個(gè)驅(qū)動(dòng)程序時(shí),需要自己添加獲取溫度值的程序:

使用方法如下:

二.???????? ds1302時(shí)鐘芯片
ds1302.c
ds1302.h
調(diào)用這個(gè)驅(qū)動(dòng)程序時(shí)我們需要自己添加ds1302的出始化程序和讀取時(shí)間的程序.
1.? 初始化程序(即是驅(qū)動(dòng)這個(gè)芯片同時(shí)設(shè)定出時(shí)間)
定義的數(shù)組值(十進(jìn)制)分別代表:秒,分,時(shí),日,月,星期,年
注意寫數(shù)據(jù)地址為:0x80

注意:由于輸入的時(shí)十進(jìn)制的數(shù)據(jù),但是芯片寫入時(shí)只接受二進(jìn)制值所以要轉(zhuǎn)化,下面就是在寫數(shù)據(jù)函數(shù)里面進(jìn)行數(shù)據(jù)轉(zhuǎn)化(下圖框選部分即是數(shù)據(jù)轉(zhuǎn)化)

2.? 讀取時(shí)間數(shù)據(jù)
從ds1302中讀取時(shí)間數(shù)據(jù)也是二進(jìn)制值,寫讀取時(shí)間值函數(shù)時(shí)要注意數(shù)據(jù)轉(zhuǎn)化
注意讀數(shù)據(jù)地址為:0x81

3.? 函數(shù)使用

三?.IIC通訊
iic.c
iic.h
1.IIC延時(shí)方面(比原來(lái)延時(shí)大八倍)

2.PCF8591(AD/DA轉(zhuǎn)換芯片)
寫地址:0x90? ?讀地址:0x91
2.1讀數(shù)據(jù)程序(ADC輸出數(shù)字量)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ?
??? 2.2寫數(shù)據(jù)程序(DAC輸出模擬量)
add:為芯片DAC轉(zhuǎn)換指令,必須是0x40
dat:為0-255范圍內(nèi)的數(shù)據(jù),轉(zhuǎn)化成模擬量為(5V/255)*dat

2.? AT24C02芯片(EEPROM)
寫地址:0xa0? ?讀地址:0xa1
3.1讀數(shù)據(jù)(從0x00-0xff范圍內(nèi)的儲(chǔ)存地址中讀取儲(chǔ)存的數(shù)據(jù)值)

3.2寫數(shù)據(jù)(往0x00-0xff范圍內(nèi)的儲(chǔ)存地址中寫入需要儲(chǔ)存的數(shù)據(jù)值)
add:是要儲(chǔ)存數(shù)據(jù)空間的地址
dat:是需要儲(chǔ)存的數(shù)據(jù)(范圍為:0-255)
注意:連續(xù)儲(chǔ)存數(shù)據(jù)時(shí),需要進(jìn)行個(gè)短時(shí)間延時(shí)(延時(shí)5ms)

延時(shí)-------->

??????????????????????????????????????????????????????????????????????????????????????????????????????
?????????預(yù)祝第十屆藍(lán)橋杯順利????????
????????????????????????加油!加油!????????????