項目7 學(xué)習(xí)AD接口和DA_第1頁
項目7 學(xué)習(xí)AD接口和DA_第2頁
項目7 學(xué)習(xí)AD接口和DA_第3頁
項目7 學(xué)習(xí)AD接口和DA_第4頁
項目7 學(xué)習(xí)AD接口和DA_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2021/8/30 星期一Page 1項目7 學(xué)習(xí)A/D接口和D/A接口 任務(wù)1 用DAC0832實現(xiàn)方波、三角波、 鋸齒波波形發(fā)生器任務(wù)2 用ADC0809實現(xiàn)數(shù)字電壓表2021/8/30 星期一Page 2任務(wù)1 用DAC0832實現(xiàn)方波、三角波、 鋸齒波波形發(fā)生器任務(wù)分析任務(wù)實現(xiàn)相關(guān)知識 2021/8/30 星期一Page 3任務(wù)分析圖7.1 信號發(fā)生器波形2021/8/30 星期一Page 4任務(wù)實現(xiàn)步驟1認識轉(zhuǎn)換元器件圖7.2 DAC0832芯片引腳圖 2021/8/30 星期一Page 5圖7.3 DAC0832芯片的內(nèi)部結(jié)構(gòu)圖2021/8/30 星期一Page 6步驟2硬件電路設(shè)

2、計圖7.4 波形發(fā)生器電路圖2021/8/30 星期一Page 7波形發(fā)生器電路元器件清單如表7.1所示。步驟3準備元器件并制作電路板表7.1波形發(fā)生器電路元器件清單元器件名稱參 數(shù)數(shù) 量元器件名稱參 數(shù)數(shù) 量IC插座DIP401電阻10kW1單片機89C511電阻5.1kW1晶體振蕩器12MHz1電解電容22F2瓷片電容22pF2可變電阻10kW3集成運放LM3241IC插座DIP201數(shù)/模轉(zhuǎn)換器DAC08321IC插座DIP1412021/8/30 星期一Page 8圖7.5 集成運放LM324芯片的引腳圖2021/8/30 星期一Page 9圖7.6 波形發(fā)生器電路板硬件實物2021/

3、8/30 星期一Page 10 鋸齒波編程思路:先輸出二進制最小值00H,然后按+1規(guī)律遞增,當輸出數(shù)據(jù)達到最大值FFH時,再回到00H重復(fù)這一過程。源程序如下:步驟4編寫波形發(fā)生程序2021/8/30 星期一Page 11;* 鋸齒波程序 *;程序名:鋸齒波程序PM7_1_1.asm;程序功能:產(chǎn)生鋸齒波信號輸出 ORG 0000H AJMP START START:MOV DPTR,#7FFFH ;輸入寄存器地址 AA: MOV A, #00H ;送轉(zhuǎn)換初值 BB: MOVX DPTR,A ;D/A轉(zhuǎn)換 NOP ;延時 NOP CJNE A,#0FFH,CC ;判斷最大值到否 SJMP A

4、A CC: INC A AJMP BB END2021/8/30 星期一Page 12正弦波編程思路:源程序如下:;* 正弦波程序 *;程序名:正弦波程序PM7_1_2.asm;程序功能:產(chǎn)生正弦波輸出,周期約256ms ,幅度約2.5V ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV SP, #6FHPUB0:MOV R4,#00HPUB1:MOV DPTR,#TAB ;確定表首地址 MOV A,R4 MOVC A,A+DPTR ;查表取輸出參數(shù) MOV DPTR, #7FFFH PUB2: MOVX DPTR,A LCALL DELAY_1ms INC R4 C

5、JNE R4,#00H,PUB1 ;判斷一個周期到否 LJMP PUB0 2021/8/30 星期一Page 13TAB :DB 80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH DB 1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H,0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H 0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H,0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB 0

6、F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH,0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH,0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH,0DAHDB 0D8H,0D6H,0D4H,0DlH,0CFH,0CCH,0CAH,0C7H,0C5H,0C2H,0BFH,

7、0BCH,0BAH,0B7H,0B4H,0B1HDB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H,96H,93H,90H,8DH,89H,86H,83H,80HDB 80H,7CH,79H,76H,72H,6FH,6CH,69H,66H,63H,60H,5DH,5AH,57H,55H,51HDB 4EH,4CH,48H,45H,43H,40H,3DH,3AH,38H,35H,33H,30H,2EH,2BH,29H,27HDB 25H,22H,20H,1EH,1CH,1AH,18H,16H,15H,13H,11H,10H,0EH,0DH,0BH,0AHDB 09H,

