![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#5 |
Đệ tử 6 túi
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
: |
các lệnh ASM bạn cần chú ý đặc biệt tới 0<= K <=255 và 0 <= F <= 127
bạn xem các ví dụ sau. mình đã test với pisumilator ide. Mình chỉ nhớ nó 1 cách rập khuôn . có rất ít bài viết nói rõ ý nghĩa K & F. bạn nên xem tập lệnh tiếng anh PIC 16F84 .cuón này có ví dụ cụ thể sau mỗi lệnh.
vd1: ;============phan dat bien============================= D1 EQU 0X20 ;===========Phan chuong trình chính====================== ORG 0x00 GOTO MAIN ORG 0x0005 MAIN BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTB MOVLW H'FF' ; 0<= k <= 255 MOVWF D1 ; 0 <= f <= 127 CLRW MOVLW D1 ; 0<= k <= 255 MOVWF PORTB ; 0 <= f <= 127 GOTO $ END Kết quả : g.tri portb = b ‘00100000’ = h ‘ 20’. g.tri byte 20h = b ‘ 11111111’ = h ‘ff ’. ################################################## ###################################### vd2: D1 EQU 0X20 ;===========Phan chuong trình chính====================== ORG 0x00 GOTO MAIN ORG 0x0005 MAIN BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTB MOVLW H'FF' ; 0<= k <= 255 MOVWF D1 ; 0 <= f <= 127 CLRW MOVF D1,W ; 0 <= f <= 127 MOVWF PORTB ; 0 <= f <= 127 GOTO $ END Kết quả : g.tri portb = b ‘11111111’ = h ‘ ff’. g.tri byte 20h = b ‘ 11111111’ = h ‘ff ’. ################################################## ###################################### vd3: D1 EQU 0X20 ;===========Phan chuong trình chính====================== ORG 0x00 GOTO MAIN ORG 0x0005 MAIN BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTB MOVLW H'FF' ; 0<= k <= 255 MOVWF D1 ; 0 <= f <= 127 CLRW MOVF 0x20,W ; 0 <= f <= 127 MOVWF PORTB ; 0 <= f <= 127 GOTO $ END Kết quả : g.tri portb = b ‘11111111’ = h ‘ ff’. g.tri byte 20h = b ‘ 11111111’ = h ‘ff ’. ################################################## ###################################### vd4: D1 EQU 0X20 ;===========Phan chuong trình chính====================== ORG 0x00 GOTO MAIN ORG 0x0005 MAIN BANKSEL TRISB CLRF TRISB BANKSEL PORTB CLRF PORTB MOVLW H'FF' ; 0<= k <= 255 MOVWF 0x20 ; 0 <= f <= 127 CLRW MOVF 0x20,W ; 0 <= f <= 127 MOVWF PORTB ; 0 <= f <= 127 GOTO $ END Kết quả : g.tri portb = b ‘11111111’ = h ‘ ff’. g.tri byte 20h = b ‘ 11111111’ = h ‘ff ’. ################################################## ##################################### 0<= k <= 255 : k là hằng số. 0 <= f <= 127 : f là thanh ghi 8 bit. Có 1 chú ý nhỏ ở vd1 : MOVLW H'FF' ; 0<= k <= 255 ; copy g.trị .255 vào w Và MOVLW D1 ; 0<= k <= 255 ; copy g.trị t.ghi d1 vào w, nhưng do ta đã khai báo ‘D1 EQU 0X20’ . nên c.trình hiểu 0x20 là 1 hằng số (g.trị ) chứ ko phải là 1 byte nhớ. thay đổi nội dung bởi: phandinh, 07-04-2009 lúc 05:23 PM. Lý do: thêm |
![]() |
![]() |
|
|