Симулятор AVR ATmega8
Программная модель ядра AVR: все команды ATmega8, 32 регистра общего назначения, 1 КБ ОЗУ, таймеры Timer0, Timer1 и Timer2 с ШИМ, прерывания, UART с терминалом, АЦП на шести каналах и EEPROM. Загрузите .hex — свой, из проекта раздела или готовое демо — и выполняйте программу по шагам, наблюдая выводы, регистры и память.
Загрузка программы
Программа не загружена — начните с готового демо.
Управление
Выводы микроконтроллера
PORTB · PB7 … PB0 (PB1 = OC1A, PB2 = OC1B, PB3 = OC2) PORTC · PC6 … PC0 (входы АЦП) PORTD · PD7 … PD0 (PD0/PD1 = UART, PD2 = INT0, PD3 = INT1)Вывод, настроенный на выход, горит как светодиод; при ШИМ яркость соответствует скважности. Вывод-вход подсвечен пунктиром — нажмите на него, чтобы переключить уровень (имитация кнопки). По умолчанию входы подтянуты к «1».
Терминал UART
буфер приёма пуст
АЦП — напряжения на входах
Ползунки задают код АЦП 0…1023, что при опорном напряжении 5 В соответствует показанному напряжению на выводе ADC0…ADC5 (PC0…PC5).
Регистры r0 … r31
ОЗУ 0x0060 … 0x015F
Программа
Щелчок по строке ставит или снимает точку останова. Текущая команда подсвечена. Адреса — в словах, как в дизассемблере AVR.
Регистры ввода-вывода
Что моделируется
Ядро — ATmega8: полный набор команд (включая MUL, MOVW, LPM, косвенную адресацию через X, Y, Z со смещением), стек в ОЗУ, все флаги SREG. Периферия: порты B, C, D с регистрами направления и подтяжками; Timer0; Timer1 в режимах Normal, CTC и Fast PWM с выходами OC1A и OC1B; Timer2 с OCR2; система прерываний с полной таблицей векторов ATmega8, включая INT0 и INT1 по фронту или уровню; UART на передачу и приём; АЦП на шесть каналов; EEPROM на 512 байт.
Не моделируются: SPI, TWI (I²C), аналоговый компаратор, сторожевой таймер и режимы энергосбережения глубже простого SLEEP. Программы для ATmega16, ATmega32 и ATmega328 обычно выполняются, но их дополнительные регистры и выводы отсутствуют.
Связанные инструменты: симулятор PIC16F84A, расчёт UBRR, разбор Intel HEX, конструктор регистра.