8、08H,07H,06H,05H,04H,03H,02H,02H,01H,00H,00H,00H,00H,00H,00HDB 00H,00H,00H,00H,00H,00H,01H,02H,02H,03H,04H,05H,06H,07H,08H,09HDB 0AH,0BH,0DH,0EH,10H,11H,13H,15H,16H,18H,1AH,1CH,1EH,20H,22H,25HDB 27H,29H,2BH,2EH,30H,33H,35H,38H,3AH,3DH,40H,43H,45H,48H,4CH,4EHDB 51H,55H,57H,5AH,5DH,60H,63H,66H,69H,6CH,

9、6FH,72H,76H,79H,7CH,80H2021/8/30 星期一Page 14;* 延時1ms子程序 *;程序名:DELAY_1ms;程序功能:延時1msDELAY_1ms:PUSH ACC ;2494s+4s =1ms NOP CLR APD:NOP INC A CJNE A,#0F9H,PD ;#F9H = 249D POP ACC RET END2021/8/30 星期一Page 15方波編程思路:源程序如下:;* 方波程序 *;程序名:方波程序PM7_1_3.asm;程序功能:產(chǎn)生方波信號輸出 ORG 0000H AJMP START START:MOV DPTR,#7FFFH

10、 ;輸入寄存器地址 AA:MOV A, #00H ;送轉(zhuǎn)換最小值00H MOVX DPTR,A ;D/A轉(zhuǎn)換 LCALL DELAY_1ms ;延時1ms MOV A, #0FFH ;送轉(zhuǎn)換最大值FFH MOVX DPTR,A ;D/A轉(zhuǎn)換 LCALL DELAY_1ms ;延時1ms AJMP AA END2021/8/30 星期一Page 16 將硬件電路板和單片機開發(fā)系統(tǒng)連接好,進行以下操作。 輸入源程序。 編譯源程序。 將輸出Vo與示波器連接。 運行程序,用示波器觀察輸出電壓波形。步驟5調(diào)試并運行程序2021/8/30 星期一Page 17 鋸齒波、正弦波、方波程序的流程圖如圖7.7、

11、圖7.8、圖7.9所示。步驟6程序分析總結(jié)圖7.7 鋸齒波程序的流程圖 2021/8/30 星期一Page 18圖7.8 正弦波程序的流程圖2021/8/30 星期一Page 19圖7.9 方波程序的流程圖2021/8/30 星期一Page 20相關(guān)知識 1D/A轉(zhuǎn)換器的性能指標(1)分辨率(2)建立時間2D/A轉(zhuǎn)換器芯片DAC0832功能圖7.10 運算放大器接法2021/8/30 星期一Page 213接口方式與編程(1)直通方式圖7.11 直通方式接線的原理示意圖2021/8/30 星期一Page 22 【例7.1】 DAC0832芯片直通方式下的信號發(fā)生器。 用采用直通方式連接的DAC

12、0832芯片產(chǎn)生一個周期為1kHz的方波信號。(1)題意分析 在直通方式下,直接將要轉(zhuǎn)換的二進制數(shù)輸出即可獲得相應(yīng)的模擬電壓。 因此,先輸出二進制最小值00H,延時0.5ms,再輸出二進制最大值FFH,延時0.5ms,然后不斷重復(fù)這一過程即可產(chǎn)生方波。2021/8/30 星期一Page 23(2)程序設(shè)計用匯編語言實現(xiàn)的程序如下:;*直通方式下的方波信號發(fā)生器*;程序名:DAC0832芯片直通方式的方波信號發(fā)生器EX7_1.asm;程序功能:1kHz的方波信號發(fā)生器 ORG 0000H AJMP START START:MOV P1, #00H ;送轉(zhuǎn)換最小值00H LCALL DELAY1

13、;延時0.5ms MOV P1, #0FFH ;送轉(zhuǎn)換最大值FFH LCALL DELAY1 ;延時0.5ms AJMP START2021/8/30 星期一Page 24;* 延時0.5ms子程序*;程序名:DELAY1;程序功能:延時0.5msDELAY_1ms:PUSH ACC ;1244s+4s =0.5ms NOP CLR APD: NOP INC A CJNE A,#7BH,PD ;#7BH = 124D POP ACC RET END2021/8/30 星期一Page 25(2)單緩沖方式圖7.12 DAC 0832單緩沖方式接口12021/8/30 星期一Page 26圖7.1

