![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 6 túi
|
|
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Sep 2010
Bài gửi: 107
: |
![]() Anh chỉ giáo cho em rõ thêm về một số đoạn code này với em chưa hiểu lắm //char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '}; // 0192: MOVF 26,W 0193: MOVWF 2D 0194: MOVLW 0A 0195: MOVWF 2E 0196: CALL 158 0197: MOVF 77,W 0198: MOVWF 28 .................... chuc=y/10; 0199: MOVF 26,W 019A: MOVWF 2D 019B: MOVLW 0A 019C: MOVWF 2E 019D: CALL 158 019E: MOVF 78,W 019F: MOVWF 27 .................... z=(x-y)*100; 01A0: CLRF 2E 01A1: MOVF 26,W 01A2: MOVWF 2D 01A3: CALL 050 01A4: BSF 03.1 01A5: MOVF 23,W 01A6: MOVWF 30 01A7: MOVF 22,W 01A8: MOVWF 2F 01A9: MOVF 21,W 01AA: MOVWF 2E 01AB: MOVF 20,W 01AC: MOVWF 2D 01AD: MOVF 7A,W 01AE: MOVWF 34 01AF: MOVF 79,W 01B0: MOVWF 33 01B1: MOVF 78,W 01B2: MOVWF 32 01B3: MOVF 77,W 01B4: MOVWF 31 * 02F5: MOVF 77,W 02F6: MOVWF 2D 02F7: MOVF 78,W 02F8: MOVWF 2E 02F9: MOVF 79,W 02FA: MOVWF 2F 02FB: MOVF 7A,W 02FC: MOVWF 30 02FD: MOVF 30,W 02FE: MOVWF 34 02FF: MOVF 2F,W 0300: MOVWF 33 0301: MOVF 2E,W 0302: MOVWF 32 0303: MOVF 2D,W 0304: MOVWF 31 0305: CLRF 38 0306: CLRF 37 0307: MOVLW 48 0308: MOVWF 36 0309: MOVLW 85 030A: MOVWF 35 * 037F: MOVF 7A,W 0380: MOVWF 30 0381: MOVF 79,W 0382: MOVWF 2F 0383: MOVF 78,W 0384: MOVWF 2E 0385: MOVF 77,W 0386: MOVWF 2D 0387: CALL 139 0388: MOVF 78,W 0389: MOVWF 2A .................... le1=z/10; 038A: MOVF 2A,W 038B: MOVWF 2D 038C: MOVLW 0A 038D: MOVWF 2E 038E: CALL 158 038F: MOVF 78,W 0390: MOVWF 2B .................... le2=z%10; 0391: MOVF 2A,W 0392: MOVWF 2D 0393: MOVLW 0A 0394: MOVWF 2E 0395: CALL 158 0396: MOVF 77,W 0397: MOVWF 2C .................... portb=0x38; 0398: MOVLW 38 0399: MOVWF 06 .................... lenh(); 039A: CALL 182 .................... portb=0x0e; 039B: MOVLW 0E 039C: MOVWF 06 .................... lenh(); 039D: CALL 182 .................... portb=0x80; 039E: MOVLW 80 039F: MOVWF 06 .................... lenh(); 03A0: CALL 182 .................... portb=0x0c; 03A1: MOVLW 0C 03A2: MOVWF 06 .................... lenh(); 03A3: CALL 182 .................... for(i=0;i<9;i++) 03A4: CLRF 29 03A5: MOVF 29,W 03A6: SUBLW 08 03A7: BTFSS 03.0 03A8: GOTO 3B0 .................... { .................... portb=ht1[i]; 03A9: MOVF 29,W 03AA: CALL 013 03AB: MOVWF 78 03AC: MOVWF 06 .................... xuat(); 03AD: CALL 18A .................... } 03AE: INCF 29,F 03AF: GOTO 3A5 .................... portb=0x89; 03B0: MOVLW 89 03B1: MOVWF 06 .................... lenh(); 03B2: CALL 182 .................... if(chuc==0) 03B3: MOVF 27,F 03B4: BTFSS 03.2 03B5: GOTO 3B8 .................... {chuc=10;} 03B6: MOVLW 0A 03B7: MOVWF 27 .................... chuc; .................... portb=ht[chuc]; 03B8: MOVF 27,W 03B9: CALL 004 03BA: MOVWF 78 03BB: MOVWF 06 .................... xuat(); 03BC: CALL 18A .................... portb=ht[dv]; 03BD: MOVF 28,W 03BE: CALL 004 03BF: MOVWF 78 03C0: MOVWF 06 .................... xuat(); 03C1: CALL 18A .................... portb=0b00101110; 03C2: MOVLW 2E 03C3: MOVWF 06 .................... xuat(); 03C4: CALL 18A .................... portb=ht[le1]; 03C5: MOVF 2B,W 03C6: CALL 004 03C7: MOVWF 78 03C8: MOVWF 06 .................... xuat(); 03C9: CALL 18A .................... portb=ht[le2]; 03CA: MOVF 2C,W 03CB: CALL 004 03CC: MOVWF 78 03CD: MOVWF 06 .................... xuat(); 03CE: CALL 18A .................... portb=0b11011111; 03CF: MOVLW DF 03D0: MOVWF 06 .................... xuat(); 03D1: CALL 18A .................... portb=0b01000011; 03D2: MOVLW 43 03D3: MOVWF 06 .................... xuat(); 03D4: CALL 18A .................... portb=0xc0; 03D5: MOVLW C0 03D6: MOVWF 06 .................... lenh(); 03D7: CALL 182 .................... for(i=0;i<14;i++) 03D8: CLRF 29 03D9: MOVF 29,W 03DA: SUBLW 0D 03DB: BTFSS 03.0 03DC: GOTO 3E4 .................... { .................... portb=ht3[i]; 03DD: MOVF 29,W 03DE: CALL 021 03DF: MOVWF 78 03E0: MOVWF 06 .................... xuat(); 03E1: CALL 18A .................... } 03E2: INCF 29,F 03E3: GOTO 3D9 .................... portb=0xc0; 03E4: MOVLW C0 03E5: MOVWF 06 .................... lenh(); 03E6: CALL 182 |
![]() |
![]() |
![]() |
#3 |
Đệ tử 6 túi
|
Bạn dịch từ CCS sang ASM à..như vậy thì sao mà mình giải thích được..bạn đưa code CCS lên rồi anh em cùng giải quyết.
-Còn chương trình hiển thị nhiệt độ trên LCD mình đã test luôn trên phần cứng rồi..ko sai đâu bạn.. |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 2 túi
Tham gia ngày: Mar 2011
Bài gửi: 27
: |
biên dịch nó báo thế này là sao bạn "*error 18 "123(mani).c" Line 0(0,1): file can not be opend "
Trích:
adc 10bit 0-1023 ,mà V_ref = VCC=5V nên ADC_value=1 tương ứng 5/1024=4.887mV Trong khi đó LM335 cho ra điện áp là 10mV/1K nên để giá trị ADC thay đổi 1 đơn vị thì nhiệt độ phải thay đổi là 2K => x= ADC_value*(4.887/10) thay đổi nội dung bởi: pdkxlily, 05-07-2011 lúc 10:25 AM. |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|