|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
|
Ðiều Chỉnh | Xếp Bài |
|
13-05-2011, 11:02 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
Code cho pic 16f877a-quét 8 Led đơn
Em mới học về pic. Bác nào biết code quét 8 led đơn chạy đuổi nhau dùng MPLAB cho em xin được không! Em nghiên cứu hoài ma không ra.
|
14-05-2011, 03:47 PM | #2 | |
Đệ tử 3 túi
Tham gia ngày: Oct 2008
Bài gửi: 57
: |
Trích:
Bạn đọc file định nghĩa chân cẳng cho em pic mà bạn định dùng, sau đó bạn xem 1 ví dụ trong phần exsample của phần mềm ấy xem cấu trúc 1 chương trình như thế nào. Sau đó bạn tự code 1 ví dụ là chạy, đảm bảo bạn biết được nhiều thứ hơn đấy. Chúc bạn thành công. |
|
21-05-2011, 12:42 AM | #3 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 3
: |
Cam on cac anh nha! Nhung hinh nhu doan code tren co mot chut sai sot. Anh thanhute xem lai thu di
|
15-05-2011, 06:22 PM | #4 |
Nhập môn đệ tử
Tham gia ngày: May 2011
Bài gửi: 2
: |
bạn nên viết code rồi mô phỏng trên protues để thấy rõ ràng hơn, mới đầu học nên những bài như ded đơn bạn nên học thật kỹ để hiểu sâu về lập trình cho PIC sau đó bạn đi lên những ứng dụng cao hơn sẽ rất dễ dàng. Mình gửi cho bạn code theo yêu cầu của bạn, bạn hãy tham khảo nhé. Chúc bạn thành công.
Link dowload: http://www.mediafire.com/?vmd00u1k3a1s010 |
31-10-2011, 02:32 PM | #5 | |
Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 4
: |
Trích:
PROCESSOR P16F877A INCLUDE <P16F877A.INC> _CONFIG H'3F10' ORG 0X0000 GOTO START START BSF STATUS,5 CLRF TRISB BCF STATUS,5 CLRF PORTB LOOP MOVLW B'00000001' MOVWF PORTB CALL DELAY2 MOVLW B'00000010' MOVWF PORTB CALL DELAY2 MOVLW B'00000100' MOVWF PORTB CALL DELAY2 MOVLW B'00001000' MOVWF PORTB CALL DELAY2 MOVLW B'00010000' MOVWF PORTB CALL DELAY2 MOVLW B'00100000' MOVWF PORTB CALL DELAY2 MOVLW B'01000000' MOVWF PORTB CALL DELAY2 MOVLW B'10000000' MOVWF PORTB CALL DELAY2 GOTO LOOP DELAY1 MOVLW .166 MOVLW 20H LOOP1 DECFSZ 20H GOTO LOOP1 RETURN DELAY2 MOVLW .40 MOVWF 21H LOOP2 CALL DELAY1 DECFSZ 21H GOTO LOOP2 RETURN END ngoài ra bạn có thể dùng kĩ thuật bảng |
|
03-11-2011, 11:49 AM | #6 | |
Đệ tử 4 túi
|
Trích:
__________________
My blog: http://autumnneverreturn.blogspot.com/ Đối thủ khó chiến thắng nhất là bản thân !!! |
|
21-11-2011, 01:04 AM | #7 |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
chạy led đơn ở portb tích cực mức thấp tổng hợp 10 kiểu chạy, bạn có thể tham khảo
PROCESSOR 16F877A #INCLUDE<P16F877A.INC> DEM1 EQU 20H DEM2 EQU 21H __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ORG 0000H BCF STATUS,6 BSF STATUS,5 CLRF TRISB BCF STATUS,5 CLRF PORTB MAIN CHAY0 MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'10111111' MOVWF PORTB CALL DELAY MOVLW B'11011111' MOVWF PORTB CALL DELAY MOVLW B'11101111' MOVWF PORTB CALL DELAY MOVLW B'11110111' MOVWF PORTB CALL DELAY MOVLW B'11111011' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111011' MOVWF PORTB CALL DELAY MOVLW B'11110111' MOVWF PORTB CALL DELAY MOVLW B'11101111' MOVWF PORTB CALL DELAY MOVLW B'11011111' MOVWF PORTB CALL DELAY MOVLW B'10111111' MOVWF PORTB CALL DELAY MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'10111111' MOVWF PORTB CALL DELAY MOVLW B'11011111' MOVWF PORTB CALL DELAY MOVLW B'11101111' MOVWF PORTB CALL DELAY MOVLW B'11110111' MOVWF PORTB CALL DELAY MOVLW B'11111011' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111011' MOVWF PORTB CALL DELAY MOVLW B'11110111' MOVWF PORTB CALL DELAY MOVLW B'11101111' MOVWF PORTB CALL DELAY MOVLW B'11011111' MOVWF PORTB CALL DELAY MOVLW B'10111111' MOVWF PORTB CALL DELAY CHAY1 MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'11000000' MOVWF PORTB CALL DELAY MOVLW B'11100000' MOVWF PORTB CALL DELAY MOVLW B'11110000' MOVWF PORTB CALL DELAY MOVLW B'11111000' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'11111000' MOVWF PORTB CALL DELAY MOVLW B'11110000' MOVWF PORTB CALL DELAY MOVLW B'11100000' MOVWF PORTB CALL DELAY MOVLW B'11000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'11000000' MOVWF PORTB CALL DELAY MOVLW B'11100000' MOVWF PORTB CALL DELAY MOVLW B'11110000' MOVWF PORTB CALL DELAY MOVLW B'11111000' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'11111000' MOVWF PORTB CALL DELAY MOVLW B'11110000' MOVWF PORTB CALL DELAY MOVLW B'11100000' MOVWF PORTB CALL DELAY MOVLW B'11000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'00000001' MOVWF PORTB CALL DELAY MOVLW B'00000011' MOVWF PORTB CALL DELAY MOVLW B'00000111' MOVWF PORTB CALL DELAY MOVLW B'00001111' MOVWF PORTB CALL DELAY MOVLW B'00011111' MOVWF PORTB CALL DELAY MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'00011111' MOVWF PORTB CALL DELAY MOVLW B'00001111' MOVWF PORTB CALL DELAY MOVLW B'00000111' MOVWF PORTB CALL DELAY MOVLW B'00000011' MOVWF PORTB CALL DELAY MOVLW B'00000001' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'00000001' MOVWF PORTB CALL DELAY MOVLW B'00000011' MOVWF PORTB CALL DELAY MOVLW B'00000111' MOVWF PORTB CALL DELAY MOVLW B'00001111' MOVWF PORTB CALL DELAY MOVLW B'00011111' MOVWF PORTB CALL DELAY MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'00011111' MOVWF PORTB CALL DELAY MOVLW B'00001111' MOVWF PORTB CALL DELAY MOVLW B'00000111' MOVWF PORTB CALL DELAY MOVLW B'00000011' MOVWF PORTB CALL DELAY MOVLW B'00000001' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CHAY2 MOVLW B'10101010' MOVWF PORTB CALL DELAY MOVLW B'01010101' MOVWF PORTB CALL DELAY MOVLW B'10101010' MOVWF PORTB CALL DELAY MOVLW B'01010101' MOVWF PORTB CALL DELAY MOVLW B'10101010' MOVWF PORTB CALL DELAY MOVLW B'01010101' MOVWF PORTB CALL DELAY MOVLW B'10101010' MOVWF PORTB CALL DELAY MOVLW B'01010101' MOVWF PORTB CALL DELAY CHAY3 MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY CHAY4 MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'01000000' MOVWF PORTB CALL DELAY MOVLW B'00100000' MOVWF PORTB CALL DELAY MOVLW B'00010000' MOVWF PORTB CALL DELAY MOVLW B'00001000' MOVWF PORTB CALL DELAY MOVLW B'00000100' MOVWF PORTB CALL DELAY MOVLW B'00000010' MOVWF PORTB CALL DELAY MOVLW B'00000001' MOVWF PORTB CALL DELAY MOVLW B'00000010' MOVWF PORTB CALL DELAY MOVLW B'00000100' MOVWF PORTB CALL DELAY MOVLW B'00001000' MOVWF PORTB CALL DELAY MOVLW B'00010000' MOVWF PORTB CALL DELAY MOVLW B'00100000' MOVWF PORTB CALL DELAY MOVLW B'01000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY CHAY5 MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11100111' MOVWF PORTB CALL DELAY MOVLW B'11000011' MOVWF PORTB CALL DELAY MOVLW B'10000001' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'10000001' MOVWF PORTB CALL DELAY MOVLW B'11000011' MOVWF PORTB CALL DELAY MOVLW B'11100111' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY CHAY6 MOVLW B'01111110' MOVWF PORTB CALL DELAY MOVLW B'00111100' MOVWF PORTB CALL DELAY MOVLW B'00011000' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY MOVLW B'00011000' MOVWF PORTB CALL DELAY MOVLW B'00111100' MOVWF PORTB CALL DELAY MOVLW B'01111110' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY CHAY7 MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'10011111' MOVWF PORTB CALL DELAY MOVLW B'11001111' MOVWF PORTB CALL DELAY MOVLW B'11100111' MOVWF PORTB CALL DELAY MOVLW B'11110011' MOVWF PORTB CALL DELAY MOVLW B'11111001' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'11111001' MOVWF PORTB CALL DELAY MOVLW B'11110011' MOVWF PORTB CALL DELAY MOVLW B'11100111' MOVWF PORTB CALL DELAY MOVLW B'11001111' MOVWF PORTB CALL DELAY MOVLW B'10011111' MOVWF PORTB CALL DELAY MOVLW B'00111111' MOVWF PORTB CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CHAY8 MOVLW B'01111111' MOVWF PORTB CALL DELAY MOVLW B'10111111' MOVWF PORTB CALL DELAY MOVLW B'11011111' MOVWF PORTB CALL DELAY MOVLW B'11101111' MOVWF PORTB CALL DELAY MOVLW B'11110111' MOVWF PORTB CALL DELAY MOVLW B'11111011' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111101' MOVWF PORTB CALL DELAY MOVLW B'11111110' MOVWF PORTB CALL DELAY MOVLW B'01111110' MOVWF PORTB CALL DELAY MOVLW B'10111110' MOVWF PORTB CALL DELAY MOVLW B'11011110' MOVWF PORTB CALL DELAY MOVLW B'11101110' MOVWF PORTB CALL DELAY MOVLW B'11110110' MOVWF PORTB CALL DELAY MOVLW B'11111010' MOVWF PORTB CALL DELAY MOVLW B'11111100' MOVWF PORTB CALL DELAY MOVLW B'01111100' MOVWF PORTB CALL DELAY MOVLW B'10111100' MOVWF PORTB CALL DELAY MOVLW B'11011100' MOVWF PORTB CALL DELAY MOVLW B'11101100' MOVWF PORTB CALL DELAY MOVLW B'11110100' MOVWF PORTB CALL DELAY MOVLW B'11111000' MOVWF PORTB CALL DELAY MOVLW B'01111000' MOVWF PORTB CALL DELAY MOVLW B'10111000' MOVWF PORTB CALL DELAY MOVLW B'11011000' MOVWF PORTB CALL DELAY MOVLW B'11101000' MOVWF PORTB CALL DELAY MOVLW B'11110000' MOVWF PORTB CALL DELAY MOVLW B'01110000' MOVWF PORTB CALL DELAY MOVLW B'10110000' MOVWF PORTB CALL DELAY MOVLW B'11010000' MOVWF PORTB CALL DELAY MOVLW B'11100000' MOVWF PORTB CALL DELAY MOVLW B'01100000' MOVWF PORTB CALL DELAY MOVLW B'10100000' MOVWF PORTB CALL DELAY MOVLW B'11000000' MOVWF PORTB CALL DELAY MOVLW B'01000000' MOVWF PORTB CALL DELAY MOVLW B'10000000' MOVWF PORTB CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CHAY9 MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'00000000' MOVWF PORTB CALL DELAY CALL DELAY MOVLW B'11111111' MOVWF PORTB CALL DELAY CALL DELAY GOTO MAIN DELAY MOVLW D'200' MOVWF DEM1 LOOP DECFSZ DEM1 GOTO LOOP1 GOTO THOAT LOOP1 MOVLW D'250' MOVWF DEM2 LOOP3 DECFSZ DEM2 GOTO LOOP3 GOTO LOOP THOAT NOP RETURN RETURN END |
21-11-2011, 01:08 AM | #8 |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
eo ui post xong mới thấy chương trình mình dài quá @@ bạn thích sử dụng kiểu chạy nào thì cắt 1 đoạn đó thôi là được
chúc thành công |
29-02-2012, 02:20 PM | #9 |
Nhập môn đệ tử
Tham gia ngày: Feb 2012
Bài gửi: 4
: |
bạn ơi, có thuật toán nào gọn hơn ko...kiểu này thì đơn giản, nhưng ông thầy mình kêu thi ko cho làm kiểu này, mình nghĩ mãi ko ra..
ví dụ như là cho 1 con led chạy từ 1 đến 8 rồi sáng tám chạy tiếp từ đense 7 rồi sáng 7....cứ chạy đến khi sáng led thứ 1 rồi ngược lại. nhưng ko dùng thuật toán chỉ mov như của bạn nhé.. bạn giúp mình với...thanks |
11-03-2012, 11:16 PM | #10 |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
he he gọn hơn thì dùng bảng ( hay mảng) ak, tại tưởng bạn mới tiếp cận nên dùng cái cơ bản )
|
12-03-2012, 12:48 AM | #11 |
Nhập môn đệ tử
Tham gia ngày: Nov 2010
Bài gửi: 3
: |
#include <16F877A.h>
void main() { int k,i,p,t; Set_tris_b(0); while(1){ //sang ,tat { output_b(0x00); delay_ms(300); output_b(0xFF); delay_ms(300); } //chay tu trai qua phai for(k=0x01;k<0x100;k<<=1) {output_b(k); delay_ms(300);} //chay tu phai qua trai for(k=0x80;k>0;k>>=1){output_b(k); delay_ms(300);} //chay tu giua ra ngoai for(p=0x08,t=0x10;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; } //chay tu giua vao trong for(p=0x80,t=0x01;p>0;p>>=1){output_b(p|t);delay_m s(300); t<<=1; } //chay sang dan tu phai qua trai va nguoc lai k=0x00; for(i=0x01;i<0x100;i<<=1){k=k+i; {output_b(k);delay_ms(300); }} for(i=0x80;i>0;i<<=1);{k=k-i; {output_b(k);delay_ms(300);}} } } |
13-03-2012, 03:52 PM | #12 | |
Đệ tử 3 túi
Tham gia ngày: Nov 2011
Bài gửi: 58
: |
Trích:
|
|
22-09-2013, 01:10 PM | #13 | |
Nhập môn đệ tử
Tham gia ngày: Jun 2013
Bài gửi: 10
: |
Trích:
|
|
15-11-2012, 08:09 PM | #14 |
Nhập môn đệ tử
Tham gia ngày: Nov 2012
Bài gửi: 1
: |
có thể dùng code ngắn hơn bằng lệnh RCF hay RRF
|
22-09-2013, 10:21 AM | #15 |
Đệ tử 1 túi
Tham gia ngày: Apr 2011
Bài gửi: 11
: |
reply
|
|
|