• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      通過(guò)CVAVR編程向?qū)W(xué)習(xí)AVR單片機(jī)

      2014-12-31 00:00:00魏永生

      摘 要:AVR單片機(jī)的寄存器比51系列單片機(jī)要多,沒(méi)有經(jīng)驗(yàn)的初學(xué)者面對(duì)大量必須要設(shè)置的寄存器往往是一頭霧水,而CVAVR編程軟件除了具有位操作功能外,還有代碼生成準(zhǔn)確率極高的編程向?qū)В鶕?jù)設(shè)計(jì)者的要求,可以自動(dòng)生成代碼。本文通過(guò)CVAVR軟件編程向?qū)?lái)學(xué)習(xí)AVR單片機(jī)的IO端口、定時(shí)器、中斷和ADC轉(zhuǎn)換及USART串口的使用,編程調(diào)試采用CVAVR+AVR編程、STUDIO4和JTAG ICE硬件仿真模式。

      關(guān)鍵字:CVAVR 單片機(jī);編程

      中圖分類(lèi)號(hào):TP334.7

      1 IO端口的設(shè)置

      與51單片機(jī)相比,AVR端口是真正的雙向端口,但編程時(shí)需要按要求進(jìn)行輸入和輸出設(shè)定,這也是AVR的一項(xiàng)優(yōu)勢(shì),而在操作時(shí)注意每個(gè)口的方向寄存器DDRn就可以了。本文采用的芯片是用ATmega16,有4個(gè)8位的可編程IO口,2個(gè)8位定時(shí)器計(jì)數(shù)器T/C0、T/C2,1個(gè)16位定時(shí)器計(jì)數(shù)器T/C1,時(shí)鐘采用內(nèi)部4M時(shí)鐘源。首先運(yùn)行cvavr軟件,新建prj項(xiàng)目文件,選擇使向?qū)ode wizard avr,按圖1設(shè)置后確認(rèn)后軟件會(huì)自動(dòng)生成如下程序代碼:

      2 定時(shí)器的使用

      這里以16位的定時(shí)器T1為例,用產(chǎn)生1S定時(shí)的程序來(lái)學(xué)習(xí)定時(shí)器普通模式和比較匹配功能使用,學(xué)會(huì)了16位定時(shí)器T1,那么8位定時(shí)器T0也就會(huì)了。

      2.1 普通模式定時(shí)。普通模式是T1最基本的一種工作模式,在普通模式下只要TCCR1B控制寄存器的后三位CS2、CS1、CS0不為零即可啟動(dòng)定時(shí)器,若為000則無(wú)時(shí)鐘源定時(shí)器停止工作。定時(shí)器啟動(dòng)后T1就單向加1計(jì)數(shù)器,一旦寄存器TCNT1的值達(dá)到0xFFFF上限值,在加1之后計(jì)數(shù)便恢復(fù)為0x0000,同時(shí)啟動(dòng)溢出標(biāo)志置為1,用于申請(qǐng)T1溢出中斷,這與51單片機(jī)的定時(shí)器T0、T1的定時(shí)方式工作方式是基本一樣的,運(yùn)行cvavr軟件,新建prj項(xiàng)目文件,選擇使向?qū)В╟ode wizard avr),設(shè)置后確認(rèn)后軟件會(huì)自動(dòng)生成程序代碼,在interrupt [TIM1_OVF] void timer1_ovf_isr(void)T1定時(shí)器溢出中斷程序中,還要對(duì)定時(shí)器進(jìn)行賦初值,即TCNT1H=0x0B,TCNT1L=0xDC,之后是中斷執(zhí)行的程序,此處以PORTA=~PORTA為代表,表示此處可添加中斷處理程序。

      主程序中,TCCR1A=0x00是設(shè)置T1控制寄存器A選擇普通端口操作,TCCR1B=0x03是選擇64分頻進(jìn)時(shí)鐘源并啟動(dòng)定時(shí),TCNT1H=0x0B,TCNT1L=0xDC的功能是為T(mén)1計(jì)數(shù)寄存器賦初值,而TIMSK=0x04是開(kāi)T1溢出中斷,很多軟件設(shè)置后會(huì)出現(xiàn)#asm(\"sei\"),該語(yǔ)名是開(kāi)總中斷的意思,相當(dāng)于SREG=1。

      若想要停止定時(shí)計(jì)數(shù)器,只要將定時(shí)控制寄存器TCCR1B的CS2、CS1、CS0置零,定時(shí)計(jì)數(shù)器無(wú)時(shí)鐘源即可停止。

      2.2 匹配模式定時(shí)。在比較匹配模式時(shí),相當(dāng)于定時(shí)器上限可變,可設(shè)置成除了0XFFFF以外的其它值,這個(gè)比較上限的值保存在輸入比較寄存器OCR1A中。新建PRJ項(xiàng)目文件,選擇使向?qū)?,設(shè)置后確認(rèn)后軟件會(huì)自動(dòng)生成除中斷程序外的如下主程序代碼:

      3 外部中斷的使用

      新建prj項(xiàng)目文件,選擇使用向?qū)ВO(shè)置確認(rèn)后軟件會(huì)自動(dòng)生成如下程序代碼:這里選擇low level低電平觸發(fā)。

      4 AD轉(zhuǎn)換器的使用

      新建prj項(xiàng)目文件,選擇使向?qū)?,設(shè)置確認(rèn)后軟件會(huì)自動(dòng)生成程序代碼,其中#define ADC_VREF_TYPE 0x40是宏定義ADC電壓參考電源選擇為AVCC(5V),而adc_data[input_index]=ADCW語(yǔ)句是讀AD轉(zhuǎn)換結(jié)果到adc_data[0]中,ADCSRA|=0x40是設(shè)置ADC狀態(tài)控制寄存器開(kāi)始AD轉(zhuǎn)換。

      程序中采用T/C0比較匹配中斷,作為ADC自動(dòng)轉(zhuǎn)換的觸發(fā)源信號(hào)。在向?qū)гO(shè)置中,設(shè)置ADC時(shí)鐘的分頻系統(tǒng)為32,即125KHz的ADC時(shí)鐘,滿足了逐次比較轉(zhuǎn)換電路達(dá)到最大精度時(shí),需要50K~200KHz之間的采樣時(shí)鐘的要求,盡管atmega16的PA口的PA1作為ADC的輸入端,PA口的其它引腳仍可作為普通的IO引腳使用。

      5 USUART串口的使用

      本文中的串口通迅發(fā)送數(shù)據(jù)采用查詢方式,接收數(shù)據(jù)采用中斷處理,因此只用向?qū)Мa(chǎn)生中斷接收代碼,而發(fā)送子程序內(nèi)容為手動(dòng)編寫(xiě),其中發(fā)送和接接子程序編寫(xiě)如下:

      通過(guò)CVAVR的編程向?qū)У氖褂茫苁刮覀兿冗\(yùn)行體驗(yàn)AVR單片機(jī)的成功運(yùn)行現(xiàn)象,再回頭認(rèn)真的理解相關(guān)寄存器的設(shè)定要領(lǐng),這一先實(shí)踐后理論的模式會(huì)對(duì)我們硬件學(xué)習(xí)和軟件編程起到事半功倍的效果,而且通過(guò)這篇文章的介紹,會(huì)對(duì)AVR單片機(jī)有一個(gè)全面的系統(tǒng)的了解和掌握。

      參考文獻(xiàn):

      [1]王宗剛,潘崢嶸.基于AVR單片機(jī)的SPI接口的實(shí)現(xiàn)[J].自動(dòng)化與儀器儀表,2011(02).

      作者簡(jiǎn)介:魏永生(1973-),男,教師,講師,學(xué)士學(xué)位,研究方向:電子信息,電子制作,單片機(jī)編程。

      作者單位:吉林機(jī)電工程學(xué)校,吉林吉林 132101

      盖州市| 元阳县| 古田县| 米脂县| 友谊县| 惠水县| 伽师县| 藁城市| 海城市| 都昌县| 信宜市| 西华县| 定州市| 从江县| 河源市| 贡觉县| 大姚县| 衡南县| 钦州市| 保靖县| 三穗县| 开原市| 时尚| 新津县| 新干县| 湖北省| 屯昌县| 长宁县| 枣庄市| 明水县| 泾阳县| 确山县| 溧水县| 库尔勒市| 汕头市| 龙游县| 金川县| 偏关县| 荆门市| 四子王旗| 旺苍县|