PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Pic16f877a TỪ DỄ TỚi KhÓ (http://www.picvietnam.com/forum/showthread.php?t=238)

doremino 13-05-2008 01:32 PM

cám ơn anh nhiều lắm!!!
anh có tài liệu về ngắt-timer cho em tham khảo với!!!!!!!!!

tamlan 13-05-2008 01:32 PM

hình như dạo này anh NTC quên mất nhiệm vụ rồi thì phải, lau quá không thấy máy cái bài mới nào cả, buòn thế

doremino 13-05-2008 02:40 PM

sao không ai trả lời bài của anh "nhong" cho em học hỏi với
 
Trích:

Nguyên văn bởi nhong (Post 14698)
Em làm bài tập pic đầu tiên với 16F877A bật tắt đèn led.

đầu tiên em cho nháy 1s một thì thấy nó nháy loạn cả lên rồi kết thúc bằng sáng trơ ra hoặc tắt ngóm(sau khoảng 4-5s) mà có lúc cả chân RB6 chân nó cũng sáng nữa(em chỉ cho nó nháy chân RB7 thôi) là sao?

sau đó em sửa cho nháy 2s một, nhưng khi nạp vào con pic rồi chạy thì thấy thằng led nó cứ sáng trơ ra chứ chẳng bật tắt gì cả là sao các bác.

với cả khi nạp cho pic mà cắm nhầm chiều vào mạch nạp thì có nguy hiểm không, rồi em cho verify trong winpic800 thì luôn bị lỗi(lúc program xong verify thì không sao cả), lại phải erase đi rồi program lại , như thế có hại ko. lỗi thế này
Error: verifying address0x000000 verified:0x3FFF Read:0x3000

cuối cùng: khi nạp mới 1 con thì phải erase hết đi rồi mới program lại hả các bác

em xin cám ơn.

code viết trong ccs như này(code trong luồng ccs for pic thôi, chỉ thay nháy 1s một thành nháy 2s một và chỉnh clock từ 10 thành 4mhz thôi)

Code:

#include<16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
main()
{
while(true)
        {
        output_high(PIN_B7);
        delay_ms(2000);
        output_low(PIN_B7);
        delay_ms(2000);
        }
}

PS/ nút reset làm việc tốt ạ :D vì khi ấn reset thì nó trở về trạng thái đầu, tất nhiên là vẫn lỗi như trên^^

Trả lời giúp đi các anh!!!!!

namqn 13-05-2008 06:36 PM

Trích:

Nguyên văn bởi nhong (Post 14698)
Em làm bài tập pic đầu tiên với 16F877A bật tắt đèn led.

đầu tiên em cho nháy 1s một thì thấy nó nháy loạn cả lên rồi kết thúc bằng sáng trơ ra hoặc tắt ngóm(sau khoảng 4-5s) mà có lúc cả chân RB6 chân nó cũng sáng nữa(em chỉ cho nó nháy chân RB7 thôi) là sao?

sau đó em sửa cho nháy 2s một, nhưng khi nạp vào con pic rồi chạy thì thấy thằng led nó cứ sáng trơ ra chứ chẳng bật tắt gì cả là sao các bác.

với cả khi nạp cho pic mà cắm nhầm chiều vào mạch nạp thì có nguy hiểm không, rồi em cho verify trong winpic800 thì luôn bị lỗi(lúc program xong verify thì không sao cả), lại phải erase đi rồi program lại , như thế có hại ko. lỗi thế này
Error: verifying address0x000000 verified:0x3FFF Read:0x3000

cuối cùng: khi nạp mới 1 con thì phải erase hết đi rồi mới program lại hả các bác

em xin cám ơn.

code viết trong ccs như này(code trong luồng ccs for pic thôi, chỉ thay nháy 1s một thành nháy 2s một và chỉnh clock từ 10 thành 4mhz thôi)

Code:

#include<16F877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
main()
{
while(true)
        {
        output_high(PIN_B7);
        delay_ms(2000);
        output_low(PIN_B7);
        delay_ms(2000);
        }
}

PS/ nút reset làm việc tốt ạ :D vì khi ấn reset thì nó trở về trạng thái đầu, tất nhiên là vẫn lỗi như trên^^

Theo hiện tượng bạn đã mô tả, có thể PIC được kích hoạt chế độ nạp chương trình ở điện áp thấp (LVP). Bạn nên thêm NOLVP vào directive #fuses.

Nếu cắm PIC ngược chiều vào socket trên mạch nạp thì còn tùy thuộc vào việc các chân của socket tại những vị trí ngược chiều đó có gây hư hại gì cho PIC hay không. Bạn chưa cho biết mạch nạp gì, socket được kết nối ra sao, thì không thể có câu trả lời chắc chắn.

Xóa chip trước khi nạp chip là thao tác cần thiết, một số phần mềm tự động thực hiện xóa chip trước khi nạp (và việc này cũng có thể được cấu hình bật/tắt), WinPic800 là phần mềm thuộc loại này.

Về lỗi verify của bạn, có lẽ mạch nạp của bạn không tốt lắm.

Thân,

doremino 13-05-2008 08:28 PM

cảm ơn anh nhiều!!em sẽ rút kinh nghiệm!!Anh có tài liệu về điều khiển ngắt -timer cho em tham khảo với!!em cảm ơn nhiều!!!

namqn 13-05-2008 08:49 PM

Trích:

Nguyên văn bởi doremino (Post 16194)
cảm ơn anh nhiều!!em sẽ rút kinh nghiệm!!Anh có tài liệu về điều khiển ngắt -timer cho em tham khảo với!!em cảm ơn nhiều!!!

Thông tin liên quan đến timer của PIC16 nằm trong datasheet của PIC. Tôi không rõ bạn cần thêm tài liệu gì. Thông thường chỉ cần đọc phần tương ứng của một timer nào đó trong datasheet và viết code khởi tạo, cùng với code xử lý ngắt cho timer, nếu sử dụng ngắt timer.

Thân,

doremino 14-05-2008 06:19 AM

Trích:

Nguyên văn bởi namqn (Post 16197)
Thông tin liên quan đến timer của PIC16 nằm trong datasheet của PIC. Tôi không rõ bạn cần thêm tài liệu gì. Thông thường chỉ cần đọc phần tương ứng của một timer nào đó trong datasheet và viết code khởi tạo, cùng với code xử lý ngắt cho timer, nếu sử dụng ngắt timer.

Thân,

anh có thể cho em biết ngắt ngoài là như thế nào?Có phải là chúng ta tác động bằng công tắt không?

bien_van_khat 16-05-2008 06:20 PM

Trích:

Nguyên văn bởi doremino (Post 16209)
anh có thể cho em biết ngắt ngoài là như thế nào?Có phải là chúng ta tác động bằng công tắt không?

Ngắt ngoài của PIC là ngắt do sự chuyển mức điện áp trên chân IO hỗ trợ ngắt ngoài (có thể lựa chọn ngắt xảy ra do chuyển từ mức cao xuống mức thấp hoặc mức thấp lên mức cao).

Bạn cũng có thể lưu ý, ngắt ngoài luôn luôn là ngắt có mức ưu tiên vật lý cao nhất (chỉ với PIC18 trở lên nhé, cấu trúc PIC16 ko có khái niệm ưu tiên ngắt).

nhatminh_happy 18-06-2008 03:43 PM

tai sao khi khai bao mang:
unsigned char dem_EEPROM[256];
thi dich binh thuong
con khi khai bao :
unsigned char dem_EEPROM[512];// lon hon 256
thi dich bao loi nhu sau:
MPLINK 4.1, Linker
Copyright (c) 2006 Microchip Technology Inc.
Error - section '.udata_BDPIC1.o' can not fit the section. Section '.udata_BDPIC1.o' length=0x00000200
Errors : 1


minh dang dung trinh dich c18 v10 full

david 18-06-2008 04:47 PM

nếu bạn dùng PIC6F877A thì SRAM của nó bé hơn 512 (hình như là 398 :D ) nên bạn không khai báo như thế được.

namqn: người hỏi đang dùng PIC18.

thuyvu 18-06-2008 09:29 PM

mình thấy có bạn nói về RS485 trong luồng này, Mình đang cần mạch chuyển RS485 sang RS232 bạn nào có mạch nguyên lý cho mình xin với mình cần lắm.
xuanvudk2@gmail.com

thuyvu 18-06-2008 09:38 PM

Trích:

Nguyên văn bởi tranvanthuong (Post 8556)
a! wên nữa chào anh_gioi anh vào các đề tài học tập dùng pic mà tìm chương trình C, hoặc trong luồng lập trình nhóm 16f877a cũng rất nhiều và anh nên bắt đầu từ đó em có 1 bài gởi cho anh ne!

Anh có tài liệu học vẽ mạch protell không cho em xin nhé:xuanvudk2@gmail.com

nguyenthinho 19-07-2008 02:24 PM

Cảm ơn bác namqn,ntc,f nhiều lắm nha.Em mới tìm hiểu về Pic thấy các bài viết của các bác rât có ích.hehehe

luuvandung 01-08-2008 11:22 AM

cam on cac anh nhe.hay pỏt nhieu tai lieu hon di

namqn: diễn đàn có quy định viết bài bằng tiếng Việt có dấu, và bạn không cần cài đặt gì thêm vào máy vì diễn đàn đã có sẵn bộ gõ, hỗ trợ các kiểu gõ thông dụng.

phamngocloi 04-08-2008 06:18 PM

anh em giup tui voi tui khong down dc cac chuong con lai
moi toi chuong 4 ah
co j goi qua visaokhongten1608@yahoo.com
cam on tuoc nha


Múi giờ GMT. Hiện tại là 03:08 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