ШИМ — широтно-импульсная модуляция (или по англ. PWM). У контроллера ATtiny13 есть два ШИМ выхода OC0A и OC0B от таймера 0. ШИМ выход OC0A на 5 ножке контроллера Attiny13, а OC0B на 6 ножке. В данном примере светоизлучающий диод подключённый к ШИМ выходу OC0B будет плавно загораться и гаснуть.
Вот схема устройства:

Для сборки устройства понадобится:

1.микроконтроллер Attiny13 (с любыми индексом)2. Панелька DIP83. Любой светодиод4. сопротивление 4,7k (допустимо от 2,2кОм до 20кОм)5. сопротивление 150ом
электропитание для устройства должно быть от 3 до 5 вольт. Для питания устройства я применял «литьевую таблетку» на 3 вольта.
программа для устройства написана в средеBASCOM-AVR.
Вот оригинальный код прошивки:
$regfile = "attiny13.dat"
$hwstack = 8
$swstack = 16
$framesize = 16
Config Portb.1 = Output
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down
Start Timer0
Do
Do
Waitms 10
Incr Pwm0b
Loop Until Pwm0b = 255
Do
Waitms 10
Decr Pwm0b
Loop Until Pwm0b = 0
Loop
End
В канал ШИМ допустимо записать значение от 0 до 255.
Вот упрощенный вариант кода управления ШИМ:
$regfile = "attiny13.dat"
Config Portb.1 = Output
Config Timer0 = Pwm , Prescale = 8 , Compare B Pwm = Clear Down
Start Timer0
Pwm0b = 255
End
В данном случае в ШИМ канал OC0B мы запишем число 255. То есть светоизлучающий диод будет гореть постоянно.
Записать значение в ШИМ канал допустимо так:(ШИМ канал) = (Значение от 0 до 255)
Вот такое устройство получилось у меня:

микроконтроллер прошивал программойPonyProg2000.
Вот картинка установки фьюз битов:

Ниже вы можете скачать прошивку, оригинальный код, печатную печатную плату, проект вProteus
- t13pwm.rar(23 Кб)
- Sprint-Layout
- Proteus
- AVR
- микроконтроллер
- ШИМ
- BASCOM-AVR
Комментарии (0)