![]() |
|
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 |
PIC Bang chủ
|
Xin lỗi các bạn, đoạn chương trình trên đã có sự nhầm lẫn, F đã được báo về vẫn đề lỗi chương trình ngay từ hôm đầu NTC post lên, nhưng vẫn không có thời gian sửa chữa chương trình. Có lẽ các bạn vào đây thường xuyên thì cũng biết F đang làm việc gì. Vì vậy, thành thật xin lỗi các bạn vì sự lầm lẫn trên.
Nếu bạn nào có thời gian, xin sửa chữa giúp đoạn code trên để bạn đọc không bị vướng vào lỗi sai này nữa. 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? |
![]() |
![]() |
#2 |
PIC Bang chủ
|
Code:
MOVLW d’255’ MOVWF delay‐reg1 ; đưa giá trị 255 vào thanh ghi “delay‐reg1” loop DECFSZ delay‐reg1,0 ; giảm giá trị thanh ghi “delay‐reg1”và so sánh với 0 GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1” GOTO next ; nếu đã băng 0 chương trình delay hoàn tất loop1 MOVLW d’255’ MOVWF delay‐reg2 ; đưa vào thanh ghi “delay‐reg2” giá trị 255 DECFSZ delay‐reg2,0 ; giảm giá trị thanh ghi “delay‐reg2” và so sánh với 0 MOVWF loop1 ; nếu chưa bằng 0 thì nhảy đến label “loop1” GOTO loop ; nếu bằng 0 thì nhảy đến label “loop” next F sửa luôn đoạn code trên để tránh các bạn mắc lỗi sai. Bản sửa sẽ được NTC cập nhật lại sau: Code:
MOVLW d’255’ MOVWF delay_reg1 ; đưa giá trị 255 vào thanh ghi “delay_reg1” loop DECFSZ delay_reg1, F ; giảm giá trị thanh ghi “delay_reg1”và so sánh với 0 và ghi lại vào delay-reg1 GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1” GOTO next ; nếu đã băng 0 chương trình delay hoàn tất loop1 MOVLW d’255’ MOVWF delay_reg2 ; đưa vào thanh ghi “delay_reg2” giá trị 255 DECFSZ delay_reg2, F ; giảm giá trị thanh ghi “delay_reg2” và so sánh với 0 và ghi lại vào delay_reg2 GOTO $-1 ; nếu chưa bằng 0 thì nhảy lên trên để tiếp tục giảm delay_reg2 ; vòng lặp này nhằm giảm delay_reg2 về đến 0 ; thời gian giảm delay_reg2 chính là thời gian delay_trong vòng lặp con. GOTO loop ; nếu bằng 0 thì nhảy đến label “loop” next À thôi, H hiểu vì sao NTC viết sai rồi... oki, để F nói NTC sửa lại sau ... sorry cả nhà... 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? thay đổi nội dung bởi: falleaf, 12-02-2006 lúc 01:38 PM. |
![]() |
![]() |
#3 |
PIC Bang chủ
|
Trong cách viết trên, F cũng đồng thời chỉ ra hai cách viết cho lệnh GOTO.
Code:
LOOP GOTO LOOP Code:
GOTO $ Chính vì vậy, trong đoạn code trên, thay vì viết Code:
loop DECFSZ delay_reg1, F ; giảm giá trị thanh ghi “delay_reg1”và so sánh với 0 và ghi lại vào delay-reg1 GOTO loop1 ; nếu chưa bằng 0 nhảy tới label “loop1” GOTO next ; nếu đã băng 0 chương trình delay hoàn tất loop1 ... Code:
loop DECFSZ delay_reg1, F ; giảm giá trị thanh ghi “delay_reg1”và so sánh với 0 và ghi lại vào delay-reg1 GOTO $+2 ; nếu chưa bằng 0 nhảy tới label “loop1” GOTO next ; nếu đã băng 0 chương trình delay hoàn tất ... Code:
loop1 MOVLW d’255’ MOVWF delay_reg2 ; đưa vào thanh ghi “delay_reg2” giá trị 255 DECFSZ delay_reg2, F ; giảm giá trị thanh ghi “delay_reg2” và so sánh với 0 và ghi lại vào delay_reg2 GOTO $-1 ; ... Code:
loop1 MOVLW d’255’ MOVWF delay_reg2 ; đưa vào thanh ghi “delay_reg2” giá trị 255 loop2 DECFSZ delay_reg2, F ; giảm giá trị thanh ghi “delay_reg2” và so sánh với 0 và ghi lại vào delay_reg2 GOTO loop2; ...
__________________
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? thay đổi nội dung bởi: falleaf, 12-02-2006 lúc 01:40 PM. |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Jun 2007
Bài gửi: 1
: |
![]() Tôi đã down cái tutorial của NTC và thấy khó hiểu ở đoạn delay sau:
movlw 20 movwf delay-reg loop decfsz delay-reg,1 goto loop ... Tại sao tổng số chu kỳ lệnh để thực hiện đoạn delay trên là: (20+1)3ti? theo tôi tính thì chỉ có [(20-1)3+2+2 ]ti. Tác giả còn nói là nếu nạp vào reg_delay già trị là N thì Tdelay=(N+1)3ti? Tôi mới học pic nên còn non lắm.Mong các bác giúp thêm thanks! |
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Oct 2008
Bài gửi: 2
: |
![]() Minh dang hoc lap trinh cho pic nhung khong biet bat dau tu dau? Bai viet cua ban rat hay hy vong minh se nhan tiep bai viet moi cua ban!!!!
Thanks!!!!!!!!!!!! |
![]() |
![]() |
#6 |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
Bài 1 của bác hay lắm, đọc dễ hiểu. Bác có thể viết tiếp về ngắt, timer, counter, comparator, PWM... Đây mới là những phần đáng để ngâm cứu.
|
![]() |
![]() |
#7 |
Đệ tử 5 túi
|
sao trong doan code ko có phần khai báo hả anh ,ví dụ trisb equ 03h chẳng hạn ,em vẫn ko hiểu ,anh chỉ giùm !
__________________
Mạch - remote điều khiển từ xa qua RF 30m ,300m ,500m,1000m,... (đã test ) ,loại công suất lớn , loại cực nhỏ .... , rẻ ,giao hàng nhanh chóng toàn quốc (3 ngày), thâm niên 3 năm mua bán mạch RF 09 8485.bảy bảy.11 bán linh kiện ,MCU ARM , kit , dụng cụ , mạch www.nhattaoonline.com Hỗ trợ kỹ thuật đầy đủ. Tài liệu đầy đủ. |
![]() |
![]() |
#8 | |
Đệ tử 6 túi
Tham gia ngày: Jun 2005
Bài gửi: 141
: |
Trích:
cần gì phải khai báo. vì trong chương trình có tác động trực tiếp lên trisb rồi. movfw b'00000000' movwf trisb mplap sẽ tự hiểu trisb nằm ở địa chỉ 03h |
|
![]() |
![]() |
#9 |
PIC Bang chủ
|
Chính đang phải đi mổ chân, cho nên không thể viết bài tiếp được, hôm nọ anh quên mất vì quá nhiều việc.
Mọi người thông cảm. Khi nào Chính hồi phục sẽ viết bài tiếp cho các bạn học. 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? |
![]() |
![]() |
#10 |
Đệ tử 8 túi
|
Chào năm mới. Chúc mọi người một năm mới vui vẻ, hạnh phúc, và thành đat.
Đây là bài viết thứ hai, mời mọi người cùng xem. http://www.picvietnam.com/download/T...TCR.300106.pdf |
![]() |
![]() |
#11 |
Nhập môn đệ tử
Tham gia ngày: Oct 2005
Bài gửi: 3
: |
cảm ơn nhiều ,chúc mau bình phục và chúc mừng năm mới luôn .
__________________
nilyforever ![]() |
![]() |
![]() |
#12 |
Nhập môn đệ tử
Tham gia ngày: Feb 2006
Bài gửi: 7
: |
cam on su huynh. Bai cua huynh hay lam.
|
![]() |
![]() |
#13 |
Nhập môn đệ tử
Tham gia ngày: Jul 2008
Bài gửi: 3
: |
Lập trình PIC 16f877a trên Linux với SDCC
SDCC là trình biên dịch nhỏ gọn, ban đầu được phát triển trên Linux để biên dịch chương trình viết bằng C cho vi xử lý. Đối tượng ban đầu của SDCC là các vi xử lý họ 8051, vế sau được phát triển cho các vi điều khiển. Hiện nay SDCC lả trình biên dịch khá mạnh cho PIC chạy trên Linux (mặc dù đã có bản chạy trên MS Windows). Đi kèm với SDCC là trình mô phỏng GPSIM, và các chương trình hỗ trợ khác như gputils,...
Tôi giới thiệu giới thiệu trình biên dịch này bởi vì cấu trúc chương trinh viết bằng SDCC đơn giản, các file header (*.h) mô tả các vi điều khiển rất sát với Dataset của vi điều khiển. Ví dụ: trên Dataset của Microchip PIC 16f877a, mô ghi tên các chân cổng A là RA0, RÁ, ..., thanh ghi điều khiển vào ra cổng A là TRISA thì trên SDCC muốn xuất mức 1 cho chân RA0, bạn chỉ cần viết: TRISA0 = 0; RA0 = 1; Trông có vẻ đơn giản phải không? Vì vậy để điều khiển PIC bằng SDCC, gần như bạn chỉ cần học Dataset, bởi vì SDCC quá đơn giản và sát với Dataset! Kiến thức về vi điều khiển của mình còn co hạn. Mong các bạn chỉ giáo thêm, Cảm ơn! |
![]() |
![]() |
#14 |
Đệ tử 1 túi
Tham gia ngày: Feb 2008
Bài gửi: 13
: |
![]() Mình đang nghiên cứu về điều khiển từ xa bằng hồng ngoại và sóng radio. Mọi người ai có tài liệu gì về đề tài này thì chia sẻ cho mình với nhé. Cảm ơn nhiều!
|
![]() |
![]() |
#15 |
Nhập môn đệ tử
Tham gia ngày: Dec 2005
Bài gửi: 2
: |
Cam on ban ntc ve bai viet do. Rat co ban va chi tiet. Dieu nay se giup cho nguoi moi tim hieu ve PIC co cai nhin don gian ve PIC hon. Mong bac co nhieu bai viet moi de giup anh em trong dien dan tiep can voi PIC nhanh hon.
|
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề 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 | 16 | 19-02-2025 05:32 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 |