AVR學(xué)習(xí)筆記,AVR單片機教程
AVR學(xué)習(xí)筆記一、基本輸出實驗(電路原理圖)
本實驗包括七個例程:1、點亮LED試驗,2、流水燈試驗,3、蜂鳴器試驗,4、1位數(shù)碼管顯示試驗,5、四位數(shù)碼管顯示試驗,6、1602液晶顯示試驗,7、12864液晶顯示實驗。
AVR學(xué)習(xí)筆記二、基本輸入和外部中斷實驗
本實驗包括二個例程:1、檢測按鍵,實現(xiàn)按鍵控制LED的亮滅,2、外部中斷實驗,利用中斷檢測按鍵,并在數(shù)碼管上顯示。
AVR學(xué)習(xí)筆記三、定時記數(shù)器0實驗
本實驗包括五個例程:1、定時/計數(shù)器0的計數(shù)實驗,2、定時/計數(shù)器0的定時實驗,3、定時/計數(shù)器0的比較匹配(CTC)實驗,4、定時/計數(shù)器0的快速PWM實驗,5、定時/計數(shù)器0的相位修正PWM實驗。
AVR學(xué)習(xí)筆記四、定時記數(shù)器1實驗
由于在定時/計數(shù)器0的實驗中我們已經(jīng)學(xué)會了定時/計數(shù)器的定時、計數(shù)、PWM等基本功能的使用方法。而單片機中的定時/計數(shù)器的基本功能大致上是一樣的。主要區(qū)別只是在于對不同寄存器的設(shè)置。所以在定時/計數(shù)器1的實驗中我們不再重復(fù)這些基本功能。在本實驗中主要有兩個實例。雖然例子只有兩個,但這兩個例子卻有很大的實用價值,我們可以慢慢體會;這兩個例子主要內(nèi)容是:
1、定時/計數(shù)器1的輸入捕捉功能:利用定時/計數(shù)器的輸入捕捉功能實現(xiàn)外部按鍵的檢測,并計算兩個按鍵按下的間隔時間。輸入捕捉功能可以用來進行外部信號的周期測量,這是一個很重要的功能。
2、定時/計數(shù)器1的兩通道比較匹配功能:通過對電路板做一個小小的改動,我們實現(xiàn)了用兩通道比較匹配功能驅(qū)動電路板上的D10、D11(1紅、1綠兩種顏色的LED)兩個二極管同時實現(xiàn)了漸明漸暗的變化效果。很有意思的一個試驗。本實驗在電路板上的改動是:講PD4、PD5兩個端口引出兩根導(dǎo)線連接到PD0、PD1兩個端口上。另外需要注意的是:本實例用的是內(nèi)部8M晶體,而前面的所有實例使用的都是內(nèi)部1M晶體。所以需要修改WINAVR(GCC)中的makefile中的晶體的值,而在下載程序的時候,也需要修改相應(yīng)的熔絲位配置。
AVR學(xué)習(xí)筆記五、異步串行通信(USART)實驗
在本實驗中包含三個實例:
1、發(fā)送單個字節(jié)的實驗;
2、將接收到的數(shù)據(jù)原樣發(fā)送回去的實驗。
3、一個完整的數(shù)據(jù)收發(fā)實驗
AVR學(xué)習(xí)筆記六、模擬比較器和ADC實驗
本實驗包含兩個例子:
1、模擬比較器實驗:通過測量PA0口的電壓,如果電壓高于1.22V,則點亮LED2,如果低于1.22V則點亮LED1.
模擬比較其實一個很有用的功能,它可以用來檢測系統(tǒng)電源電壓,還可以進行模數(shù)轉(zhuǎn)換。
2、模數(shù)轉(zhuǎn)換ADC實驗:通過測量PA0口的模擬電壓值,將測得的電壓值通過串口發(fā)送到計算機,通過串口助手顯示電壓值。
AVR學(xué)習(xí)筆記七、基于DS18B20的溫度測量實驗
本實驗包括3個例子,分別是:
1、利用DS18B20實現(xiàn)簡單的溫度測量。在這個例子中主要是學(xué)習(xí)了DS18B20的基本操作時序,DS18B20的基本操作時序是十分嚴格的,如果不按照規(guī)定的時序操作,是讀不出來數(shù)據(jù)的。而弄清了操作時序后,一切都會變得簡單。
2、利用寄生電源供電方式對DS18B20進行操作,不但實現(xiàn)了溫度的讀取,還實現(xiàn)了對DS18B20的RAM區(qū)的讀寫操作。利用寄生電源的優(yōu)點在于可以不必給DS18B20單獨配備電源,從而能夠更好的實現(xiàn)遠程測溫。
3、利用匹配指令實現(xiàn)多點測溫。通過發(fā)送指定的DS18B20的ROM序列號,實現(xiàn)對連接的多個DS18B20中的一個進行讀寫。實現(xiàn)基本的多點測溫試驗。
AVR學(xué)習(xí)筆記八、基于DS1302的實時時鐘
本實驗包括1個例子:
1、利用DS1302實現(xiàn)簡單的實時時鐘。在這個例子中主要是學(xué)習(xí)了DS1302的基本操作時序,以及DS1302的控制指令
AVR學(xué)習(xí)筆記九、基于AT24C16的I2C總線實驗
本實驗包括3個例子,分別是:
1、利用模擬I2C接口的方法實現(xiàn)對AT24C16的讀寫,并通過LED的亮滅指示讀出的數(shù)據(jù)是否正確。
2、利用AVR的硬件TWI接口,使用查詢法實現(xiàn)對AT24C16的讀寫,并通過LED的亮滅指示讀出的數(shù)據(jù)是否正確。
3、利用AVR的硬件TWI接口,使用中斷法實現(xiàn)對AT24C16的讀寫,同時將讀取的數(shù)據(jù)發(fā)送到計算機串口,并通過LED的亮滅指示讀出的數(shù)據(jù)是否正確。
在I2C總線接口的學(xué)習(xí)中,我對學(xué)習(xí)板做了一些小小的改動,分別給SDA和SCL加了外接的4.7K上拉電阻,大家看程序的時候請一定注意。
AVR學(xué)習(xí)筆記十、基于數(shù)碼管顯示的流轉(zhuǎn)燈
本實驗利用數(shù)碼管編寫一個簡單的程序?qū)崿F(xiàn)流轉(zhuǎn)燈效果。實例效果是:首先逐段顯示字符“0”,然后讓字符“0”的所有段流動起來。最后讓字符“0”亮滅變化。整個程序循環(huán)執(zhí)行,達到簡單模擬廣告燈的效果。
AVR學(xué)習(xí)筆記十一、AVR內(nèi)部EEPROM的讀寫實驗
實驗利用WINAVR自帶的EEPROM讀寫函數(shù)實現(xiàn)對AVR單片機內(nèi)部EEPROM的讀寫,并通過學(xué)習(xí)板上的8個LED等顯示讀取的數(shù)據(jù)是否正確。同時也進行了掉電后再上電,然后讀取EEPROM內(nèi)容是否正確保存。
需要特別注意的是:在做這個實驗的時候,熔絲位需要正確設(shè)置,應(yīng)當選擇熔絲位為“執(zhí)行芯片擦除時保留EEPROM的內(nèi)容”即EESAVE=0。
AVR學(xué)習(xí)筆記十二、AVR內(nèi)部的看門狗操作實驗
本實驗利用WINAVR自帶的看門狗操作函數(shù)進行試驗,利用LED的亮滅演示看門狗及時復(fù)位/沒有及時復(fù)位的情況。
編輯:admin 最后修改時間:2018-05-19