![]() |
Ở đây có anh nào dùng proteus chưa.
Em tìm trong thư viện ko có con p16f877a nên em dùng con p16f877 Vì 2 con này cũng gần giống nhau Nhưng em tìm mãi ko thấy chân VDD và VSS đâu. 2 chân này đã bị ẩn đi thì phải Có anh nào biết cách làm nó hiện lên ko? thanks |
Bạn định dùng Proteus với PIC16F877 để làm gì?
Có thể có cách khác để đạt được mục đích của bạn mà không phải hiện các chân hidden của chip. Thân, |
Em định dùng để mô phỏng chương trình của anh NTC
Làm mấy cái led nhấp nháy,chạy từ trái qua phải... Nhưng muốn nó hoạt đọng phải cấp nguồn +5v cho nó Nhưng em ko thấy chân VDD và GND thì làm sao mà cấp nguồn được hả anh thanks |
Chú typhn phức tạp gớm.
Có mấy cái led thì mô phỏng làm gì. :D |
Sao may hom nay em vao ma khong thay' cac anh post tiep' bai len vay?
Mong qua'.....................hic... |
Trích:
Thân, |
Anh Nguyễn Trung Chính ơi. Anh viết tiếp về ADC đi. Sao em làm giống như hướng dẫn trong datasheet mà nó không chạy.
|
Thì bạn cứ gửi code và sơ đồ nguyên lí mạch lên để cùng thảo luận.
Uh, sắp xong tutorial mới rồi. Ráng chút xíu đi. :D |
cac anh oi, chuong trinh duoi day em viet neu nap cho pic 16f877a thi lieu no co chay khong, em đã viết nó để nạp cho pic 16f876a ,nhưng khi thử nghiệm với pic 16f876a thì ở portb em thấy các led đều tắt, cho em hỏi chương trình em viết để nạp cho pic16f876a có sai chỗ nào không?
#include<p16f876a.inc> ;chen thu vien lien ket cho chuong trinh org 0x20 count1 res 1 count2 res 1 org 00h goto START START clrf PORTB bsf STATUS,RP0 ;chon bank1 movlw D'0' movwf TRISB ; chon bortb xuat bcf STATUS,RP0 movlw b'00000001' movwf PORTB call DELAY QUAY1 rlf PORTB,1 ;co so 1la vi de dua vao portb call DELAY btfss PORTB,7 goto QUAY1 QUAY2 rrf PORTB,1 call DELAY btfss PORTB,0 ;bit0 goto QUAY2 goto $ DELAY movlw D'250' movwf count1 movlw D'250' movwf count2 LOOP1 decfsz count1,1 ;giam count xuong 1 goto LOOP1 LOOP2 decfsz count2,1 goto LOOP2 return end |
Chương trình viết cho PIC16F876A có thể chạy tốt trên PIC16F877A.
Chương trình của bạn đã viết không có vấn đề gì về cú pháp, nhưng chương trình con DELAY của bạn chỉ thực hiện delay khoảng 1500 chu kỳ lệnh, có thể là quá nhanh để bạn nhìn thấy thay đổi ở ngõ ra bằng mắt thường nếu tần số của vi điều khiển nằm trong tầm MHz. Nếu vi điều khiển có clock là 4 MHz thì tần số của các dịch chuyển giữa các bit là khoảng hơn 660 Hz! Thân, |
Cac anh post tiep di
|
cam on su huynh. Bai cua huynh hay lam.
|
bài viết thật là hay
mong bạn có điều kiện post nhiều chuyên mục nữa lên để anh em cùng tham khảo |
Thấy các bác khen bài viết của ntc nhiều nên em down về đọc thử thì thấy trong TUT về hàm delay bác ấy tính toán nhầm loạn cả lên. Các bác mà tính toán theo cách tính của ntc thì chỉ có vỡ thớt. Đề nghị mọi người đọc kỹ lại cái TUT này đi. Em chỉ ví dụ cái công thức số (4) nếu tính đúng phải là: [(N-1)*3+4]*Ti . Cái công thức đầu mà sai thì tất nhiên các công thức phía sau mà dựa vào công thức này cũng sẽ sai. Chỉ là góp ý thôi các bác đừng trách em là soi mói nhé.
Nhưng cũng phải công nhận là những người mới làm quen với vi điều khiển mà có mấy cái TUT của bác ntc thì hữu ích lắm đấy. Bác ntc cố gắng viết nhiều TUT hơn nữa để anh em được nhờ. |
Trích:
Anh viết xong chưa,em mong bài của anh từ lâu lắm rồi |
cảm ơn bạn ntc vì bai của bạn viết dễ hiểu . tôi đang học về pic đây nhờ bạn post tài liệu về các tâp lệnh và ứng dụng lệnh như bài 1 cho mọi người cùng học hỏi với
|
chao cac bac
em dang muon tim hieu ve pic nhung khong biet bat dau tu dau mong cac bac chi giao em xin cam on |
Trích:
sao các bạn không qua luồng [PIC6F877A nào ta cùng chat] hay luồng [lập nhóm PIC6F877A] mà thảo luận nhỉ? luồng để thảo luận mới có vài trang thôi các bạn à... |
ah pic 16f877a có giao tiếp I2C ko? em chưa bít j về I2C cả ,có thể mod NTC cho cai tut về vấn đề này hay ko hay cho em link nào đó để hướng dẫn em làm I2C cũng được ko? mong được chỉ giáo thêm nhiều vể I2C!!!
|
Trích:
http://www.picvietnam.com/forum/show...6&postcount=95 Thân, |
Các bác cho em hỏi tý:em viết 2 chương trình giống nhau đều là xuất dữ liệu ra cổng PORTB, viết bằng MPASM thì chạy được con viết bằng CCS C thi lại chạy không đúng là sao vậy. Em đã dịch ra mã AMS rồi, 2 chương trình đều tương đương nhau
|
Dung la thu tui dang can, cam on nhieu
Mong cac bac tiep tuc post them nhieu bai nua Tui con dot lam nen mong duoc cac bac giup do nhieu |
Hi All
Về PIC877 và các bài lập trình cho các tính năng ngoại vi của nó tôi có tổng hợp và đưa lên dientuvietnam.net tại :http://dientuvietnam.net/forums/showthread.php?t=1008 - Chương trình viết trên CCS - Các mạch điện vẽ băng Orcad9.2 Có khá nhiều chương trình hay, nhiều mạch chính là đồ án cho các môn học của tôi, mạch chạy chính xác, code dễ hiểu (CCS mà). Chúc thành công với PIC. |
co ban nao viet chuong trinh ve quet LED khong chi giup minh voi?
|
Trích:
|
1 Attachment(s)
Hi all!
:D Mình quay lại diễn đàn với một tutorial mới đây. Đây là một bài tập ứng dụng để thiết kế một real time clock sử dụng IC thời gian thực DS12c887, bao gồm các hướng dẫn xây dựng các module ứng dụng và hoàn tất ứng dụng. Trong bài tập này, mình chưa đặt ra yêu cầu hoàn thiện ứng dụng. Công việc này chúng ta sẽ cùng làm, cùng xây dựng. Như vây sẽ tốt hơn. Mình để trống một số chỗ chưa hoàn thiện, với ý đồ, làm chạy được rồi, nhưng mà thấy hơi ngứa mắt, thì mọi người sẽ tìm cách làm cho nó đỡ ngứa mắt hơn. :D Những điểm chưa hoàn thiện, và những chỗ cần hoàn thiện cho ứng dụng, mình sẽ chỉ ra sau. Chúng ta sẽ xây dựng ứng dụng theo cách suy nghĩ "củ chuối" nhất, và dễ hiểu nhất. Sau khi đã thực hiện thành công, vấn đề hoàn thiện sẽ được đặt ra sau, từ chương trình đến mạch ứng dụng. Thôi, nói nhiều quá. Nó đây! Hy vọng có người chịu thực hành, và hi vọng nó giúp ích cho các thành viên của PICVIETNAM. :D |
2 Attachment(s)
Mình gửi thêm sơ đồ nguyên lí mạch và datasheet của ds12887 để mọi người tham khảo thêm.
Chú ý là module ứng dụng cho ds12887 trong tutorial mình viết dựa trên giản đồ xung của chip. Nên nếu vừa đọc tutorial, vừa xem giản đồ xung trong datasheet thì sẽ dễ hiểu hơn. :D |
Thanks anh NTC rất nhiều,anh viết tut rất hay và dễ hiểu
Hi vọng một ngày nào đó em sẽ đóng góp nhiều cho diễn đàn như anh vì bây giờ kiến thức em còn hạn chế quá |
Chào bác!
Tôi có xem các bài đó nhưng tôi thấy bác không post phần chương trình trên PC lên rất khó theo dõi ( do tôi mới học PIC), bác có thể Post cả phần chương trình trên máy tính được không? Cảm ơn bác! |
Xin lỗi!
ý tôi đang nói bài của bác linhnc308 |
Bác nào chỉ giùm tôi với!
#include <16F877A.h> #include <DEFS_16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) #define RunningLed RD2 int8 ch; void main(void) { //Output_high(PIN_D2); RunningLed = 1; while(true){ ch = getc(); if (ch == 0) { putc(ch); } else { ch = ch + 1; putc(ch); } } } Trên đây là chương trình tôi viết thử để giao tiếp với PC, nhưng không được. Có hai điều tôi muốn hỏi các bác! - Tại sao khi tôi dùng lệnh RunningLed = 1; ở trên thì mạch lại không chạy ( tức là chân RD2 không tích cực mức cao). Còn khi tôi dùng lệnh output_high(PIN_D2) thì lại được. - Tôi dùng chương trình mô phỏng giao tiếp nối tiếp của CCS và chạy thử chương trình trên thì không được Bác nào bớt chút thời gian trở lời giúp được không! Bác nào có thể post cho tôi một chương trình giao tiếp với PC được không, cả trên PC lẫn chương trình của PIC |
Trích:
Trong tập tin "DEFS_16F877A.h" bạn có định nghĩa RD2 hay không? Nếu có thì định nghĩa như thế nào? Thân, |
Cảm ơn bác nhiều!
dùng output_high(PIN_X) nhiều khi thấy bất tiện, con thu vien DEFS_16F877A.h là mình load trên diễn đàn này. Bác cho hỏi luôn tại sao tôi viết như trên dùng Serial Input/output monitor thì không test được? |
ch = getc();
if (ch == 0) { putc(ch); bạn không mô phỏng được vì nếu bạn nhập thử vào màn hình đen phim 0 thì nó gửi xuống là mã ASCII của số 0 = 0x30h. bạn thử nhập vào mục Hex Send xem. Một điều nữa là check lại phân setting cổng COM |
bac NTC cho them tut ve LCD di.thanks bac NTC cai tut ve RTC nha,doc de hieu lam.h dang lam thu voi no
|
Hiện nay F đang giao cho NTC làm về phần truyền thông, vì vậy chắc chưa có thời gian làm tutorial về LCD. Tuy vậy, hiện nay trong luồng Lập nhóm 877 bạn nhh đang viết các tài liệu hướng dẫn mô phỏng và thiết lập LCD cũng như LED 7 đoạn khá hay, bạn có thể theo dõi ở đó.
Chúc vui. |
Cảm ơn linhnc308!
Tôi thực sự thấy mình ngu dốt, tôi có về thử lại nhưng vẫn không được, bực quá tôi viết thử lại môt chương trình test đơn giản khác để thử mà vẫn không được. Tôi gửi một số hex vào thì nhận được mốt số hex khác và toàn là số 0 (0x00h), chân RXT trên Serial Input/output monitor sáng liên tục. Bác có thể chỉ giùm tôi cái lỗi của tôi được không? Dưới đây là đoạn chương trình mà tôi viết lại. #include <16F877A.h> #include <DEFS_16F877A.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) #define RunningLed RD2 int8 ch; void main(void) { Output_high(PIN_D2); //RunningLed = 1; while(!true){ ch = getc(); if ((ch >= 0x30)&(ch <= 0x7A)){ putc(ch); } } } Bác nào đã test giao tiếp PIC với PC rồi xin chỉ giáo để tử ngu dốt này với! |
Tôi không thấy đoạn code của bác bị gì cả! Copy- past vào CCS C là chạy bình thường trừ 1 lỗi: bỏ dấu "!" trước true trong vòng lặp while, vì not true nghĩa là false mà false thì biết bao giờ nó mới thực thi! (He he he)
Nếu sửa lại mà vẫn ko chạy thì bác xem lại modul giao tiếp với PC ( hổng biết có mắc lộn chân Tx với Rx hay ko? |
Cám ơn bạn
Tôi đã sử lý tạm thời được rồi, nhưng không hiểu tại sao tôi chỉ truyền một ký tự mà nó đáp lại hàng đống ký tự. (khoảng chục ký tự thì nó mới dừng lại). |
Tối viết tạm 1 chương trình đơn giản mà bạn có thể test được!
Chương trình trên PC viết bằng VB, còn chương trình trên PIC thì bạn có thể lấy ngay đoạn code của bạn đã viết đó ( Tôi đã thử rồi nếu như ko có gì trục trặc thì OK hết, nếu có gì trục trặc thì tôi bó tay. He he!). Bạn nhập số hay kí tự vào ô text2, thì PIC sẽ trả kết quả vào ô text1 sau khi nhấn command1. VD: bạn nhập vào đó chữ 'A' hay số '80' thì sau khi nhấn command1 ô text1 sẽ hiện chữ 'A' hoặc '80'. Việc nhập số hay kí tự thì bạn tự tìm hiểu thêm về việc truyền thông nối tiếp vậy, vì không phải nhập cái gì cũng được đâu, nó sẽ báo lỗi tè lè đấy, bạn có thể phân tích kĩ đoạn code tôi viết để hiểu thêm ( rất đơn giản!) Good luck!! |
Múi giờ GMT. Hiện tại là 07:26 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam