![]() |
|
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 |
|
|
|
|
#1 |
|
Đệ tử 3 túi
Tham gia ngày: Jun 2006
Bài gửi: 51
: |
Cám ơn ý kiến của anh Nguyễn Trung Chính.
Em rất mong vấn đề này được nhiều người góp ý hơn nữa để chúng ta có một hướng đi tốt nhất và ngắn nhất. |
|
|
|
|
#2 | |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 16
: |
Trích:
|
|
|
|
|
|
#3 |
|
Nhập môn đệ tử
Tham gia ngày: Mar 2006
Bài gửi: 7
: |
Cam' on Anh Nguyen Trung Chinh'
Anh lam on post bai tiep di Em dang doc thay rat hay, rat de hieu. |
|
|
|
|
#4 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Cảm ơn anh NTC,anh viết khá hay,đọc rất là dễ hiểu.
Em đã đi rất nhiều hiệu sách,tìm trên mạng cũng khá nhiều tài liệu Nhưng vì mới học nên ko biết bắt đầu như thế nào Đọc bài của anh,mọi thứ dường như đã sáng tỏ. Thanks |
|
|
|
|
#5 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Anh cho em hỏi chút,ở bài 2 của anh,khi khai báo biến
count1 equ 0x20 counta equ 0x21 countb equ 0x22 anh có thể giải thích chi tiết hơn được ko? equ la khai bao j? va nhat thiet phai la 0x20,21,22 ko? nếu em khai báo như sau có được ko: count1 db 0 ;khai bao 3 bien va cho chung gia tri ban dau la 0 cuonta db 0 countb db 0 thanks |
|
|
|
|
#6 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
ah,còn nữa,ở bài 2,có đoạn:
Code:
delay_0
decfsz counta,1 ;giam counta va so sanh voi 0
goto $+2 ;neu khac 0 thi th lenh nay( bo qua lenh tiep theo)
decfsz countb,1 ;neu bang 0 thi giam countb va sau lenh nay
; countb =0 nen ko thuc hien lenh tiep theo
goto delay_0 ;neu counta khac 0 thi tro lai va giam tiep
decfsz count1,1
goto d1
return
Code:
delay_0
decfsz counta,1
goto $+2
goto tro_ve
goto delay_0
tro_ve
decfsz count1,1
goto d1
return
thanks thay đổi nội dung bởi: ntc, 30-06-2006 lúc 01:55 PM. |
|
|
|
|
#7 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Xin lỗi anh,em edit nhưng ko được
Hơi khó nhìn 1 chút thanks |
|
|
|
|
#8 |
|
Đệ tử 8 túi
|
Không nhất thiết, bạn có thể khai báo ở các ô nhớ khác. Bạn cũng có thể tham khảo thêm tài liệu hướng dẫn sử dụng cho trình biên dịch để hiểu thêm. Cái tài liệu gì ấy anh Nam nhỉ, tự nhiên em quên mất tiêu. Hình như là MPLAB, MPASM & MPLINK user guide gì đó.
Còn vấn đề vè delay, bạn chịu khó nghiền ngẫm một tí là hiểu ngay í mà. ![]() thay đổi nội dung bởi: ntc, 30-06-2006 lúc 02:04 PM. |
|
|
|
|
#9 |
|
Trưởng lão PIC bang
|
Tài liệu đó là "MPASM Assembler, MPLINK Object Linker, MPLIB Object Librarian User's Guide". Phiên bản hiện tại là DS33034J, download tại đây:
http://ww1.microchip.com/downloads/e...Doc/33014J.pdf Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
|
|
|
#10 |
|
Đệ tử 8 túi
|
Đấy, hèhè.
Cảm ơn anh Nam cứu bồ. ![]() |
|
|
|
|
#11 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Em mới học pic nên muốn mua 1 bộ nạp píc.
Bác nào có mạch nạp PG2C nạp cho con pic16F877A bán cho em cái thanks Email của em: typhn1985@yahoo.com |
|
|
|
|
#12 |
|
Đệ tử 4 túi
Tham gia ngày: Feb 2006
Bài gửi: 66
: |
bạn nên viết chương trình delay theo dạng như sau sẽ rất tiện:
Code:
DELAY
MOVLW D'xx'
MOVWF COUNTA
CLRF COUNTB
HERE
NOP ;1us
DECFSZ COUNTB,F ;1us
GOTO HERE ;4us*255~1000uS=1ms
DECFSZ COUNTA,F
GOTO HERE ;'xx' ms
; DECFSZ COUNTx,F
; GOTO HERE
RETURN
bạn thay COUNTA và COUNTB như thế này cũng được :
DECFSZ 0X22,F
GOTO HERE
DECFSZ 0X21,F
GOTO HERE
được không bạn ? thay đổi nội dung bởi: newuser, 19-08-2006 lúc 06:49 PM. |
|
|
|
|
#13 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Mấy bác ơi,giúp em với.
Em mới bắt đầu học pic,nhưng chưa có mạch nạp. Em thử biên dịch chương trình bằng mplap. Em làm y hệt anh NTC,cái bài cho led chạy từ trái sang phải ấy code như sau: Code:
;8 led o portb
;cho led chay tu trai sang phai
;thoi gian delay la 100ms
list p=16f877A ; list directive to define processor
#include <p16f877A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;==========================
;KHOI TAO CAC BIEN
;==========================
count1 equ 0X20
counta equ 0X21
countb equ 0X22
ORG 0X0000
GOTO MAIN
MAIN
BCF STATUS,RP1 ;RP1=0
BSF STATUS,RP0 ;RP0=1=>CHON BANK1
CLRF TRISB ;XUAT DU LIEU RA PORTB
BCF STATUS,RP0 ;CHON BANK0
MOVLW B'10000000'
MOVWF PORTB ;BAT LED O CHAN RB7
LOOP
CALL DELAY_100MS
RRF PORTB,1
GOTO LOOP
DELAY_100MS
MOVLW d'100'
MOVWF count1
DELAY0
MOVLW d'199'
MOVWF counta
MOVLW d'1'
MOVWF countb
D1
DECFSZ counta,1
GOTO $+2
DECFSZ countb,1
GOTO D1
DECFSZ count1,1
GOTO DELAY0
RETURN
end
Clean: Deleting intermediary and output files. Clean: Deleted file "D:\pic\B3.mcs". Clean: Done. Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F877A "B3.ASM" /l"B3.lst" /e"B3.err" Warning[207] D:\PIC\B3.ASM 15 : Found label after column 1. (count1) Warning[207] D:\PIC\B3.ASM 16 : Found label after column 1. (counta) Warning[207] D:\PIC\B3.ASM 17 : Found label after column 1. (countb) Message[302] D:\PIC\B3.ASM 26 : Register in operand not in bank 0. Ensure that bank bits are correct. Loaded D:\pic\B3.COD. BUILD SUCCEEDED: Mon Jul 03 15:52:56 2006 Ko hiểu sao lại có mấy cái warning ở trên Mấy bác giải thích dùm em với thanks thay đổi nội dung bởi: falleaf, 02-07-2006 lúc 09:34 PM. |
|
|
|
|
#14 | |
|
PIC Bang chủ
|
Trích:
Cách viết này, có thể dùng để đặt hằng số, có thể đặt biến, nếu em dùng nó như một thanh ghi, thì nó là biến, nếu em dùng nó như là số, thì nó là hằng. Cho nên, lúc này em phải viết nó vào cột thứ nhất, như một cái nhãn. Vì vậy, nó mới thông báo rằng tìm thấy một cái nhãn không viết trong cột 1. Hay dịch nguyên văn là nó tìm thấy một cái nhãn viết sau cột 1. Trong phần này anh nhớ đã có viết rất chi tiết trong bài viết về tập lệnh, đặt biến. Khi đặt biến, em dùng cách đặt RES thì sẽ tốt hơn dùng equ. Sau này chuẩn hoá, đặt biến sẽ dùng RES chứ không dùng EQU nữa. Chúc vui PS, em nhớ phải đặt chương trình trong cái thẻ [code] [/ code] (viết liền lại), thì mọi người mới thấy đựơc những chỗ sai kiểu như thế này. Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
|
|
|
|
#15 |
|
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
cảm ơn anh!
Em sửa được rồi. Nhưng cái lỗi này thì em chưa hiểu lắm: Message[302] D:\PIC\B3.ASM 26 : Register in operand not in bank 0. Ensure that bank bits are correct. Sao thanh ghi lại ko ở trong bank 0 hả anh? Anh giải thích giùm em với thanks |
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|
Similar Threads
|
||||
| Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
| TUT về USART trong PIC16F877A | mafd_47a | MPASM | 18 | 09-03-2026 12:46 AM |
| TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
| Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
| Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
| CCS C for PIC16F877A | nhh | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 405 | 24-04-2008 12:00 PM |