Модель
Спойлер

Программа на Ассемблере
Спойлер
Код: Выделить всё
Tic EQU -(260-10)
call Timer
MainLoop:
call SIN
jmp MainLoop
Timer:
mov TMOD,#00000001b
ret
Delay:
mov TH0,#high(Tic)
mov TL0,#low(Tic)
setb TR0
jnb TF0,$
clr TF0
clr TR0
ret
SIN:
mov DPTR,#tabl
mov R7,#1
mov R6,#255
K:
CLR A
MOVC A,@A+DPTR
MOV P0,A
CLR A
INC DPTR
MOVC A,@A+DPTR
MOV P2,A
SETB P3.0
NOP
NOP
CLR P3.0
MOV A,DPL
ADD A,R7
MOV DPL,A
JNC NC
INC DPH
NC:
DJNZ R6,K
JMP SIN
RET
tabl:
dw 2047,2097,2147,2198,2248,2297,2347,2397,2446,2495,2544,2593
dw 2641,2689,2736,2783,2830,2876,2922,2967,3011,3055,3099,3142
dw 3184,3225,3266,3306,3345,3383,3421,3458,3494,3529,3563,3596
dw 3629,3660,3691,3720,3748,3776,3802,3828,3852,3875,3897,3918
dw 3938,3956,3974,3990,4005,4019,4032,4044,4054,4064,4072,4078
dw 4084,4088,4091,4093,4094,4093,4092,4089,4084,4079,4072,4064
dw 4055,4045,4033,4020,4006,3991,3975,3958,3939,3919,3898,3876
dw 3853,3829,3804,3778,3750,3722,3693,3662,3631,3599,3565,3531
dw 3496,3460,3424,3386,3348,3308,3268,3228,3186,3144,3102,3058
dw 3014,2970,2925,2879,2833,2786,2739,2692,2644,2596,2547,2498
dw 2449,2400,2350,2301,2251,2201,2151,2100,2050,2000,1950,1900
dw 1850,1800,1750,1700,1651,1602,1553,1504,1456,1408,1361,1314
dw 1267,1221,1175,1130,1085,1041,998,955,913,872,831,791
dw 751,713,675,638,602,567,533,500,467,436,405,376
dw 347,320,293,268,244,221,198,177,158,139,121,105
dw 89,75,62,51,40,31,23,16,10,6,3,1
dw 0,1,2,5,9,15,21,29,38,49,60,73
dw 87,102,118,135,154,173,194,216,239,263,288,315
dw 342,370,400,430,461,493,526,561,596,631,668,706
dw 744,783,823,864,905,947,990,1033,1077,1121,1166,1212
dw 1258,1305,1352,1399,1447,1495,1544,1592,1641,1691,1740,1790
dw 1840,1890,1940,1990
END