Для программирования скопируйте в блокнот и сохраните с расширением .HEX

Прошивка:

:020000020000FC

:020000000FC02F

:100020000FED0DBF08E107BB00E001BB34EC29E098

:1000300002E00EBDC49AC39A41E090E090E010E067

:10004000D0E07FC060E06DBD60E06CBD089500E46D

:1000500008BF08B742FD06C06DB5B61731F06DB5E3

:10006000B61710F006FFF5CF08956CB56C1788F33E

:1000700041E06C17CCF7089488941795D79588942D

:100080001795D7950895C39ADCB51DB5D30F121FE8

:100090001BBDDABD44E0DBDFC39840E00895D2DF4A

:1000A000C498B22FC32F04D040FFFDCF40E0089585

:1000B000C39A82E370E0A80F971F9BBDAABDC7DF5C

:1000C00040FD08C0C39882E370E0A80F971F9BBD56

:1000D000AABDBDDF0895CCB5BDB5C30FB21FACB589

:1000E0009DB504D040FFFDCF40E00895C49A82E35F

:1000F00070E0A80F971F9BBDAABDA9DF40FD08C0F7

:10010000C49882E370E0A80F971F9BBDAABD9FDF34

:100110000895C49ADCB51DB5D30F121F44E01BBD72

:10012000DABD95DF40E0C4980895DCB51DB5A3DFC6

:100130003D2F212FD0E010E090E0A0E0C0E0B0E043

:100140000895459BFECF40FFF0DF40E0A8DF9BDF36

:0A0150004599FECFC0DFDDDFF4CFDC

:00000001FF

Исходник:

.INCLUDE "2313def.inc"

.EQU HIGHTFREQ=4000

.EQU HIGHTFREQTIME=4000000/HIGHTFREQ

.EQU CDDRB=0b00011000 ; настраиваем входы/выходы

.EQU CDDRD=0b00000000

.EQU PUTTCCR1B=0b00000010 ; настраиваем контрольный регистр таймера, устанавливаем делитель

.EQU FIRSTFREQ=10000/4 ; начальная частота

.EQU SMALLPERIOD0=50;HIGHTFREQTIME ; частота для промежуточных импульсов длительность нуля

.EQU SMALLPERIOD1=50;HIGHTFREQTIME ; частота для промежуточных импульсов длительность единицы

;Variable

.DEF smallperiodh=r23

.DEF smallperiodl=r24

.DEF smallth=r25 ;

.DEF smalltl=r26

.DEF periodh=r18 ; значение 1/4 периода

.DEF periodl=r19

.DEF temp=r16

.DEF temph=r17

.DEF templ=r29

.DEF tempi=r22

.DEF timeh=r27; значение компаратора

.DEF timel=r28

.DEF flag=r20 ; need in for correct initilization

; Program