14、3 DAC 0832單緩沖方式接口22021/8/30 星期一Page 27(3)雙緩沖方式圖7.14 DAC 0832芯片雙緩沖方式連接圖2021/8/30 星期一Page 28 【例7.2】 DAC0832芯片雙緩沖方式下的信號發(fā)生器。 假定圖7.14所示的電路中輸入寄存器地址為FEH,DAC寄存器地址為FFH。 請利用該電路設(shè)計一個任意周期的鋸齒波發(fā)生器。(1)題意分析 先輸出二進制最小值00H,然后按+1規(guī)律遞增,當輸出數(shù)據(jù)達到最大值FFH時,再回到00H重復(fù)這一過程。 由于輸入寄存器地址為FEH,DAC寄存器地址為FFH,因此在程序中使用MOVX R0 , A和 MOVX R1 ,

15、A 兩條傳送指令,才能完成一個數(shù)字量的模擬轉(zhuǎn)換。2021/8/30 星期一Page 29(2)程序設(shè)計源程序如下:;* 鋸齒波程序 *;程序名:DAC0832芯片雙緩沖方式的鋸齒波程序EX7_2.asm;程序功能:產(chǎn)生鋸齒波信號輸出 ORG 0000H AJMP START START:MOV R0,#0FEH ;裝入輸入寄存器地址 MOV R1,#0FFH ;裝入DAC寄存器地址 AA:MOV A, #00H ;送轉(zhuǎn)換初值 BB:MOVX R0 , A ;轉(zhuǎn)換數(shù)據(jù)送輸入寄存器 MOVX R1 , A ;數(shù)據(jù)通過DAC寄存器 CJNE A,#0FFH,CC ;判斷最大值到否 SJMP AA C

16、C: INC A AJMP BB END2021/8/30 星期一Page 30任務(wù)2 用ADC0809實現(xiàn)數(shù)字電壓表任務(wù)分析任務(wù)實現(xiàn)相關(guān)知識 2021/8/30 星期一Page 31任務(wù)分析圖7.15 數(shù)字電壓表電路框圖2021/8/30 星期一Page 32任務(wù)實現(xiàn)步驟1認識轉(zhuǎn)換元器件圖7.16 ADC0809芯片的引腳圖2021/8/30 星期一Page 33表7.2通道選擇表ADDC ADDB ADDA 選擇的通道0 0 00 0 10 1 00 1 11 0 01 0 1 1 1 0 1 1 1 IN0IN1IN2IN3IN4IN5IN6IN72021/8/30 星期一Page 34

17、表7.3簡易數(shù)字電壓表元器件清單步驟2硬件電路設(shè)計步驟3準備元器件并制作電路板元器件名稱參 數(shù)數(shù) 量元器件名稱參 數(shù)數(shù) 量IC插座DIP401電阻10kW2IC插座DIP141電阻5kW(可調(diào))1晶體振蕩器12MHz1模數(shù)轉(zhuǎn)換ADC08091瓷片電容22pF2雙D觸發(fā)器74LS741七段數(shù)碼管2或非門74LS021單片機89C5112021/8/30 星期一Page 35圖7.17 簡易數(shù)字電壓表電路圖2021/8/30 星期一Page 36圖7.18 數(shù)字電壓表電路板硬件實物2021/8/30 星期一Page 37源程序如下:;* 簡易數(shù)字電壓表程序 *;程序名:簡易數(shù)字電壓表程序PM7_2

18、.asm;程序功能:顯示0.05.0V測量電壓值,分辨率0.1V ORG0000H AJMP MAIN ORG 0030H MAIN: MOVSP, #60H LP: LCALL ADCHN ;調(diào)用取A/D轉(zhuǎn)換電壓數(shù)據(jù)子程序 LCALL DATAPR ;調(diào)用數(shù)據(jù)處理子程序 LCALL DISP1 ;調(diào)用顯示子程序 AJMP LP END 步驟4編寫控制程序2021/8/30 星期一Page 38;* A/D 轉(zhuǎn)換子程序ADCHN *;子程序名:ADCHN;功能:讀取A/D轉(zhuǎn)換電壓值;入口參數(shù):無;出口參數(shù):A,存放轉(zhuǎn)換后8位數(shù)字量ADCON:SETB P0.2 NOP NOP CLR P0.2

19、 ;A/D轉(zhuǎn)換器清0 NOP NOP SETB P0.2 ;A/D轉(zhuǎn)換啟動 JB P0.3, $ ;查詢轉(zhuǎn)換是否結(jié)束? CLR P0.2 ;允許讀取轉(zhuǎn)換結(jié)果 NOP NOP MOV P1, #0FFH MOV A, P1 ;從P1端口讀取轉(zhuǎn)換數(shù)據(jù) RET(1)單片機與A/D轉(zhuǎn)換器接口子程序ADCHN設(shè)計思路 2021/8/30 星期一Page 39;* 顯示數(shù)據(jù)處理子程序 DATAPR * ; 子程序名:DATAPR;功能:將A中的數(shù)據(jù)轉(zhuǎn)換成0.05.0之間的十進制數(shù)。;出口參數(shù):顯示數(shù)據(jù)存放在40H、41H單元中,40H單元存放整數(shù),41H單元存放小數(shù)。 (2)數(shù)據(jù)處理子程序設(shè)計思路2021

20、/8/30 星期一Page 40HE: MOV R2,#00H MOV R3,A MOV R6,#00H MOV R7,#0AH LCALL MULD MOV R6,#00H MOV R7,#33H ;把51送到R7 LCALL DIVD MOV A, R3 LCALL HBCD MOV 41H,A ANL 41H, #0FH ;把個位的數(shù)送到40H單元 SWAP A ANL A,#0FH MOV 40H, A ;把十位的數(shù)送到40H單元 RET 2021/8/30 星期一Page 41;* 雙字節(jié)乘法子程序MULD* ;子程序名:MULD ;功能:雙字節(jié)二進制無符號數(shù)乘法;入口參數(shù):被乘數(shù)在

21、R2、R3中,乘數(shù)在R6、R7中。;出口參數(shù):乘積在R2、R3、R4、R5中。 MULD: MOV A, R3 ;計算R3乘R7 MOV B,R7 MUL AB MOV R4,B ;暫存部分積 MOV R5,A MOV A,R3 ;計算R3乘R6 MOV B,R6 MUL AB ADDA,R4 ;累加部分積 MOV R4,A CLR A ADDC A,B MOVR3,A2021/8/30 星期一Page 42 MOV A,R2 ;計算R2乘R7 MOV B,R7 MUL AB ADD A,R4 ;累加部分積 MOV R4, A MOV A,R3 ADDC A,B MOV R3,A CLR A

22、RLC A XCH A,R2 ;計算R2乘R6 MOV B,R6 MUL AB ADD A,R3 ;累加部分積 MOV R3,A MOV A,R2 ADDC A,B MOV R2,A RET* 雙字節(jié)除法子程序DIVD* 2021/8/30 星期一Page 43; 子程序名:DIVD ;功能:雙字節(jié)二進制無符號數(shù)除法; 入口參數(shù):被除數(shù)在R2、R3、R4、R5中,除數(shù)在R6、R7中。;出口參數(shù):OV=0 時,雙字節(jié)商在R2、R3中,OV=1 時表示溢出。 DIVD:CLR C;比較被除數(shù)和除數(shù) MOVA,R3 SUBBA,R7 MOVA,R2 SUBBA,R6 JC DVD1 SETBOV;溢

23、出 RETDVD1:MOVB,#10H;計算雙字節(jié)商2021/8/30 星期一Page 44DVD2:CLR C;部分商和余數(shù)同時左移一位 MOVA,R5 RLCA MOVR5,A MOVA,R4 RLC A MOVR4,A MOVA,R3 RLCA MOVR3,A XCHA,R2 RLCA XCHA,R2 MOVF0,C;保存溢出位2021/8/30 星期一Page 45 CLR C SUBBA,R7;計算R2R3R6R7 MOVR1,A MOVA,R2 SUBBA,R6 ANLC,/F0;結(jié)果判斷 JC DVD3 MOVR2,A;存放新的余數(shù) MOVA,R1 MOVR3,A INC R5

24、DVD3: DJNZB,DVD2;是否計算完十六位商 MOVA,R4;將商移至R2R3中 MOVR2,A MOVA,R5 MOVR3,A CLR OV RET2021/8/30 星期一Page 46* 將十六進制數(shù)轉(zhuǎn)換成BCD碼子程序HBCD * ; 子程序名:HBCD ; 功能:將單字節(jié)十六進制整數(shù)轉(zhuǎn)換成單字節(jié)BCD碼整數(shù); 入口參數(shù):單字節(jié)十六進制整數(shù)在A中; 出口參數(shù):轉(zhuǎn)換后的BCD碼十位和個位整數(shù)存在A中,百位存在R3中HBCD:MOV B,#100;分離出百位,存放在R3中 DIV AB MOV R3,A MOV A,#10 ;余數(shù)分離為十位和個位 XCH A,B DIV AB SW

