sincnt equ 10h oldset equ 11h sintabh equ 12h sintabl equ 13h rcap2h equ 0cbh rcap2l equ 0cah ljmp start db '3456789abcdef0123456789abcdef0123456789a' tim2: push acc push psw push dpl push dph clr 0cfh ;tf2 clr p1.0 mov a,sincnt inc a anl a,#3fh mov sincnt,a mov dph,sintabh mov dpl,sintabl movc a,@a+dptr mov 0fah,a ;CCAP0H setb p1.0 pop dph pop dpl pop psw pop acc reti start: mov sincnt,#0 mov oldset,#0ffh mov sp,#50h mov 08fh,#021h mov 0d9h,#2 ;CMOD mov 0fah,#040h ;CCAP0H mov 0eah,#040h ;CCAP0L mov 0d8h,#040h ;CCON - start counter mov 0dah,#042h ;CCAPM0 mov 0cbh,#0fbh ;rcap2h mov 0cdh,#0fbh ;th2 mov 0cah,#01eh ;rcap2l mov 0cch,#01eh ;tl2 mov 0c9h,#1 ;t2mod mov 0c8h,#4 ;t2con mov 0a8h,#0a0h ;IEN0 loop: mov a,p2 anl a,#0fh mov r0,a xrl a,oldset jz loop mov a,r0 mov oldset,a mov dptr,#rcaptab rl a push acc movc a,@a+dptr mov rcap2h,a pop acc inc a movc a,@a+dptr mov rcap2l,a clr a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a clr c mov a,r0 rlc a mov r0,a mov a,r1 rlc a mov r1,a mov dptr,#sin0 mov a,dpl add a,r0 mov sintabl,a mov a,dph addc a,r1 mov sintabh,a jmp loop rcaptab: db 0F6h,0D6h ; 26,6483 Hz db 0F7h,013h ; 27,35940573 Hz db 0F7h,056h ; 28,18236444 Hz db 0F7h,09Eh ; 29,1340153 Hz db 0F7h,0ECh ; 30,23345776 Hz db 0F8h,040h ; 31,50225031 Hz db 0F8h,098h ; 32,9645822 Hz db 0F8h,0F4h ; 34,64739261 Hz db 0F9h,053h ; 36,58040042 Hz db 0F9h,0B5h ; 38,7959919 Hz db 0FAh,017h ; 41,32889126 Hz db 0FAh,07Ah ; 44,21550889 Hz db 0FAh,0DCh ; 47,49282013 Hz db 0FBh,03Bh ; 51,19657042 Hz db 0FBh,096h ; 55,35852416 Hz db 0FBh,0EEh ; 60,002368 Hz sin0: db 127 db 131 db 134 db 138 db 141 db 144 db 147 db 150 db 153 db 155 db 157 db 159 db 161 db 162 db 163 db 163 db 163 db 163 db 163 db 162 db 161 db 159 db 157 db 155 db 153 db 150 db 147 db 144 db 141 db 138 db 134 db 131 db 127 db 123 db 120 db 116 db 113 db 110 db 107 db 104 db 101 db 99 db 97 db 95 db 93 db 92 db 91 db 91 db 91 db 91 db 91 db 92 db 93 db 95 db 97 db 99 db 101 db 104 db 107 db 110 db 113 db 116 db 120 db 123 sin1: db 127 db 131 db 135 db 138 db 142 db 145 db 149 db 152 db 155 db 157 db 159 db 161 db 163 db 164 db 165 db 166 db 166 db 166 db 165 db 164 db 163 db 161 db 159 db 157 db 155 db 152 db 149 db 145 db 142 db 138 db 135 db 131 db 127 db 123 db 119 db 116 db 112 db 109 db 105 db 102 db 99 db 97 db 95 db 93 db 91 db 90 db 89 db 88 db 88 db 88 db 89 db 90 db 91 db 93 db 95 db 97 db 99 db 102 db 105 db 109 db 112 db 116 db 119 db 123 sin2: db 127 db 131 db 135 db 139 db 143 db 147 db 150 db 154 db 157 db 159 db 162 db 164 db 166 db 167 db 168 db 169 db 169 db 169 db 168 db 167 db 166 db 164 db 162 db 159 db 157 db 154 db 150 db 147 db 143 db 139 db 135 db 131 db 127 db 123 db 119 db 115 db 111 db 107 db 104 db 100 db 97 db 95 db 92 db 90 db 88 db 87 db 86 db 85 db 85 db 85 db 86 db 87 db 88 db 90 db 92 db 95 db 97 db 100 db 104 db 107 db 111 db 115 db 119 db 123 sin3: db 127 db 131 db 136 db 140 db 144 db 148 db 152 db 156 db 159 db 162 db 165 db 167 db 169 db 170 db 171 db 172 db 172 db 172 db 171 db 170 db 169 db 167 db 165 db 162 db 159 db 156 db 152 db 148 db 144 db 140 db 136 db 131 db 127 db 123 db 118 db 114 db 110 db 106 db 102 db 98 db 95 db 92 db 89 db 87 db 85 db 84 db 83 db 82 db 82 db 82 db 83 db 84 db 85 db 87 db 89 db 92 db 95 db 98 db 102 db 106 db 110 db 114 db 118 db 123 sin4: db 127 db 132 db 137 db 141 db 146 db 150 db 154 db 158 db 161 db 165 db 168 db 170 db 172 db 174 db 175 db 176 db 176 db 176 db 175 db 174 db 172 db 170 db 168 db 165 db 161 db 158 db 154 db 150 db 146 db 141 db 137 db 132 db 127 db 122 db 117 db 113 db 108 db 104 db 100 db 96 db 93 db 89 db 86 db 84 db 82 db 80 db 79 db 78 db 78 db 78 db 79 db 80 db 82 db 84 db 86 db 89 db 93 db 96 db 100 db 104 db 108 db 113 db 117 db 122 sin5: db 127 db 132 db 137 db 142 db 147 db 152 db 156 db 160 db 164 db 168 db 171 db 173 db 176 db 177 db 179 db 179 db 180 db 179 db 179 db 177 db 176 db 173 db 171 db 168 db 164 db 160 db 156 db 152 db 147 db 142 db 137 db 132 db 127 db 122 db 117 db 112 db 107 db 102 db 98 db 94 db 90 db 86 db 83 db 81 db 78 db 77 db 75 db 75 db 74 db 75 db 75 db 77 db 78 db 81 db 83 db 86 db 90 db 94 db 98 db 102 db 107 db 112 db 117 db 122 sin6: db 127 db 133 db 138 db 144 db 149 db 154 db 159 db 163 db 167 db 171 db 174 db 177 db 180 db 182 db 183 db 184 db 184 db 184 db 183 db 182 db 180 db 177 db 174 db 171 db 167 db 163 db 159 db 154 db 149 db 144 db 138 db 133 db 127 db 121 db 116 db 110 db 105 db 100 db 95 db 91 db 87 db 83 db 80 db 77 db 74 db 72 db 71 db 70 db 70 db 70 db 71 db 72 db 74 db 77 db 80 db 83 db 87 db 91 db 95 db 100 db 105 db 110 db 116 db 121 sin7: db 127 db 133 db 139 db 145 db 151 db 156 db 161 db 166 db 171 db 175 db 179 db 182 db 184 db 186 db 188 db 189 db 189 db 189 db 188 db 186 db 184 db 182 db 179 db 175 db 171 db 166 db 161 db 156 db 151 db 145 db 139 db 133 db 127 db 121 db 115 db 109 db 103 db 98 db 93 db 88 db 83 db 79 db 75 db 72 db 70 db 68 db 66 db 65 db 65 db 65 db 66 db 68 db 70 db 72 db 75 db 79 db 83 db 88 db 93 db 98 db 103 db 109 db 115 db 121 sin8: db 127 db 134 db 140 db 147 db 153 db 159 db 164 db 170 db 175 db 179 db 183 db 186 db 189 db 191 db 193 db 194 db 194 db 194 db 193 db 191 db 189 db 186 db 183 db 179 db 175 db 170 db 164 db 159 db 153 db 147 db 140 db 134 db 127 db 120 db 114 db 107 db 101 db 95 db 90 db 84 db 79 db 75 db 71 db 68 db 65 db 63 db 61 db 60 db 60 db 60 db 61 db 63 db 65 db 68 db 71 db 75 db 79 db 84 db 90 db 95 db 101 db 107 db 114 db 120 sin9: db 127 db 134 db 141 db 148 db 155 db 162 db 168 db 174 db 179 db 184 db 188 db 192 db 195 db 197 db 199 db 200 db 200 db 200 db 199 db 197 db 195 db 192 db 188 db 184 db 179 db 174 db 168 db 162 db 155 db 148 db 141 db 134 db 127 db 120 db 113 db 106 db 99 db 92 db 86 db 80 db 75 db 70 db 66 db 62 db 59 db 57 db 55 db 54 db 54 db 54 db 55 db 57 db 59 db 62 db 66 db 70 db 75 db 80 db 86 db 92 db 99 db 106 db 113 db 120 sin10: db 127 db 135 db 143 db 150 db 158 db 165 db 171 db 178 db 184 db 189 db 193 db 198 db 201 db 204 db 205 db 207 db 207 db 207 db 205 db 204 db 201 db 198 db 193 db 189 db 184 db 178 db 171 db 165 db 158 db 150 db 143 db 135 db 127 db 119 db 111 db 104 db 96 db 89 db 83 db 76 db 70 db 65 db 61 db 56 db 53 db 50 db 49 db 47 db 47 db 47 db 49 db 50 db 53 db 56 db 61 db 65 db 70 db 76 db 83 db 89 db 96 db 104 db 111 db 119 sin11: db 127 db 136 db 144 db 152 db 160 db 168 db 176 db 182 db 189 db 195 db 200 db 204 db 208 db 211 db 213 db 214 db 214 db 214 db 213 db 211 db 208 db 204 db 200 db 195 db 189 db 182 db 176 db 168 db 160 db 152 db 144 db 136 db 127 db 118 db 110 db 102 db 94 db 86 db 78 db 72 db 65 db 59 db 54 db 50 db 46 db 43 db 41 db 40 db 40 db 40 db 41 db 43 db 46 db 50 db 54 db 59 db 65 db 72 db 78 db 86 db 94 db 102 db 110 db 118 sin12: db 127 db 136 db 146 db 155 db 164 db 172 db 180 db 188 db 195 db 201 db 207 db 211 db 215 db 219 db 221 db 222 db 223 db 222 db 221 db 219 db 215 db 211 db 207 db 201 db 195 db 188 db 180 db 172 db 164 db 155 db 146 db 136 db 127 db 118 db 108 db 99 db 90 db 82 db 74 db 66 db 59 db 53 db 47 db 43 db 39 db 35 db 33 db 32 db 31 db 32 db 33 db 35 db 39 db 43 db 47 db 53 db 59 db 66 db 74 db 82 db 90 db 99 db 108 db 118 sin13: db 127 db 137 db 147 db 157 db 167 db 176 db 185 db 194 db 201 db 208 db 214 db 220 db 224 db 227 db 230 db 231 db 232 db 231 db 230 db 227 db 224 db 220 db 214 db 208 db 201 db 194 db 185 db 176 db 167 db 157 db 147 db 137 db 127 db 117 db 107 db 97 db 87 db 78 db 69 db 60 db 53 db 46 db 40 db 34 db 30 db 27 db 24 db 23 db 22 db 23 db 24 db 27 db 30 db 34 db 40 db 46 db 53 db 60 db 69 db 78 db 87 db 97 db 107 db 117 sin14: db 127 db 138 db 150 db 160 db 171 db 181 db 191 db 200 db 209 db 216 db 223 db 229 db 234 db 237 db 240 db 242 db 242 db 242 db 240 db 237 db 234 db 229 db 223 db 216 db 209 db 200 db 191 db 181 db 171 db 160 db 150 db 138 db 127 db 116 db 104 db 94 db 83 db 73 db 63 db 54 db 45 db 38 db 31 db 25 db 20 db 17 db 14 db 12 db 12 db 12 db 14 db 17 db 20 db 25 db 31 db 38 db 45 db 54 db 63 db 73 db 83 db 94 db 104 db 116 sin15: db 127 db 139 db 152 db 164 db 176 db 187 db 198 db 208 db 217 db 225 db 233 db 239 db 244 db 249 db 252 db 253 db 254 db 253 db 252 db 249 db 244 db 239 db 233 db 225 db 217 db 208 db 198 db 187 db 176 db 164 db 152 db 139 db 127 db 115 db 102 db 90 db 78 db 67 db 56 db 46 db 37 db 29 db 21 db 15 db 10 db 5 db 2 db 1 db 0 db 1 db 2 db 5 db 10 db 15 db 21 db 29 db 37 db 46 db 56 db 67 db 78 db 90 db 102 db 115 end