Chƣơng trình hiển thị điện áp.

Một phần của tài liệu Xây dựng bộ điều chỉnh điện áp xoay chiều 3 pha (Trang 58 - 63)

: là độ chênh lệch nhiệt độ so với môi trường

3.3.3.2. Chƣơng trình hiển thị điện áp.

Ngôn ngữ để lập trình cho AVR là ngôn ngữ lập trình C. Dưới đây

là chương trình hiển thị điện áp được nạp vào vi điều khiển AVR.

Code LCD

#include <mega8.h>

// Alphanumeric LCD Module functions #asm

.equ lcd_port=0x12 ;PORTD #endasm

#include <lcd.h> #include <delay.h>

#define ADC_VREF_TYPE 0x40 // Read the AD conversion result

unsigned int read_adc(unsigned char adc_input) {

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage delay_us(10);

// Start the AD conversion ADCSRA|=0x40;

// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10; return ADCW; }

// Declare your global variables here void so(unsigned int x)

{ int i; char m[3]; for(i=0;i<=2;i++) { m[i]=x%10; x=x/10; } for(i=2;i>=0;i--) { lcd_putchar(m[i]+0x30); } }

unsigned int f, von; void main(void) {

// Declare your local variables here // Input/Output Ports initialization // Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x00; DDRB=0x00;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00; DDRD=0x00;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon.

// OC1B output: Discon. // Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh

// OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off

// INT1: Off MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// Analog Comparator initialization // Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 62.500 kHz // ADC Voltage Reference: AVCC pin ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x87; // LCD module initialization lcd_init(16); while (1) {

// Place your code here f=read_adc(5);

delay_ms(500); von=f*0.2494; lcd_gotoxy(0,0);

lcd_putsf("Dien Ap Do Hien Tai:"); lcd_gotoxy(5,1);

so(von);

lcd_gotoxy(8,1); lcd_putsf("(V)");

delay_ms(300); };

}

Một phần của tài liệu Xây dựng bộ điều chỉnh điện áp xoay chiều 3 pha (Trang 58 - 63)

Tải bản đầy đủ (DOCX)

(68 trang)
w