![]() |
Trích:
Thân, |
Cái tôi cần nói là ở chỗ đó. Nếu bạn đã đi làm thì những ứng dụng ở cự ly gần có nhiều không?. Chúng ta nên làm những cái gì mà nó có ý nghĩa trong thực tế nhiều hơn. Làm không chỉ để học mà cũng phải có tính ứng dụng nữa.
|
Trích:
Tôi luôn luôn khuyến khích sinh viên của mình nghiên cứu dựa vào thực tế. Cám ơn bạn đã có lời khuyên như vậy. Thân, |
Trích:
Đơn cử một thí dụ, chúng ta có cổng IDE để giao tiếp với ổ cứng, nhưng hiện nay, giao tiếp SATA nối tiếp, cho phép đọc ổ cứng tốc độ cao hơn nhiều. Do vậy, điều bạn nói hoàn toàn không sai. Nhưng một vấn đề đặt ra, nếu như bạn giao tiếp với các thiết bị đóng gói, và những sản phẩm đóng gói, có thể những sản phẩm đó sẽ là các giao tiếp nối tiếp. Nhưng nếu như bạn sản xuất thiết bị, thì bạn sẽ thấy, trong đó còn rất nhiều phần cần dùng giao tiếp song song. Những linh kiện đơn giản như chuyển đổi ADC vẫn sử dụng giao tiếp song song, những linh kiện mã hoá, vẫn dùng giao tiếp song song. Trong một sản phẩm nhỏ vd như điều khiển động 3 động cơ bước cho ống kính thiên văn cá nhân, người ta vẫn dùng tín hiệu song song để điều khiển, vì tốc độ của nó chỉ cần 1 instruction để điều khiển động cơ bước đi 1 bước, và như vậy, trong vòng 3 instructions có thể điều khiển 3 động cơ bước, gần như tức thời. Nếu lập trình nối tiếp thì sẽ thế nào? Đây là ứng dụng thực tế, không phải là lý thuyết. picvietnam nhận vai trò đào tạo phổ cập, cho nên những vấn đề picvietnam đưa ra, một phần là hơi mang tính academic, có nghĩa là phải mang tính chất đầy đủ, chưa chắc ứng dụng nhiều. Bạn có thể không cần, nhưng người khác sẽ cần. Đó là một vấn đề khiến picvietnam phải hao tổn sức lực khá nhiều so với việc cứ làm rồi làm. Ví dụ như bài toán của F đưa ra, há chẳng phải F không thể làm được giao tiếp nối tiếp, nhưng F đặt ra bài toán, để các bạn học sinh, sinh viên suy nghĩ giải pháp. Điều này cho thấy rằng picvietnam luôn muốn các bạn sinh viên suy nghĩ, vận dụng đầu óc của mình, với những điều kiện cố định cho trước (giao tiếp PSP, song song) để thực hiện bài toán. Khi có những kinh nghiệm suy nghĩ này, thì việc ứng dụng nó vào trong thiết kế về sau sẽ giúp người kỹ sư có một cái nhìn tổng quát hơn, và khi cần thì người ta có thể biết cách dùng. Nếu bạn muốn thảo luận những vấn đề cao siêu, không mang tính chất học thuật mà ứng dụng nhiều, không mang tính chất đào tạo mà chỉ là trao đổi sơ qua, hoặc muốn thể hiện khả năng kỹ thuật của mình, hàng loạt sinh viên của F và bác BA sẽ có thể trả lời các vấn đề về PIC cho bạn tại www.dientuvietnam.net Về việc bạn nhận xét về các bài viết không được mọi người theo dõi nhiều, xin thông báo là hiện nay picvietnam có phần lỗi counter, không hiểu sao bộ đếm người xem không tăng khi có người ra và vào. Bạn lưu ý điểm này và có thể thử vào xem rồi đi ra. Số lượt xem hoàn toàn không thay đổi. Do bộ phận kỹ thuật hiện nay quá bận, và đang phải ổn định www.dientuvietnam.net, đồng thời cá nhân F đang phải thiết kế bộ thư viện về Điện Tử, Điều Khiển, và Toán Ứng Dụng, nên rất hạn chế về mặt thời gian. Hơn nữa, F cũng vẫn phải đi học trên lớp, và vẫn phải thi, cho nên về mặt thời gian càng hạn chế hơn. Việc sử chữa này F sẽ cố gắng thực hiện sớm nhất có thể. Mặc dù vậy, mỗi ngày F vẫn theo dõi không thiếu một bài trên picvietnam, và những bài có tính chất quan trọng, định hướng, và lý luận như của bạn, F sẽ phải dành thời gian để trả lời. Có lẽ vì anh Nam trả lời bạn một cách khúc chiết, và quá ngắn gọn, cho nên làm cho bạn có cảm giác về câu trả lời chưa được thỏa mãn. Mong rằng bạn hiểu được ý đồ của picvietnam, muốn đem pic đến cho mọi người. Chúng ta mỗi người, mỗi ngày làm một việc cho pic, F mong muốn rằng cái điều F nói "Học PIC trong 1 ngày" sẽ sớm thành sự thật. Đừng bảo việc gì khó thì không làm được, đó là tôn chỉ của picvietnam. Chúng tôi rất mong những người đã có kinh nghiệm làm việc như bạn cùng tham gia xây dựng và phát triển về pic, robotics và các bài học cho picvietnam. Sức một vài người không làm được gì cả, nhưng sức của cả một cộng đồng thì không có gì không làm được. "Học pic trong 1 ngày" không phải là điều mà F cố đạt được, mà đây là tinh thần kêu gọi, chúng ta sẽ làm được. Mong những đóng góp của bạn cho picvietnam nói riêng, và cho cộng đồng điện tử nói chung. Chúc vui. |
Trích:
Các vấn đề này mình đã có đề cập đến trong phần kết luận của bài viết TUT04. Bạn đọc xem như thế nào, rồi cho mình biết ý kiến nhá. :D Hì, đã nhấn mạnh là bài viết này mang tính academic nhiều hơn mà, nhưng ứng dụng của nó trong thực tế thì phải có trường hợp hữu dụng cho nó, giống như sự hữu dụng của RS485 trong môi trường công nghiệp vậy. Tùy thực tế mà mình quyết định dử dụng cái nào chứ bạn. Không để đem PSP vào các mạng công nghiệp, cũng như không nên đem RS485 vào ứng dụng trong các mạng cần khoảng cách ngắn và đơn giản, hì, nói nôm na là giết ruồi mà xài dao mổ bò. |
sao các bác ko có cái tut bằng C nhỉ ngôn ngữ C rất hay mà
|
Không, picvietnam hướng dẫn về căn bản, để mọi người hiểu bản chất của PIC, nên chủ trương sử dụng MPASM để mọi người hiểu rõ bản chất của nó. Việc sau này dùng C hoặc B, đó là chuyện rất đơn giản.
Chúc vui |
Trích:
|
Nhận định này của bạn rất hợp lý, chúng ta sẽ nhanh chóng đi đến việc phổ biến và nghiên cứu C, đó là cách cần thiết để tiếp cận với các dự án thực hành.
Do vậy, các thành viên vẫn thường xuyên viết các bài viết về C và trao đổi về C, ban điều hành của diễn đàn thì chú trọng vào phần MPASM. Thực tế, nếu ban điều hành không làm hoạt động nghiên cứu theo nghĩa hơi chuyên gia một chút, thì rất khó để có thể phát triển hoạt động và hỗ trợ, cũng như có cách nhìn về lâu về dài. Chúng tôi vẫn luôn ủng hộ các hoạt động trao đổi về các ngôn ngữ cấp cao, bằng chứng là chúng tôi hỗ trợ rất nhiều công cụ trình dịch, cũng như có box dành cho ngồn ngữ cấp cao. Tuy nhiên, thử nghĩ đến việc, cả ban điều hành cũng không làm việc với MPASM nữa, thì gần như hoạt động của các ngôn ngữ cấp cao sẽ phát triển rất nhanh, mà đôi lúc không thể có những bài hướng dẫn một cách bản chất cho các bạn được. Vd: Nguyễn Trung Chính phụ trách thực hành và báo cáo vừa qua về bootloader, PIC877A, và giao tiếp PSP, chúng ta không thể nói dùng dòng lệnh C này, dòng lệnh C kia để làm... Như anh Nam, hướng dẫn về dsPIC, thực sự mà nói, làm việc với dsPIC thì làm với C sẽ có nhiều lợi thế hơn, nhưng để các bạn hiểu, thì cách thể hiện bằng ASM30 là tốt nhất. Chúng tôi hoàn toàn ủng hộ các hoạt động của các thành viên và những người viết tut bằng ngôn ngữ cấp cao, còn nhiệm vụ của chúng tôi thì lại là nghiên cứu PIC... Nhưng F khẳng định một điều, khi các bạn hiểu ASM, sẽ rất tốt cho các bạn khi sử dụng ngôn ngữ cấp cao để làm việc Chúc vui |
Trích:
|
Em nghĩ việc học PIC thông qua ASM là rất là hay. Pic kô quá lớn để chúng ta phải dùng C để học và điểu khiển nó qua các driver như trong CCS cung cấp.
Điều này sẽ gây sự mù mờ cho người viết chương trình và cảm giác e sợ khi kô có driver đi kèm và đụng phải vấn đề liên quan tới phần cứng khác kô được sự hỗ trợ của driver. Khi học ASM ta sẽ dễ dàng hiểu cấu tạo và cách hoạt động của PIC và chúng ta có thể dùng C để viết thử driver cho PIC (điều khiển ADC, keypad, các ứng dụng tạo ngắt và timer). Điều này sẽ rất hữu ích và làm cho ta tự tin khi phải làm quen với các hệ thống lớn hơn. Em nghĩ phải đi từ thấp lên cao. Giống như ta học chữ vậy, phải học bảng chữ cái trước rồi mới ghép thành từ rồi ghép từ thành câu ..... Đây là ý kiến chủ quan của em. Mong nhận đc nhiều góp ý để đưa ra được cách học Pic tốt nhất cũng như tạo nền tảng cho ta phát triển làm các hệ thống Embedded sau này chẳng hạn. Hoanf Chúc ngủ ngon. |
Trích:
Một cây làm chẳng nên non Ba cây chụm lại nên hòn núi cao Hay học phép cộng: Hôm qua em giúp mẹ 2 việc: Quét nhà và trông em. Hôm nay em giúp mẹ rửa bát. Vậy em đã giúp mẹ mấy việc? Tôi chán nhất là học thuộc lòng bảng cửu chương. Nếu không có truyện tranh Lưu Bình - Dương Lễ hay một truyện hấp dẫn in kèm vào bảng cửu chương thì "có thể" tôi chẳng bao giờ thuộc được nó. |
Chào buổi sáng.
Bác ncv nói gi tui ko hiểu lắm nhưng tui xin nói thêm về điều tôi nói bữa hôm qua.:D Một người học chữ mà học cách viết một từ trước mà kô biết là một từ chỉ gồm các chữ cái ghép lại thì học đến bao giờ mớt hết. Còn về bảng cửu chương bác ncv nói thì nếu ta kô học bảng cửu chương trước thì làm sao ta có thể làm các bài toán cộng trừ nhân chia các số đơn giản đây chứ nói gì đến giải phương trình. Thân chào. Mong anh em góp ý để có cách học PIC tốt nhất. hoanf |
Các hàm trong các thư viện của ngôn ngữ cấp cao được xây dựng sẵn là rất thuận lợi. Nếu chỉ sử dụng hàm đó mà không tìm hiểu sâu hơn các chức năng bên trong thì đúng là thiếu sót, hơn nữa, khi có các yêu cầu phát sinh đối với các hàm khi xây dựng hệ thống, thì mình sẽ không xử lí được.
Có một điểm chung ở đây, đó là dù đứng trên phương diện nào, cũng cần phải tìm hiểu thấu đáo các công cụ mình đang tiếp cận. Một vài ý kiến của mình như vậy. :D |
Cam' on Anh Nguyen Trung Chinh'
Anh lam on post bai tiep di Em dang doc thay rat hay, rat de hieu. |
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. |
Trích:
|
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 |
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 |
ah,còn nữa,ở bài 2,có đoạn:
Code:
delay_0 Code:
delay_0 thanks |
Xin lỗi anh,em edit nhưng ko được
Hơi khó nhìn 1 chút thanks |
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à. :D |
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, |
Đấy, hèhè.
Cảm ơn anh Nam cứu bồ. :D |
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 |
bạn nên viết chương trình delay theo dạng như sau sẽ rất tiện:
Code:
DELAY được không bạn ? |
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:
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 |
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ả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 |
|
Thấy mấy anh bàn luận sôi nổi quá.
Em có 1 thắc mắc: khi trước, làm việc với 8051, em dùng ASM51 để biên dịch ra file hex. Bây giờ, học PIC, mấy anh cho em cái trình biên dịch cho PIC nhé, hình như là MPLAP như bác typhn có nói. Rất mong sự giúp đỡ! Thân mến! |
Tui học PiC bằng C trước khi hoc bằng ASM và hiểu rõ PIC hoạt động bằng cách giám sát mã ASM dịch ngược cho mỗi dòng lệnh . Do vậy học C không có nghĩa là sẽ không thể hiểu rõ PIC làm gì ,vấn đề là ta có muốn hiểu hay không , và bởi vì không có trình biên dịch nào mà kho hàm dựng sẵn của nó lại đủ cho tất cả mục đích và mong muốn của chúng ta . Đôi khi bạn có thể viết như thể viết kiểu ASM nhưng lại đang dùng kiểu thể hiện ( phong cách viết ) theo C ( không cần chèn mã ASM) , nhưng sẽ rất dễ nhìn , rõ ràng , thấy ngay được mọi thứ , và có thể đơn giản nhiều thứ ( ví dụ như lặp lại hoài việc chuyển bank phiền phức ). Tôi khoái C và mặc dù đang viết "CCS tiếng Việt " dở dang , nhưng tôi có ý định viết thành 1 quyển sách " Lập trình C cho PIC ", sử dụng CCS là chính , kết hợp MPLAB . Chỉ nói về C , còn ASM chỉ nói như là giải thích cách hoạt động của hàm , chương trình . Không biết điều này có là ngược đời hay không ?( nắm C trước , ASM nắm sau thông qua làm việc với C ) . Rõ ràng có ưu điểm : C dễ hiểu và viết nhanh , ASM chỉ cần hiểu , không cần phải viết . Nhưng các bạn có đồng ý về điều này ?
|
Mình mới chuyển sang tiếp cận PIC sau khi đã nghiên cứu 89C51 với trình dịch Keil. Khi dùng trình dịch này mình đã thấy hết ưu điểm của ngôn ngữ C với Micro-controler. Vì vậy, hiện tại mình rất ủng hộ và tán thành việc nghiên cứu PIC bằng ngôn ngữ C và tạm thời dùng trình dịch CCS. Txt đã có 1 ý tưởng rất hay là viết sách. Hoan hô bác Txt vì thành ý của bác dành cho anh em mới và đang tiếp cận PIC. Chúc bác viết sách thành công và sớm up lên diễn đàn cho mọi người. Mình sẽ theo dõi liên tục vấn đề này trong thời gian tới. Mong mọi người chỉ bảo thêm...
|
Dù mới tham gia, mình vẫn thấy luồng này vẫn lộn xộn quá. Nếu được, xin hãy tách riêng các bài viết bằng code C và ASM ra. Như vậy sẽ tiện theo dõi hơn.
|
Bạn đọc kỹ tiêu đề, luồng này nói về 16F877A, cho nên mục tiêu là để phác thảo nên các tính năng, ứng dụng của nó. Đây là một cách học khác với cách học lập trình.
Để học lập trình, bạn vào từng mục cụ thể, MPASM hoặc Các ngôn ngữ lập trình khác, để thảo luận riêng về một ngôn ngữ nào đó. Chúc vui |
Các huynh cho đệ hỏi chút: la cái CCS dịch xong chương trình ko thấy thông báo lỗi gì...nhưng khi debug lại ko được và có thông báo: cannot detect ICD type? Nghĩa là sao zaay....
vẫn có thông báo như thế kể cả khi tiểu đệ debug code cho CCS được viết trên diễn đàn này. |
Mấy anh cho em hỏi về giao tiếp ICSP.
Có tài liệu tiếng anh nhưng em đọc ko hiểu lắm thanks |
Trích:
Trong trường hợp MPLAB, nếu bạn không có ICD (thường là như vậy, vì ICD đâu có dễ gì mua được) thì bạn vẫn có thể debug bằng MPLAB SIM. Bạn vào mục mênu Debugger > Select Tool, chọn 2 MPLAB SIM. Còn CCS thì tôi không dùng nên không rõ, nhưng có vẻ như nó chỉ hỗ trợ ICD hay MACH X là mấy cái debugger của riêng hãng CCS, cùng với việc liên kết với MPLAB SIM. Thân, |
Trích:
Bạn dùng chức năng tìm kiếm của diễn đàn để tìm các luồng có liên quan đến ICSP để đọc thêm. Để sử dụng thì chỉ cần có mạch nạp hỗ trợ ICSP, mạch đích được thiết kế theo khuyến cáo của hãng Microchip, và một số chú ý mà tôi đã nói qua trong các luồng khác khi trả lời về vấn đề này. Thân, |
Cảm ơn anh.Em cũng hơi hiểu rồi
Mạch nạp em sử dụng là PG2C. Nếu cắm theo chuẩn ICSP thì ta có thể nạp cho PIC khi nó ở mạch ngoài mà ko cần cắm pic vào mạch nạp nữa. Thanks |
Múi giờ GMT. Hiện tại là 08:04 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam