【正文】
//TCNT0 = 0xF7。/* 關(guān)閉WDT *///WDTCR = 0x00。打開一個(gè)工程項(xiàng)目,隨后AVRStudio將開始尋找JTAG ICE所在的串行端口。注:要正確選擇電阻的阻值,一般選取200~500歐。VSUPPLY用于通過目標(biāo)板為JTAG ICE供電。為保證AVR Studio的正確自檢,在開始使用AVR Studio前應(yīng)該先進(jìn)行連接??梢栽诔绦驁?zhí)行過程中實(shí)現(xiàn)單步(step)、連續(xù)、斷點(diǎn)、變量具有數(shù)據(jù)或程序空間斷點(diǎn)。 工程窗口然后對(duì)文件進(jìn)行編譯。編譯錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)用鼠標(biāo)單擊編譯錯(cuò)誤時(shí),光標(biāo)會(huì)自動(dòng)跳轉(zhuǎn)到編輯窗口中一起錯(cuò)誤的那一行。UCSRB=(1RXEN)|(1TXEN)|(1RXCIE)。 break。 case rollback: PORTC=PORTCamp。設(shè)加在電機(jī)電樞兩端的矩形波的幅值電壓為Ud,則電機(jī)電樞兩端電壓的平均值為: PWM波形圖 ()稱為占空比。USART_Transmit(0XBB)。 //disable glable interupt//WDT_off()。程序開始,首先初始化I/O端口:PC1,PB3。僅在同步模式下XCK有效?;謴?fù)單元用于異步數(shù)據(jù)的接收。 串口初始化通用同步和異步串行接收器和轉(zhuǎn)發(fā)器(USART)是一個(gè)高度靈活的串行通訊設(shè)備。如果沒有選擇時(shí)鐘源T/C就不工作。下面就是對(duì)系統(tǒng)所采用的端口B和端口C進(jìn)行初始化:PORTB=(1PB3);DDRB=(1DDB3)初始化端口B的PB3引腳,PB3引腳主要完成PWM脈沖輸出,將PB3口定義方向?yàn)檩敵?。ATmega16單片機(jī)上共有三組端口:端口A,端口B,端口C。一般采用光隔離或磁隔離。過熱信號(hào)還可通過引腳9輸出,當(dāng)結(jié)溫達(dá)到145度時(shí)引腳9有輸出信號(hào)。 LMD18200邏輯真值表PWM轉(zhuǎn)向剎車實(shí)際輸出驅(qū)動(dòng)電流電機(jī)工作狀態(tài)HHL流出流入2正轉(zhuǎn)HLL流入流出2反轉(zhuǎn)LL流出流出2停止HHH流出流出2停止HLH流入流入2停止LXHNONE 腳4置邏輯高電平、腳5置邏輯低電平時(shí),H橋中所有晶體管關(guān)斷,此時(shí),每個(gè)輸出端只有很小的偏流()。它有11個(gè)引腳,采用TO220和雙列直插式封裝。15腳DNG、16腳VCC(+5v)。由6腳和4只電容構(gòu)成。系統(tǒng)才用的是通過按鍵產(chǎn)生脈沖進(jìn)行復(fù)位的按鍵復(fù)位電路。再傳送至單片機(jī)上,由單片機(jī)發(fā)出控制脈沖,控制驅(qū)動(dòng)芯片LMD18200中PWM電路的占空比,從而控制電機(jī)正反轉(zhuǎn)以及起停等動(dòng)作。這種模式適合于噪聲環(huán)境,以及需要通過XTAL2驅(qū)動(dòng)第二個(gè)時(shí)鐘緩沖器的情況。使得此定時(shí)器/計(jì)數(shù)器即使在睡眠模式下仍然可以為系統(tǒng)提供一個(gè)實(shí)時(shí)時(shí)鐘。終止CPU時(shí)鐘將使內(nèi)核停止工作和計(jì)算。(4)掉電檢測復(fù)位。這種處理方式使得在MCU正常工作之前有一定的時(shí)間讓電源達(dá)到穩(wěn)定的電平。當(dāng)使能了USART的接收器后,這個(gè)引腳被強(qiáng)制設(shè)置為輸出,此時(shí)DDD0不起作用。在PWM模式的定時(shí)器功能中,OC1B引腳作為輸出。在該功能下引腳作為輸出(DDD7置1)。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。? TDI–端口C,Bit5TDI,JTAG測試數(shù)據(jù)輸入:串行輸入數(shù)據(jù)移入指令寄存器或數(shù)據(jù)寄存器(掃描鏈)。數(shù)據(jù)方向寄存器(DDB0)控制時(shí)鐘為輸出(DDB0置位)還是輸入(DDB0 清零)。實(shí)現(xiàn)該功能時(shí),PB3引腳必須配置為輸出(設(shè)DDB3為1)。? SS–端口B,Bit4SS:從機(jī)選擇輸入。? MISO–端口B,Bit6MISO:SPI通道的主機(jī)數(shù)據(jù)輸入,從機(jī)數(shù)據(jù)輸出端口。在上拉輸入和輸出低電平之間切換也有同樣的問題。DDxn為“1”時(shí),Pxn配置為輸出,否則配置為輸入。 I/O引腳等效原理圖I/O引腳等效原理圖每個(gè)端口都有三個(gè)I/O存儲(chǔ)器地址:數(shù)據(jù)寄存器 –PORTx、數(shù)據(jù)方向寄存器–DDRx和端口輸入引腳–PINx。它是作為一個(gè)獨(dú)立的數(shù)據(jù)空間而存在的,可以按字節(jié)讀寫。起始的96個(gè)地址為寄存器文件與64個(gè)I/O存儲(chǔ)器,接著是1024字節(jié)的內(nèi)部數(shù)據(jù)SRAM。這三個(gè)存儲(chǔ)器空間都為線性的平面結(jié)構(gòu)。狀態(tài)寄存器里有全局中斷使能位。 在中斷和調(diào)用子程序時(shí)返回地址的程序計(jì)數(shù)器(PC)保存于堆棧之中。 ALU支持寄存器之間以及寄存器和常數(shù)之間的算術(shù)和邏輯運(yùn)算。程序存儲(chǔ)器是可以在線編程的FLASH。?AREF A/D:的模擬基準(zhǔn)輸入引腳。持續(xù)時(shí)間超過最小門限時(shí)間的低電平將引起系統(tǒng)復(fù)位。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。作為輸入使用時(shí),若內(nèi)部上拉電阻使能,端口被外部電路拉低時(shí)將輸出電流。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一個(gè)時(shí)鐘周期內(nèi)同時(shí)訪問兩個(gè)獨(dú)立的寄存器。SPI支持主/從機(jī)等4種組合的多機(jī)通信。片內(nèi)大容量的RAM不僅能滿足一般場合的使用,同時(shí)也更有效的支持使用高級(jí)語言開發(fā)系統(tǒng)程序,并可像MCS51單片機(jī)那樣擴(kuò)展外部 RAM。此間雖有某些精簡指令集單片機(jī)(RISC)問世,但依然沿襲對(duì)時(shí)鐘分頻的作法。單片機(jī)控制系統(tǒng)是以單片機(jī)(CPU)為核心部件,擴(kuò)展一些外部接口和設(shè)備,組成單片機(jī)工業(yè)控制機(jī),主要用于工業(yè)過程控制。(2) 設(shè)計(jì)一個(gè)外圍驅(qū)動(dòng)電路來驅(qū)動(dòng)直流電機(jī)旋轉(zhuǎn)。計(jì)算機(jī)則通過軟件來控制直流電機(jī),更好地挖掘出電動(dòng)機(jī)的潛力。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,直流電機(jī)的需求量與日俱增,在各個(gè)國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。AVR單片機(jī)是基于RISC指令架構(gòu)的8位單片機(jī)。正是這些技的進(jìn)步使電動(dòng)機(jī)控制技術(shù)在近二十多年內(nèi)發(fā)生了翻天覆地的變化。關(guān)鍵詞:ATmega16;直流電機(jī);PWM;LMD18200AbstractIn recent years, the SCM application which used in the field of industrial automation, production process bees more and more deepen and is a microcontroller buildup on AVR RISC configuration which is a low consume microcontroller of 8bit data of ATmega16 have a high dispatcher which can reach 1MIPS/MHz for advanced instruction volum and the instruction of single clock cycle,so it can relaxed the conflict between consume and dispose design show us that a PWM speed system of DCmotor using ATmega16 is introduced in this paper. This paper elaborates on the system principle,optical Encoder, LMD18200 driving system, High Reliability Photo CouplerK1010,the DCmotor PWM digital control system,and system serial munication agreement of 232 munication. The system is mainly pleted the start, stop and acceleration and decelerationn functions by which the master PC and ATmega16 control the DC motor. The article described in detail the speed control system39。摘 要近年來,電機(jī)調(diào)速系統(tǒng)在工業(yè)自動(dòng)化、生產(chǎn)過程控制、測控儀表等領(lǐng)域的應(yīng)用越來越深入和廣泛。s working principle, the PWM drive interface circuit and K1010 Optocoupler,LMD18200 drive circuit, the relative software design of the serial munication control software is programmed through ICCAVR, then simulated by AVRStudio and the piled code is downloaded to ATmega16 to control the system.Key words: ATmega16。在各類機(jī)電系統(tǒng)中,由于直流電機(jī)具有良好的起動(dòng)、制動(dòng)和調(diào)速性能,直流調(diào)速技術(shù)已廣泛運(yùn)用于工業(yè)、航天領(lǐng)域的各個(gè)方面。RISC通過優(yōu)選使用頻率最高的簡單指令,避免復(fù)雜指令,采用固定指令長度,減少指令格式和尋址方式等方法來縮短指令周期,提高處理起的運(yùn)算速度。直流電動(dòng)機(jī)是最早出現(xiàn)的電動(dòng)機(jī),也是最早實(shí)現(xiàn)條素的電動(dòng)機(jī)。因此,用計(jì)算機(jī)控制直流電機(jī)已經(jīng)成為了一種必然的趨勢,也符合數(shù)字化的時(shí)代趨勢。(3) 使用上位機(jī)串口控制直流電機(jī)轉(zhuǎn)速。要進(jìn)行單片機(jī)系統(tǒng)設(shè)計(jì)首先必須具有一定的硬件基礎(chǔ)知識(shí);其次,需要具有一定的軟件設(shè)計(jì)能力,能夠根據(jù)系統(tǒng)的要求,靈活地設(shè)計(jì)出所需要的程序;第三,具有綜合運(yùn)用知識(shí)的能力。AVR單片機(jī)的推出,徹底打破這種舊設(shè)計(jì)格局,廢除了機(jī)器周期,拋棄復(fù)雜指令計(jì)算機(jī)(CISC)追求指令完備的做法;采用精簡指令集,以字作為指令長度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。AVR單片機(jī)的I/O線全部帶可設(shè)置的上拉電阻、可單獨(dú)設(shè)定為輸入/輸出、可設(shè)定(初始)高阻輸入、驅(qū)動(dòng)能力強(qiáng)(可省去功率驅(qū)動(dòng)器件)等特性,使的得I/O口資源靈活、功能強(qiáng)大、可充分利用。AVR單片機(jī)有自動(dòng)上電復(fù)位電路、獨(dú)立的看門狗電路、低電壓檢測電路BOD,多個(gè)復(fù)位源(自動(dòng)上下電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位),可設(shè)置的啟動(dòng)后延時(shí)運(yùn)行程序,增強(qiáng)了嵌入式系統(tǒng)的可靠性。這種結(jié)構(gòu)大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數(shù)據(jù)吞吐率。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口A處于高阻狀態(tài)。在復(fù)位過程中,即使系統(tǒng)時(shí)鐘還未起振,端口C處于高阻狀態(tài)。門限時(shí)間見P36Table15。 CPUATMEGA16 AVR內(nèi)核的結(jié)構(gòu)??焖僭L問寄存器文件包括32個(gè)8位通用工作寄存器,訪問時(shí)間為一個(gè)時(shí)鐘周期。ALU也可以執(zhí)行單寄存器操作。堆棧位于通用數(shù)據(jù)SRAM,因此其深度僅受限于SRAM的大小。每個(gè)中斷在中斷向量表里都有獨(dú)立的中斷向量。系統(tǒng)內(nèi)可編程的Flash程序存儲(chǔ)器ATmega16具有16K字節(jié)的在線編程Flash,用于存放程序指令代碼。數(shù)據(jù)存儲(chǔ)器的尋址方式分為5種:直接尋址、帶偏移量的間接尋址、間接尋址、帶預(yù)減量的間接尋址和帶后增量的間接尋址。EEPROM 的壽命至少為100,000次擦除周期。數(shù)據(jù)寄存器和數(shù)據(jù)方向寄存器為讀/寫寄存器,而端口輸入引腳為只讀寄存器。引腳配置為輸入時(shí),若PORTxn 為“1”,上拉電阻將使能。用戶必須選擇高阻態(tài)({DDxn,PORTxn} = 0b00)或輸出高電平({DDxn,PORTxn} = 0b10)作為中間步驟。工作于主機(jī)模式時(shí),不論DDB6設(shè)置如何,這個(gè)引腳都將設(shè)置為輸入。工作于從機(jī)模式時(shí),不論DDB4設(shè)置如何,這個(gè)引腳都將設(shè)置為輸入。在PWM模式的定時(shí)功能中,OC0引腳作為輸出。只有當(dāng)USART工作在同步模式時(shí),XCK引腳激活。當(dāng)JTAG接口使能,該引腳不能作為I/O引腳。? SDA–端口C,Bit1SDA,兩線串行接口數(shù)據(jù):當(dāng)寄存器TWCR的TWEN位置1使能兩線串行接口,引腳PC1不與端口相聯(lián),且成為兩線串行接口的串行數(shù)據(jù)I/O引腳。在PWM模式的定時(shí)器功能中,OC2引腳作為輸出。? INT1–端口D,Bit3INT1,外部中斷1。但是PORTD0仍然控制上拉電阻 復(fù)位電路復(fù)位時(shí)所有的I/O寄存器都被設(shè)置為初始值,程序從復(fù)位向量處開始執(zhí)行。延遲計(jì)數(shù)器的溢出時(shí)間通過熔絲位SUT與CKSEL設(shè)定。掉電檢測復(fù)位功能使能,且電源電壓低于掉電檢測復(fù)位門限VBOT時(shí)MCU即復(fù)位。(2)I/O時(shí)鐘-I/O時(shí)鐘用于主要的I/O模塊,如定時(shí)器/計(jì)數(shù)器、SPI和USART。(5)ADC時(shí)鐘-ADC具有專門的時(shí)鐘。而且這種模式的頻率范圍比較寬。如附錄C。 按鍵復(fù)位電路復(fù)位之后單片機(jī)對(duì)所有的內(nèi)部寄存器置為初始默認(rèn)值,單片機(jī)的程序指針指向程序存儲(chǔ)器的首地址,也就是程序存儲(chǔ)器的起始地址,使得單片機(jī)從頭開始執(zhí)行程序。功能是產(chǎn)生+12v和12v兩個(gè)電源,提供給RS232串口電平的需要。 Max232引腳圖 Max232引腳圖 Max232 電路設(shè)計(jì)本設(shè)計(jì)使用MAXIM公司的Max232來進(jìn)行單片機(jī)TTL電平和標(biāo)準(zhǔn)DB9電平的轉(zhuǎn)換。 LMD18200外形結(jié)構(gòu)圖 各引腳的功能及原理 LMD18200引腳功能表引腳名稱功能描述11橋臂1,2的自舉輸入電容連接端在腳1與腳腳10與腳11之間應(yīng)接入10uF的自舉電容10H橋輸出端5PWM信號(hào)輸入端PWM信號(hào)與驅(qū)動(dòng)電流方