Здравствуйте, давайте запрограммируем микросхему Atmega88 и заставим светодиод мигать. Код программы и hex файл можно скачать ниже.
Вариант 1:
Мигать будут все светодиоды на порте С (ножки 23-28).
Код программы:
/*
* LED blink.c
*
* Created: 06.04.2020 21:31:26
* Author : Mudji
*/
#ifndef F_CPU
#define F_CPU 1000000UL // 1 MHz clock speed
#endif
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRC = 0xFF; //Nakes PORTC as Output
while(1) //infinite loop
{
PORTC = 0xFF; //Turns ON All LEDs
_delay_ms(1000); //1 second delay
PORTC= 0x00; //Turns OFF All LEDs
_delay_ms(1000); //1 second delay
}
}
Прошивал с помощью самодельного программатора 4 проводка – как его сделать читайте здесь.
Тамже описано как с помощью данного программатора и бесплатной программы PonyProg прошить любую микросхему AVR.
Для прошивки Вам понадобиться готовый файл hex его можно скачать – здесь.
Схема подключения светодиода:
Вариант 2:
Мигать будет только ножка 23 (RC0)
Скачать файл hex и c – делал на AVRStudio 4 все файлы в архиве:
Скачать zip архив.
Скачать tar.gz архив.
Код на C:
/*
* LED blink.c
*
* Created: 06.04.2020 21:31:26
* Author : Mudji
*/
#include <avr/io.h>
#include "delay.h"
#include "delay.c"
#define F_CPU 16000000UL // 1 MHz clock speed
int main(void)
{
DDRC|=(1<<0); //Nakes PORTC as Output
while(1) //infinite loop
{
PORTC|=(1<<PC0); //Turns ON All LEDs
_delay_ms(1000); //1 second delay
PORTC&=~(1<<PC0);; //Turns OFF All LEDs
_delay_ms(1000); //1 second delay
}
}
——————————
PS: Ещё один код с мигающими светодиодами на выходах PB0,PB1,PB2 скачать hex – здесь.
Код файла на С:
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 1000000UL //processor frequency 1MHz
#include <util/delay.h>
#include <stdbool.h>
#define output_low(port,pin) port &= ~(1<<pin)
#define output_high(port,pin) port |= (1<<pin)
#define set_input(portdir,pin) portdir &= ~(1<<pin)
#define set_output(portdir,pin) portdir |= (1<<pin)
int main(void)
{
set_output(DDRB, PB0);
set_output(DDRB, PB1);
set_output(DDRB, PB2);
output_high(PORTB, PB0);
output_high(PORTB, PB1);
output_high(PORTB, PB2);
while(1);
return 0;
}
Как сделать из кода С – hex файл в картинках в MPLAB X IDE v6.00:


















