版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題目一:正弦波信號(hào)發(fā)生器</p><p> 設(shè)計(jì)題目:正弦波信號(hào)發(fā)生器</p><p> 設(shè)計(jì)目的: 1、掌握正弦波發(fā)生器的工作原理</p><p> 2、掌握如何用匯編語(yǔ)言實(shí)現(xiàn)正弦波信號(hào)發(fā)生器</p><p> 3、熟悉CCS操作環(huán)境</p><p> 三、設(shè)計(jì)要求: 1、用匯編語(yǔ)言設(shè)
2、計(jì)一個(gè)正弦波信號(hào)發(fā)生器</p><p> 2、在CCS環(huán)境下實(shí)現(xiàn)正弦信號(hào)發(fā)生器</p><p><b> 四、設(shè)計(jì)原理:</b></p><p> 正弦波信號(hào)發(fā)生器已被廣泛地應(yīng)用于通信、儀器儀表和工業(yè)控制等領(lǐng)域的信號(hào)處理系統(tǒng)中。通常有兩種方法可以產(chǎn)生正弦波,分別為查表法和泰勒級(jí)數(shù)展開(kāi)法。查表法主要用于精度要求不是很高的場(chǎng)合,而泰勒級(jí)數(shù)展開(kāi)
3、法是一種比查表法更為有效的方法,它能精確地計(jì)算出一個(gè)角度的正弦值和余弦值,且只需較小的存儲(chǔ)空間。</p><p><b> 五、正弦波的實(shí)現(xiàn)</b></p><p> 利用計(jì)算一個(gè)角度的正弦值和余弦值可實(shí)現(xiàn)正弦波。其實(shí)現(xiàn)步驟如下:</p><p> 第一步:利用sin_start和cos_start子程序,計(jì)算0~45(間隔為0.5)的正
4、弦值和余弦值;</p><p> 第二部:利用sin(2x)=2sin(x)cos(x)公式,計(jì)算0~90的正弦值(間隔為1);</p><p> 第三部:通過(guò)復(fù)制,獲得0~359的正弦值;</p><p> 第四步:將0~359的正弦值重復(fù)從PA口輸出,便可得到正弦波。產(chǎn)生正弦波源程序清單sin.asm:</p><p> .tit
5、le “sin.asm”</p><p><b> .mmregs</b></p><p> .def start</p><p> .def d_xs,d_sinx,d_xc,d_cosx,sinx,cosx</p><p> sin_x: .usect "sin_x"
6、;,360</p><p> STACK: .usect "STACK",10H</p><p> k_theta .set 286 ;theta=pi/360(0.5deg)</p><p><b> start:</b></p><p><
7、b> .text</b></p><p> STM #STACK+10H,SP</p><p> STM k_theta,AR0</p><p> STM 0,AR1</p><p> STM #sin_x,AR6</p><p> STM #90,BRC</p&
8、gt;<p> RPTB loop1-1</p><p> LDM AR1,A</p><p> LD #d_xs,DP</p><p> STL A,@d_xs</p><p> STL A,@d_xc</p><p> CALL sinx
9、 ;d_sinx=sin(x)</p><p> CALL cosx ;d_cosx=cos(x)</p><p> LD #d_sinx,DP</p><p> LD @d_sinx,16,A ;A=sin(x)</p><p> MPYA @d_cosx ;B=si
10、n(x)*cos(x)</p><p> STH B,1,*AR6+ ;AR6----2*sin(x)</p><p> MAR *AR1+0</p><p> loop1: STM #sin_x+89, AR7 ;sin91(deg.)-sin179(deg.)</p><p> STM #
11、88,BRC</p><p> RPTB loop2-1</p><p> LD *AR7-,A</p><p> STL A,*AR6+</p><p> loop2: STM #179,BRC ;sin180(deg.)-sin359(deg.)</p><p> S
12、TM #sin_x,AR7</p><p> RPTB loop3-1</p><p> LD *AR7+,A</p><p><b> NEG A</b></p><p> STL A,*AR6+</p><p> loop3: STM #sin_x,AR
13、6 ;generate sin wave</p><p> STM #1,AR0</p><p> STM #360,BK</p><p> B loop3</p><p><b> sinx:</b></p><p> .def d_xs,d_sinx&l
14、t;/p><p><b> .data</b></p><p> table_s .word 01C7H ;C1=1/(8*9)</p><p> .word 030BH ;C2=1/(6*7)</p><p> .word 0666H ;C3=1/(
15、4*5)</p><p> .word 1556H ;C4=1/(2*3)</p><p> d_coef_s .usect "coef_s",4</p><p> d_xs .usect "sin_vars",1</p><p> d_squr_x
16、s .usect "sin_vars",1</p><p> d_temp_s .usect "sin_vars",1</p><p> d_sinx .usect "sin_vars",1</p><p> d_l_s .usect "sin_v
17、ars",1</p><p><b> .text</b></p><p> SSBX FRCT</p><p> STM #d_coef_s,AR5 ;move coeffs table_s</p><p><b> RPT #3</b></
18、p><p> MVPD #table_s,*AR5+</p><p> STM #d_coef_s,AR3</p><p> STM #d_xs,AR2</p><p> STM #d_l_s,AR4</p><p> ST #7FFFH,d_l_s</p><p>
19、 SQUR *AR2+,A ;A=x^2</p><p> ST A,*AR2 ;(AR2)=x^2</p><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2+,*AR3+,B,A ;A=1-x^2/7
20、2,T=x^2</p><p> MPYA A ;A=T*A=x^2(1-x^2/72)</p><p> STH A,*AR2 ;(d_temp)=x^2(1-x^2/72)</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/42(
21、1-x^2/72);T=x^2(1-x^2/72)</p><p> MPYA *AR2+ ;B=x^2(1-x^2/42(1-x^2/72))</p><p> ST B,*AR2 ;(d_temp)=x^2(1-x^2/42(1-x^2/72))</p><p> ||LD
22、*AR4,B ;B=1</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/20(1-x^2/42(1-x^2/72))</p><p> MPYA *AR2+ ;B=x^2(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p&
23、gt; ST B,*AR2 ;(d_temp)=B</p><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72)))</p><p>
24、 MPYA d_xs ;B=x(1-x^2/6(1-x^2/20(1-x^2/42(1-x^2/72))))</p><p> STH B,d_sinx ;sin(theta)</p><p><b> RET</b></p><p> cosx:
25、</p><p> .def d_xc,d_cosx</p><p> d_coef_c .usect "coef_c",4</p><p><b> .data</b></p><p> table_c .word 0249H ;C1=1/(7*8)&l
26、t;/p><p> .word 0444H ;C2=1/(5*6)</p><p> .word 0AABH ;C3=1/(3*4)</p><p> .word 4000H ;C4=1/2</p><p> d_xc .usect "cos_vars
27、",1</p><p> d_squr_xc .usect "cos_vars",1</p><p> d_temp_c .usect "cos_vars",1</p><p> d_cosx .usect "cos_vars",1</p><p
28、> c_l_c .usect "cos_vars",1</p><p><b> .text</b></p><p> SSBX FRCT</p><p> STM #d_coef_c,AR5 ;move coeffs table_c</p><p>&
29、lt;b> RPT #3</b></p><p> MVPD #table_c,*AR5+</p><p> STM #d_coef_c,AR3</p><p> STM #d_xc,AR2</p><p> STM #c_l_c,AR4</p><p> ST
30、 #7FFFH,c_l_c</p><p> SQUR *AR2+,A ;A=x^2</p><p> ST A,*AR2 ;(AR2)=x^2</p><p> ||LD *AR4,B ;B=1</p><p> MA
31、SR *AR2+,*AR3+,B,A ;A=1-x^2/56,T=x^2</p><p> MPYA A ;A=T*A=x^2(1-x^2/56)</p><p> STH A,*AR2 ;(d_temp)=x^2(1-x^2/56)</p><p> MASR
32、 *AR2-,*AR3+,B,A ;A=1-x^2/30(1-x^2/56); T=x^2(1-x^2/56)</p><p> MPYA *AR2+ ;B=x^2(1-x^2/30(1-x^2/56))</p><p> ST B,*AR2 ;(d_temp)=x^2(1-x^2/30(1-
33、x^2/56))</p><p> ||LD *AR4,B ;B=1</p><p> MASR *AR2-,*AR3+,B,A ;A=1-x^2/12(1-x^2/30(1-x^2/56))</p><p> SFTA A,-1,A ;-1/2</p>
34、<p><b> NEG A</b></p><p> MPYA *AR2+ ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p><p> MAR *AR2+</p><p><b> RETD</b></p>
35、<p> ADD *AR4,16,B ;B=-x^2/2(1-x^2/12(1-x^2/30(1-x^2/56)))</p><p> STH B,*AR2 ;cos(theta)</p><p><b> RET</b></p><p><b> .
36、end</b></p><p> 產(chǎn)生正弦波鏈接命令文件sin.cmd</p><p><b> MEMORY</b></p><p><b> {</b></p><p><b> PAGE 0:</b></p><p> EPR
37、OM: org=0E000H, len=1000H</p><p> VECS: org=0FF80H, len=0080H</p><p><b> PAGE 1:</b></p><p> SPRAM: org=0060H, len=0020H</p><p> DARAM1: org=008
38、0H, len=0010H</p><p> DARAM2: org=0090H, len=0010H</p><p> DARAM3: org=0200H, len=0200H</p><p><b> }</b></p><p><b> SECTIONS</b></p&
39、gt;<p><b> {</b></p><p> .text :> EPROM PAGE 0</p><p> .data :> EPROM PAGE 0</p><p> STACK :> SPRAM PAGE 1</p><p&
40、gt; sin_vars :> DARAM1 PAGE 1</p><p> coef_s :> DARAM1 PAGE 1</p><p> cos_vars :> DARAM2 PAGE 1</p><p> coef_c :> DARAM2 PAGE 1</p&
41、gt;<p> sin_x : align(512) {} > DARAM3 PAGE 1</p><p> .vectors :>VECS PAGE 0</p><p><b> }</b></p><p><b> 六、產(chǎn)生的波形</b></p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- dsp課程設(shè)計(jì)---正弦波信號(hào)發(fā)生器報(bào)告
- 正弦波信號(hào)發(fā)生器課程設(shè)計(jì)
- 基于dsp正弦波發(fā)生器課程設(shè)計(jì)
- 正弦波發(fā)生器課程設(shè)計(jì)
- 基于dsp的正弦波信號(hào)發(fā)生器
- eda課程報(bào)告---正弦波信號(hào)發(fā)生器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---正弦波發(fā)生器
- dsp課程設(shè)計(jì)---正弦信號(hào)發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--正弦信號(hào)發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--正弦信號(hào)發(fā)生器的設(shè)計(jì)
- dsp課程設(shè)計(jì)--正弦信號(hào)發(fā)生器的設(shè)計(jì)
- 基于fpga的正弦波信號(hào)發(fā)生器設(shè)計(jì)
- 正弦波-方波-三角波信號(hào)發(fā)生器設(shè)計(jì)
- 電子課程設(shè)計(jì)--方波_三角波_正弦波發(fā)生器
- 正弦波調(diào)制信號(hào)發(fā)生器設(shè)計(jì)-畢業(yè)論文
- 畢業(yè)設(shè)計(jì)231正弦波信號(hào)發(fā)生器完整
- 課程設(shè)計(jì)--正弦波信號(hào)
- 簡(jiǎn)單信號(hào)發(fā)生器畢業(yè)設(shè)計(jì)--方波-三角波-正弦波信號(hào)發(fā)生器
- 畢業(yè)設(shè)計(jì)231正弦波信號(hào)發(fā)生器完整
- 模電課程設(shè)計(jì)報(bào)告-- 正弦波方波三角波發(fā)生器
評(píng)論
0/150
提交評(píng)論