25、AP A ORL A,B;將十位和個位拼成壓縮BCD碼 RET2021/8/30 星期一Page 47* 數(shù)碼管動態(tài)顯示子程序DISP1 * ; 子程序名:DISP1 ; 功能:用兩位數(shù)碼管顯示0.05.0數(shù)字; 入口參數(shù):40H、41HDISP1: MOV DPTR, #TAB ;設(shè)置不含小數(shù)點顯示字符表首地址 MOV A, 41H MOVC A, A+DPTR ;取顯示字符 SETB P0.7;屏蔽十位顯示 CLR P0.6;選擇個位顯示 MOV P2,A;送個位顯示字符 LCALL DELAY LCALL DELAY (3)分析顯示程序設(shè)計思路2021/8/30 星期一Page 48 M

26、OV DPTR, #EVER ;設(shè)置含小數(shù)點顯示字符表首地址 MOV A, 40H MOVC A, A+DPTR SETB P0.6 ;屏蔽個位顯示 CLR P0.7 ;選擇十位顯示 MOV P2,A;送十位顯示字符 LCALL DELAY LCALL DELAY RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H, 80H,90H ;顯示字符EVER:DB 40H,79H,24H,30H,19H,12H,02H,078H, 00H,10H DELAY:MOV R6,#10 DEL2:MOV R7,#250DEL1:NOP NOP DJNZ R7,DE

27、L1 DJNZ R6,DEL2 RET END2021/8/30 星期一Page 49 按照項目1建立起單片機開發(fā)環(huán)境,連接目標板和仿真器。 在MedWin界面下輸入?yún)R編語言程序PM7_2.asm。 保存程序到指定的路徑下。 編譯上述程序。 用單步運行、斷點運行等方法調(diào)試程序,當程序運行無誤后,在連續(xù)運行狀態(tài)下觀察初始顯示狀態(tài)是否正確。步驟5調(diào)試并運行程序2021/8/30 星期一Page 50 當改變輸入被測電壓時,觀察顯示是否跟隨變化。 用萬用表測量一下實際電壓并與顯示電壓值對照,如果有很大的誤差,分析可能產(chǎn)生誤差的原因。2021/8/30 星期一Page 51 數(shù)字電壓表程序流程圖如圖7

28、.19所示。 在完成0.05.0V數(shù)字電壓表的基礎(chǔ)上,做一個分辨率為0.01V的電壓表或制作一個最大量程為12V的電壓表。 思考硬件和軟件應(yīng)做如何改動。步驟6程序分析總結(jié)2021/8/30 星期一Page 52圖7.19 數(shù)字電壓表程序流程圖 2021/8/30 星期一Page 53相關(guān)知識 1ADC0809的內(nèi)部結(jié)構(gòu) 圖7.20 ADC0809內(nèi)部邏輯結(jié)構(gòu)2021/8/30 星期一Page 542MCS-51單片機與ADC0809接口圖7.21 ADC0809芯片與8031單片機的連接2021/8/30 星期一Page 55因此該ADC0809的通道地址確定如下:(1)8路模擬通道選擇803

29、1A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0809STCBA000001112021/8/30 星期一Page 56 【例7.3】 中斷方式的A/D轉(zhuǎn)換應(yīng)用。 某冷凍廠需對8個冷凍室進行溫度巡回檢測。 要求利用圖7.21設(shè)計一個用單片機控制的巡回檢測系統(tǒng),使其能對各冷凍室的溫度巡回檢測并加以處理。(2)轉(zhuǎn)換數(shù)據(jù)的傳送2021/8/30 星期一Page 57(1)題意分析 本例需要實現(xiàn)如下3個功能。 溫度采集:由溫度傳感器實現(xiàn),可選用熱敏電阻或集成溫度傳感器DS18B20等芯片,在每個冷凍室的合適位置安放,傳感器的輸出可分別送到IN0IN7。 巡回檢測:8路信號同時輸入到各相應(yīng)的通道,但ADC0809一個時刻只能轉(zhuǎn)換一個通道的數(shù)據(jù),可分時轉(zhuǎn)換8路通道的數(shù)據(jù),程序設(shè)計時可通過修改通道地址選擇線來實現(xiàn)。 中斷控制:打開外部中斷1,每轉(zhuǎn)換完一個通道的數(shù)據(jù)就中斷一次,在中斷處理程序中保存轉(zhuǎn)換后的數(shù)據(jù),并修

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論