亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? decoder.asm

?? DTMF的ASM解碼程序(效率非常高)
?? ASM
字號:
; decoder.asm
; Decoding a DTMF tone with Goertzel Algorithm

; specify module and ROM routine definition files
$include (maxq20ms10xf.inc)  
$include (utilityrom.inc)

; MCNT control bits
MSIG     equ 000h    ; signed operation
MUNS     equ 001h    ; unsigned operation
MACC     equ 002h    ; accumulate
MNEG     equ 004h    ; negate result
M1OP     equ 008h    ; one operand mode
MSQU     equ 010h    ; sqr mode
MCLD     equ 020h    ; clear data
MMCW     equ 040h    ; dont update MC

; coefficient for the Goertzel algorithm
a1       equ 001A5h  ; 1.65 * 2^8; a1 value for f=770Hz, Fs=8000Hz
D1       equ 00h     ; address of D1
D2       equ D1+1    ; address of D2
result   equ 00Fh    ; pointer to accumulated power result 
loop_cnt equ 205

    org 000h
Main:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   System Initialization
;   1. initialize A[0] as the active accumulator
;   2. set all data pointer to word mode
;   3. set up DP[1] to point to input samples
;      (input samples are pre-downloaded onto program memory.
;      If samples are available elsewhere, e.g. from other 
;      peripherals, modify to point to relevant input source)
;   4. set up result pointer and loop counter
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    move APC, #00h           ; set A[0] as the active accumulator
    move DPC, #1Ch           ; set all data pointer to word mode
  
    move ACC, #x             ; map code space to data space 
    add  #8000h
    move DP[1], ACC          ; DP[1] -> input samples
    move A[1], #result       ; A[1] -> power results
    move LC[0], #loop_cnt    ; LC[0] -> number of samples


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   Goertzel Algorithm Decoder Routine
;        D0=X = ai*D1-D2
;        D2=D1, D1=D0
;
;   Input:
;     DP[1] -> sample input
;     LC[0] -> loop_cnt
;   Output:
;     DP[1] updated to point to next sample input
;
;   Implementation:
;     1. initialize the MAC unit
;     2. get input sample
;     3. carry out the Goertzel Algorithm
;     4. calculate power information
;        This step does not need to be perform on every sample
;        It is done here for demonstration purpose
;        
;     Note: the input samples are keep to 8 bits value so that
;        all MAC operation can be kept to 16x16 operation.
;        both a1 and D2 are scaled accordingly to facilitate 
;        MAC operation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DECODER_LOOP:              

    move    MCNT, #(MSIG+MACC+MCLD); initialized MAC unit
    move MA, #100h		     ; MA = 2^8

    move DP[1], DP[1]        ; activate DP[1]
    lcall   UROM_moveDP1inc  ; get input samples, DP[0]->next input
    move MB, GR              ; MB = x, MC=x

    move DP[0], #D1          ; DP[0]-> D1 
    move MA, #a1		   	 ; MA = a1
    move MB, @DP[0]++  		 ; MB = D1, MC=x+a1*D1, DP[0]->D2
    move MA, #0FF00h		 ; MA = -2^8
    move MB, @DP[0]--		 ; MB = D2, MC=x+a1*D1-D2, DP[0]->D1
 
    move ACC, @DP[0]++       ; ACC = D1, DP[0]->D2
    move @DP[0], ACC         ; D2 = ACC = D1

    move GR, MC0             ; retrieve D0 from MC
    move GRL, MC1
    move @--DP[0], GRS       ; D1=D0, DP[0]->D1
    call CALC_P              ; Optional, can call this routine after 
                             ; the loop

    djnz  LC[0], DECODER_LOOP
    nop


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;   Calculate power of intender frequency in the sample
;     D1^2+D2^2-a1*D1*D2
;
;   Input:
;        DP[0] -> D1
;        A[1]  -> address of last power value
;   Output:
;        A[1] updated to point to next sample input
;
;   Implementation:
;        1. initialize the MAC unit
;        2. power calculation
;        3. store the resulting power value as a 4 byte value
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CALC_P:                      ; calculate power
 
    move MCNT,  #(MSIG+MCLD) ; initialized MAC unit
    
    move MA, #a1		     ; MA = a1
    move MB, @DP[0]++  		 ; MB = D1, MC=a1*D1, DP[0]->D2
    nop                      ; wait for MAC result

    move GR, MC0             ; retrieve a1*D1 from MC
    move GRL, MC1

    move MCNT, #(MSIG+MNEG)  ; negate MAC result
    move MA, GRS             ; MA = a1*D1
    move MB, @DP[0]--		 ; MB = D2, MC=-a1*D1*D2, DP[0]->D1

    move MCNT,  #(MSIG+MACC+MSQU); change to square and accumulate mode
    move MA, @DP[0]++        ; MA = D1, MC = D1^2-a1*D1*D2, DP[0]->D2
    move MA, @DP[0]          ; MA = D2, MC = D1^2+D2^2-a1*D1*D2

    move DP[0], A[1]         ; DP[0] -> result
    move GR, MC1             ; store power as 4 bytes value in big-endian format
    move @++DP[0], GRS
    move GR, MC0
    move @++DP[0], GRS
    move A[1], DP[0]         ; update A[1] to last result pointer
    ret
 
    org 100h
    ; input sample - 770 Hz sine wave
x:
 dw  000000h, 000039h, 00005eh, 000061h, 000042h, 00000ch, 00ffd1h, 00ffa7h, 00ff9dh, 00ffb6h,
 dw  00ffe9h, 000024h, 000053h, 000064h, 000052h, 000023h, 00ffe7h, 00ffb4h, 00ff9dh, 00ffa8h,
 dw  00ffd3h, 00000dh, 000043h, 000061h, 00005dh, 000038h, 00fffeh, 00ffc6h, 00ffa2h, 00ff9fh,
 dw  00ffbfh, 00fff6h, 000030h, 000059h, 000063h, 000049h, 000016h, 00ffdah, 00ffach, 00ff9ch,
 dw  00ffafh, 00ffdfh, 00001ah, 00004dh, 000064h, 000057h, 00002ch, 00fff1h, 00ffbch, 00ff9eh,
 dw  00ffa4h, 00ffcah, 000003h, 00003bh, 00005fh, 000060h, 000040h, 000009h, 00ffceh, 00ffa6h,
 dw  00ff9dh, 00ffb8h, 00ffech, 000027h, 000054h, 000064h, 000050h, 000020h, 00ffe4h, 00ffb2h,
 dw  00ff9ch, 00ffaah, 00ffd5h, 000010h, 000046h, 000062h, 00005ch, 000035h, 00fffbh, 00ffc3h,
 dw  00ffa1h, 00ffa0h, 00ffc1h, 00fff9h, 000033h, 00005bh, 000063h, 000047h, 000013h, 00ffd8h,
 dw  00ffabh, 00ff9ch, 00ffb1h, 00ffe2h, 00001dh, 00004fh, 000064h, 000056h, 000029h, 00ffeeh,
 dw  00ffb9h, 00ff9eh, 00ffa5h, 00ffcch, 000006h, 00003eh, 000060h, 00005fh, 00003dh, 000005h,
 dw  00ffcch, 00ffa5h, 00ff9eh, 00ffbah, 00ffefh, 00002ah, 000056h, 000064h, 00004eh, 00001dh,
 dw  00ffe1h, 00ffb1h, 00ff9ch, 00ffabh, 00ffd8h, 000014h, 000048h, 000063h, 00005ah, 000032h,
 dw  00fff8h, 00ffc1h, 00ffa0h, 00ffa1h, 00ffc4h, 00fffch, 000036h, 00005ch, 000062h, 000045h,
 dw  000010h, 00ffd5h, 00ffa9h, 00ff9ch, 00ffb3h, 00ffe5h, 000020h, 000050h, 000064h, 000054h,
 dw  000026h, 00ffebh, 00ffb7h, 00ff9dh, 00ffa6h, 00ffcfh, 000009h, 000040h, 000060h, 00005eh,
 dw  00003bh, 000002h, 00ffc9h, 00ffa3h, 00ff9eh, 00ffbch, 00fff2h, 00002dh, 000058h, 000063h,
 dw  00004ch, 00001ah, 00ffdeh, 00ffafh, 00ff9ch, 00ffadh, 00ffdbh, 000017h, 00004ah, 000063h,
 dw  000059h, 00002fh, 00fff5h, 00ffbeh, 00ff9fh, 00ffa2h, 00ffc6h, 00ffffh, 000038h, 00005dh,
 dw  000061h, 000043h, 00000dh, 00ffd2h, 00ffa8h, 00ff9dh, 00ffb5h, 00ffe8h, 000023h, 000052h,
 dw  000064h, 000052h, 000023h, 00ffe8h, 00ffb5h,


End

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91在线一区二区| 91麻豆高清视频| 国产suv一区二区三区88区| 99re成人精品视频| 精品免费视频.| 亚洲欧美视频在线观看视频| 韩国理伦片一区二区三区在线播放| 成人精品视频一区二区三区尤物| 国产精品久久久久永久免费观看| 亚洲国产欧美在线人成| 91福利视频在线| 久久综合给合久久狠狠狠97色69| 亚洲精品视频在线观看网站| 国产成人aaa| 日韩免费一区二区三区在线播放| 亚洲一二三专区| 色综合久久久久综合体桃花网| 国产精品久久久久7777按摩| 一区二区三区四区激情| 国产成人精品在线看| 精品国产不卡一区二区三区| 日韩精品色哟哟| 欧美日韩三级一区二区| 亚洲精品欧美激情| 91亚洲国产成人精品一区二三| 久久精品无码一区二区三区| 日韩av成人高清| 在线影院国内精品| 国产欧美一区二区三区网站| 精品一区二区三区在线视频| 制服丝袜中文字幕亚洲| 午夜精品国产更新| 欧美日韩一区中文字幕| 亚洲第一激情av| 精品视频一区二区三区免费| 亚洲一区二区黄色| 欧美日韩一区二区三区高清| 午夜电影久久久| 国产日韩av一区| 东方aⅴ免费观看久久av| 欧美国产激情一区二区三区蜜月| 成人影视亚洲图片在线| 国产精品国产精品国产专区不蜜| 91丨porny丨首页| 亚洲一区二区四区蜜桃| 欧美理论电影在线| 精品影院一区二区久久久| 欧美精品一区二区三区四区| 国产激情精品久久久第一区二区| 中文字幕欧美激情一区| 色哟哟精品一区| 天天综合色天天| 久久亚洲精华国产精华液| 国产一区久久久| 日韩精品在线网站| 日本视频在线一区| 欧美精品一区二区久久婷婷| 成人免费不卡视频| 一区二区三区丝袜| 欧美一区二区女人| 国产成人免费9x9x人网站视频| 亚洲美女偷拍久久| 1024精品合集| 在线视频欧美区| 蜜桃av噜噜一区| 中文字幕高清一区| 欧美偷拍一区二区| 国产酒店精品激情| 亚洲激情第一区| 日韩一区二区三区高清免费看看| 国产精品影视在线观看| 亚洲欧美日韩国产成人精品影院| 884aa四虎影成人精品一区| 成人av在线观| 欧美影院午夜播放| 青青草国产精品97视觉盛宴| 久久精品欧美一区二区三区麻豆| 欧美性受xxxx| 国产成人亚洲综合a∨婷婷图片| 亚洲一区二区在线视频| 精品日韩欧美一区二区| 在线观看免费成人| 国产精品 欧美精品| 亚洲福利一二三区| 亚洲欧洲无码一区二区三区| 日韩三级视频在线观看| 欧洲在线/亚洲| 国产精品中文字幕日韩精品| 不卡一区二区三区四区| 日韩成人精品在线| 亚洲欧美经典视频| 久久人人爽人人爽| 精品视频123区在线观看| av影院午夜一区| 国产成人在线看| 极品瑜伽女神91| 免费观看30秒视频久久| 亚洲成人在线网站| 亚洲自拍偷拍av| 亚洲精品videosex极品| 久久精品免费在线观看| 日韩欧美精品在线| 日韩午夜在线播放| 91麻豆精品久久久久蜜臀| 欧美私人免费视频| 欧美性生活久久| 在线亚洲+欧美+日本专区| 91亚洲永久精品| av中文字幕亚洲| 91在线观看一区二区| 懂色av一区二区夜夜嗨| 国产99久久久国产精品潘金| 91精品国产综合久久香蕉麻豆| 欧美激情在线一区二区| 正在播放亚洲一区| 欧美精品色综合| 欧美精品一二三四| 日韩一区二区免费在线观看| 69精品人人人人| 欧美电影免费提供在线观看| 亚洲欧美电影院| 亚洲国产日韩综合久久精品| 亚洲五码中文字幕| 午夜精品爽啪视频| 偷偷要91色婷婷| 免费欧美高清视频| 国产在线观看免费一区| 国产91色综合久久免费分享| 国产91精品免费| 色综合久久天天综合网| 欧美日韩一区二区在线观看视频| 欧美久久久一区| 日韩欧美国产一区二区在线播放| 久久美女艺术照精彩视频福利播放| 久久久久久久综合色一本| 国产精品久久久久一区二区三区 | 成人听书哪个软件好| 国产美女精品一区二区三区| 成人精品视频一区二区三区| 91亚洲精华国产精华精华液| 欧美嫩在线观看| 久久久久国产成人精品亚洲午夜| 日韩美女啊v在线免费观看| 日韩黄色在线观看| 国产成人av一区| 欧美日韩国产a| 国产日韩欧美在线一区| 亚洲欧美日韩系列| 狠狠色伊人亚洲综合成人| 日本欧美大码aⅴ在线播放| 国产美女视频91| 成人h动漫精品一区二区| 欧美国产在线观看| 亚洲欧美色综合| 开心九九激情九九欧美日韩精美视频电影 | 亚洲国产综合人成综合网站| 久久国内精品自在自线400部| 粉嫩av一区二区三区在线播放| 欧美视频日韩视频在线观看| 国产亚洲精品aa| 日韩精品一区第一页| 成人精品视频一区二区三区尤物| 欧美日韩成人综合天天影院| 日本一二三不卡| 日韩中文字幕麻豆| av亚洲产国偷v产偷v自拍| 日韩亚洲欧美一区二区三区| 亚洲激情自拍偷拍| 国产a视频精品免费观看| 91精品国产一区二区| 亚洲精品成人精品456| 高清不卡在线观看| 国产成人在线影院| 色悠悠久久综合| 久久一区二区三区四区| 亚洲黄色小视频| 粉嫩蜜臀av国产精品网站| 欧美电影免费提供在线观看| 一个色综合av| eeuss国产一区二区三区| 亚洲人成精品久久久久| 国产一区二区电影| 91精品国产综合久久福利| 亚洲小说欧美激情另类| 99精品国产99久久久久久白柏 | 成人综合在线网站| 精品免费99久久| 奇米影视7777精品一区二区| 欧美日韩中文字幕精品| 亚洲激情在线播放| 成人高清免费在线播放| 国产婷婷色一区二区三区 | 欧美成人一区二区三区片免费| 一区二区三区四区精品在线视频 | 久久99国产精品尤物| 91精品国产高清一区二区三区蜜臀| 亚洲高清视频中文字幕| 91成人在线精品| 亚洲自拍偷拍网站| 在线精品视频小说1|