Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






CodeWizardAVR V1.25.7 beta 5 Standard




Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project: Измеритель частоты сети

Version: от 17 до 120 Гц

Date: 10.11.2008

Author: Шарапов А.В.

Company: ПрЭ

Comments: курсовой проект

Chip type: ATmega16

Program type: Application

Clock frequency: 1,000000 MHz

Memory model: Small

External SRAM size: 0

Data Stack size: 256

*****************************************************/

#include <mega16.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x1B;PORTA

#endasm

#include <lcd.h>

#include <stdio.h>

flash char Decode2Rus[255-192+1]= {

X41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,

XA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,

X50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,

XAC,0xE2,0xAD,0xAE,0xAD,0xAF,0xB0,0xB1,

X61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,

XB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0xBE,

X70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,

XC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7

};

#define _ALTERNATE_PUTCHAR_

Void putchar(char c)

{

if(c>=192) lcd_putchar(Decode2Rus[c-192]); else lcd_putchar(c);

}

// Declare your global variables here

unsigned int period=20000;

unsigned int f=500;

char lcd_buffer[33];// Буфер в ОЗУ для LCD-дисплея

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void)

{

// Place your code here

TCCR1B=0; //останов таймера

period=TCNT1L+256*TCNT1H;

TCNT1H=0;//обнуление таймера

TCNT1L=0;

TCCR1B=0x02;//запуск измерения нового периода

f=(100000000/period+5)/10;

sprintf(lcd_buffer," power circuit frequency %u.%uHz",f/10,f%10);// Подготовка строки для LCD-дисплея

lcd_gotoxy(1,0);// Вывод строки со второй позиции в 1 строке

Lcd_puts(lcd_buffer);

}

Void main(void)

{

// Declare your local variables here

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: 1000,000 kHz

// 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=0x02;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: Off

// INT2: Off

GICR|=0x40;

MCUCR=0x02;

MCUCSR=0x00;

GIFR=0x40;

// LCD module initialization

Lcd_init(16);

// Global enable interrupts

#asm("sei")

While (1)

{

// Place your code here

};}






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных