ساخت ولت متر دیجیتال با میکروکنترلر ARM
در این بخش دانلود پروژه برنامه نویسی و ساخت ولت متر دیجیتال با میکروکنترلر ARM, توسط تیم الکترونیک و برنامه نویسی الکترونیک ۹۸ برای شما علاقه مندان به پروژه های میکروکنترلر ARM با هدف آموزش برنامه نویسی و راه اندازی میکروکنترلرهای ARM آماده شده است. در این پروژه با استفاده از واحد ADC میکروکنترلر AT91SAM7S از خانواده میکروکنترلر های ARM یک ولت متر دیجیتال جهت اندازه گیری ولتاژ 0 تا 30 ولت را طراحی می کنیم. توسط سخت افزار شکل زیر ولتاژ آنالوگ ورودی تضعیف می شود و به مبدل آنالوگ به دیجیتال داده می شود. برای کالیبره کردن ولت متر می توان از پتانسیومتر موجود در طبقه تضعیف کننده ورودی استفاده نمود.
نقشه شماتیک پروژه
برنامه میکروکنترلر به زبان C در نرم افزار IAR Embedded Workbench IDE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#include <Atmel/ioat91sam7s64.h> #include “lcd.h” void main () { //——————–start up————————– AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // AT91C_WDTC_WDDIS=(1<<15) AT91C_BASE_RSTC->RSTC_RMR=0xA5000001; //——————–speed up————————– AT91C_BASE_CKGR->CKGR_MOR = 0xF01; AT91C_BASE_CKGR->CKGR_PLLR = 0x2903FFC; AT91C_BASE_PMC->PMC_MCKR = 0x3; AT91C_BASE_PMC->PMC_SCER = 0x1; //—————————————————– AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_ADC ); // AT91C_ID_ADC=4 AT91C_BASE_PMC->PMC_PCER = ( 1<<AT91C_ID_TC2 ); // AT91C_ID_TC2=14 //—————————————————— unsigned char k; unsigned short i,j; lcd_pininit (16,15,5,6,7,8,26,27,28,29); lcd_init (); AT91C_BASE_ADC->ADC_MR = 0x1000A15; AT91C_BASE_ADC->ADC_CHER = (1<<4); AT91C_BASE_TC2->TC_CMR = 0x9C004; AT91C_BASE_TC2->TC_RA = 11737; AT91C_BASE_TC2->TC_RC = 23474; AT91C_BASE_TC2->TC_CCR = 0x5; lcd_clear (); lcd_gotoxy(0,0); lcd_putsf(“voltage = “); while(1) { while ((AT91C_BASE_ADC->ADC_SR&1<<4)==0); i = AT91C_BASE_ADC->ADC_CDR4&0x3FF; j = (i*300)/255; k = j/10; lcd_gotoxy(0,10); lcd_putsf(” “); lcd_gotoxy(0,10); lcd_puts(k); lcd_putchar(‘.’); k = j%10; lcd_puts(k); lcd_putchar(‘v’); } } |