![]() |
Trích:
Hiện tượng này giống như chân MCLR bị thả nổi. Thân, |
ô là la mới mua nhầm 1 chú pic 18 thôi kệ học đại vậy, dzị mà nạp chương trình vào pic xong cho chạy chạy được 1 nhịp rồi nín khe, vịn vào nguồn cấp âm hoặc dương thì đều chạy tốt định lên hỏi mấy anh nhưng trời ơi thấy cũng giống hệt mình, mấy anh có kinh nghiệm giải quyết vụ này chỉ bảo em với (em cũng đang tìm hiểu sự cố này mặc dù nguồn đã được nắn lọc cực tốt)
namqn: đã nói trên kia rồi, có thể chân MCLR bị thả nổi. |
Hic gặp được người đồng cảnh ngộ mừng quá :p
Em vẫn chưa giải quyết đc cái vụ này, dù chân MCLR đã nối lên Vcc qua 1 trở 10K , làm nút reset đàng hoàng nhưng tình hình vẫn vậy, cứ chạm tay vào GND thì mới chạy bỏ ra là tịt :( |
Trang WEB ma ban "Le vu" đưa ra khá hay. Tôi đã lặp các mạch cho con 2550 theo như trên web và tất cả đều chạy rất tốt, code chương trinh cũng đơn giản và dễ hiểu, gúp cho người dùng dễ dàng modifê lại.
Liệt kê các Project: - Làm OSC đơn giản (tần số thấp) - Quét led RGB - Giao tiếp GLCD, làm OSC - Giao tiếp không dây chuẩn ZigBee (bộ RF-24 ở VN có ai bán ko nhỉ, giá cả ?) ... Mọi người cung tham khảo. |
Trích:
Thân, |
A ha vui quá bạn omen ơi mình tìm ra nguyên nhân rồi đúng như anh linh đã nói đúng là nguyên nhân do ta khai báo config không đủ : trong các loại config sau có một cái gây ra lỗi nhưng mình hong rõ là cái nào nữa: NOBROWNOUT,NOCPD,NOWRT,NODEBUG cái này chắc phải nhờ trưởng lão giải thích hộ tụi mình thôi.
|
Trích:
NOCPD: tắt bảo vệ data EEPROM, hoàn toàn không liên quan. NOWRT: tắt bảo vệ ghi (cái này là mặc nhiên), cũng hoàn toàn không liên quan. NODEBUG: tắt bộ background debugger, cái này mà để bật thì nó sẽ đi vào chế độ gỡ rối, nghĩa là giống như đang được debug bằng ICD 2 vậy. Nếu vào chế độ stepping thì phải có lệnh từ ICD 2 nó mới chạy 1 lệnh. Chỉ thử với NODEBUG xem. Mà các bạn viết code gài kiểu này thì ai mà gỡ rối cho nổi. Quy tắc cần phát biểu ở đây: "Cấu hình đầy đủ cho chip rồi hãy thử chương trình". Thân, |
Ôi mừng quá bác namnq và bác thaithienanh ơi :p em tìm ra rồi, đó là bỏ check cái option LVP (low voltage programming ) trong tap Setting của Winpic800 đi, thế là được, nạp xong chạy vù vù :)
Tuy nhiên đó là em mới thử được trên 16F877a, chưa thử được trên 18F4550, con 18F4550 của em ... nó ... đi về nơi xa lắm rồi :(( , và thế là sẽ ko theo được luồng này nữa rồi, h chuyển qua luồng "CCS C for 16F877a" vậy :) Bác thaithienanh thử uncheck cái LVP xem có được ko , chúc bác may mắn :) namqn: Ở đâu đó trên forum này tôi đã nói là dùng LVP thì phải xác định điện áp cho chân PGM (kéo nó xuống GND qua điện trở vài k), không thả nổi nó mà. Đúng là mỗi người một bệnh. |
Mình dùng Pic 18f4580 để lập trình với ứng dựng đơn giản để thử thì gặp lỗi mà không khắc phục được
Ứng dụng của mình chỉ hiển thị ra led 7 đoạn và tăng giá trị sau mỗi phím bấm Tuy nhiên , quá trình chạy thử thì có vấn đề như sau: vấn đề : khi bộ đếm đến 4 thì reset trở về lại đầu chương trình lúc đó , - khi thực hiện lệnh MOVF COUNT,W,0 thì thanh ghi PCL có giá trị là 0x0000CC h ,Status : 0x01 h, STKPTR : 0x01 , thanh ghi W có giá trị là 0x0A , biến COUNT có giá trị là 0x0A h - khi thực hiện lệnh CALL TABLE thì nhảy đến vị trí có nhãn là TABLE , thanh ghi PCL có giá trị là 0x000F4 h , Status : 0x01 h , STKPTR : 0x02 dỉnh ngăn xếp TOS là : 0x0000D0 - khi thực hiện lệnh ADDWF PCL ,f,1 thì PCL có giá trị là 0x00000 và reset lại tại vị trí ban đầu (không phải reset chưong trình vì tất cả các giá trị khác vẫn không bị reset như thanh ghi STKPTR vẫn còn giá trị là 0x02) và thực hiện từ đầu chương trình Tại sao trong những lần thực hiện lệnh ADDWF PCL,f,1 không xảy ra reset mà chỉ khi biến COUNT có giá trị là0x0A . Mình cũng có một số thay đổi khác thì cũng xảy ra trường hợp giống như vậy khi biến COUNT có giá trị là 0x006 Như vậy nguyên nhân do đâu mà xảy ra reset như trên, cách khắc phục. Mình cũng đã thử viết chương trình với những ứng dụng khác đơn giản hơn như nháy led hay chạy led lan dần thì không gặp vấn đề gì cả , chứng tỏ là config cho PIC là đúng Sau đây là mã viết bằng ASM Code:
LIST P=18F4580 ;CHON PIC HOAT DONG |
Phần code để giải mã của bạn đang nằm gần biên của các trang 256 byte. Như bạn đã cho biết, PCL = 0xF4 khi nhảy đến TABLE. Trước khi thực hiện lệnh cộng thì PCL sẽ được tăng thêm 2, cộng với giá trị mà bạn muốn giải mã là 0x0A thì bạn có thể thấy tại sao PCL = 0x00 (PCL = 0xF4 + 0x02 + 0x0A).
Bạn tìm hiểu lại về vấn đề xử lý PCH và PCL khi dùng kỹ thuật bảng. Thân, |
Để sửa lỗi trên thì bạn nên sửa như sau ở đoạn Table:
org 0x100 TABLE: movlw high(TABLE) movwf PCLATH movf Count,0 ADDWF PCL,F,1 RETLW 0XC0 ;SO 0 RETLW 0XF9 ;SO 1 RETLW 0XA4 ;SO 2 RETLW 0XB0 ;SO 3 RETLW 0X99 ;SO 4 RETLW 0X92 ;SO 5 RETLW 0X82 ;SO 6 RETLW 0XF8 ;SO 7 RETLW 0X80 ;SO 8 RETLW 0X90 ;SO 9 RETLW 0X88 ;chu A RETLW 0X83 ;chu B RETLW 0XC6 ;chu C RETLW 0XA1 ;chu D RETLW 0X86 ;chu E RETLW 0X8E ;chu F RETLW 0XFF ;OFF |
nếu còn thắc mắc gì thì cứ chat với tôi nhé, sẵn sàng giúp đỡ, :D. YM: hiendl2k42
|
em mới học pic18f4550 nên cũng chưa biết gì cả mong các anh chỉ giúp.
1. trong proteus em không thấy cong 18f4550 hoặc con 18f4455 đâu cả. thế để mô phỏng nó thì làm thế nào hả các bác. hay có con nào tương tự trong proteus không 2.chân rb4 mắc điện trỏ 10k lên 5v là để làm gì hả các bác. thế khi điều khiển đèn bằng portb có cần mắc con này không. 3. em viết chương trình bằng ccs 3.249. và con 18f có cần khai báo thêm device*=16 ADC = 8 có tác dụng không để dùng toàn bộ RAM không. em thấy có khai báo hay không vẫn tốn dung lượnng RAN như nhau. em viết thử 1 đoạn code điều khiển đèn nhưng không mô phỏng được và cũng chưa có mạch để text thử nên nhờ các đại ca xem thử Code:
#include <18F4550.h> |
đã có mạch tẽt thủ nhưng không thấy chạy gì cả không biết có phải config sai không. mạch text thì em dùng mạch của của con 16f877a chạy tốt và chỉ thêm mấy cái tụ 104 và 5v và mass thôi.
xin mấy đại ca chỉ giáo |
song song --> noi tiep
mấy anh chỉ hộ em mấy con IC chuyển song song --> nối tiếp với.
//====================================== dạng vào n bit -->lock n bit--> clock out 1 em đang cần con này để trị thằng 595. |
| Múi giờ GMT. Hiện tại là 11:30 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