PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

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 ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 14-06-2009, 08:05 PM   #1
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Arrow Lại giúp mình sửa cos ASM với

Mỗi lần post lên đây là mỗi lần thấy quá tệ, nhưng lại phát hiện ra những điều đơn giản mình chưa biết. Mong mọi người giúp đỡ.
Giúp mình sửa cos ASM này với. Mình làm thử đèn cầu thang bằng các lệnh btfss... đơn giản nhưng làm lâu rồi, mở ra sửa tới sửa lui vẫn không chạy?....
Code:
PROCESSOR 16F877A
#INCLUDE <P16F877A.INC>
	ORG 	0X0000
	BCF 	STATUS,6
	BCF 	STATUS,5
	CLRF 	PORTA
	CLRF 	PORTB
	BSF 	STATUS,5
	BCF 	TRISB,0
	BSF 	TRISA,0
	BSF 	TRISA,1		
	BCF 	STATUS,5
	
MAIN
	BTFSS 	PORTA,0
	GOTO 	LOOP
	BTFSS 	PORTA,1
	GOTO 	LOOP1
	GOTO 	MAIN
LOOP 
	BTFSS 	PORTA,0
	GOTO 	LOOP
	GOTO 	KIEMTRA		
LOOP1 
	BTFSS 	PORTA,1
	GOTO 	LOOP1
	GOTO 	KIEMTRA
KIEMTRA
	BTFSS 	PORTB,0
	GOTO 	ON 
	GOTO 	OFF
	
OFF
	BCF 	        PORTB,0
	GOTO 	MAIN
ON 
	BSF 	        PORTB,0
	GOTO 	MAIN
END
Mình làm mãi mà cái portb nó vẫn không sáng lên khi mình nhấn nút.
Hình Kèm Theo
File Type: jpg den cau thang.JPG (52.6 KB, 61 lần tải)

thay đổi nội dung bởi: namqn, 14-06-2009 lúc 10:41 PM. Lý do: định dạng code
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-06-2009, 10:58 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Với PIC16F877A, bạn nên đặt giá trị cho thanh ghi ADCON1 là 0x06 hoặc 0x07 để thiết lập các chân RA0 và RA1 là các chân vào/ra dạng số, trước khi đọc trạng thái logic của chúng. Nếu bạn không thực hiện điều này, trạng thái logic được đọc về của các chân RA0 và RA1 sẽ luôn luôn là '0', bất chấp tín hiệu thực đặt vào các chân này từ bên ngoài.

Tôi không kiểm tra thuật toán trong đoạn code của bạn, nhưng có gợi ý rằng việc điều khiển đèn cầu thang từ 2 vị trí có logic tương tự với XOR hay XNOR của 2 tín hiệu từ 2 công tắc. Do đó không cần viết code rườm ra như bạn đã làm.

Tôi cũng nhận thấy trong sơ đồ mô phỏng của bạn, bạn dùng 2 nút nhấn (button) chứ không phải 2 công tắc (switch).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-06-2009, 08:50 PM   #3
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Cám ơn anh thật nhiều vì lời chỉ dẫn. Tôi đã ứng dụng và sửa lại cos nhưng đèn sáng luôn.
Sử dụng 2 nút nhấn cũng là đề bài yêu cầu. Thực ra bài này không ai làm như vậy, nhưng nó có nhiều cách viết. Để hiểu được cos tôi phải viết những đoạn cos ngắn để hiểu. Vì vậy mong anh xem lại cos và phát hiện dùm chổ sai sót, vì sao lại sai.
Thân!
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-06-2009, 10:15 PM   #4
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi maitruccucdao View Post
Mỗi lần post lên đây là mỗi lần thấy quá tệ, nhưng lại phát hiện ra những điều đơn giản mình chưa biết. Mong mọi người giúp đỡ.
Giúp mình sửa cos ASM này với. Mình làm thử đèn cầu thang bằng các lệnh btfss... đơn giản nhưng làm lâu rồi, mở ra sửa tới sửa lui vẫn không chạy?....
Code:
PROCESSOR 16F877A
#INCLUDE <P16F877A.INC>
    ORG     0X0000
    BCF     STATUS,6
    BCF     STATUS,5
    CLRF     PORTA
    CLRF     PORTB
    BSF     STATUS,5
    BCF     TRISB,0
    BSF     TRISA,0
    BSF     TRISA,1        
    BCF     STATUS,5
 
MAIN
    BTFSS     PORTA,0
    GOTO     LOOP
    BTFSS     PORTA,1
    GOTO     LOOP1
    GOTO     MAIN
LOOP 
    BTFSS     PORTA,0
    GOTO     LOOP
    GOTO     KIEMTRA        
LOOP1 
    BTFSS     PORTA,1
    GOTO     LOOP1
    GOTO     KIEMTRA
KIEMTRA
    BTFSS     PORTB,0
    GOTO     ON 
    GOTO     OFF
 
OFF
    BCF             PORTB,0
    GOTO     MAIN
ON 
    BSF             PORTB,0
    GOTO     MAIN
END
Mình làm mãi mà cái portb nó vẫn không sáng lên khi mình nhấn nút.
code bạn viết không có chống phần chống dội của phím nhấn.
bạn không cấu hình cho pic.
bạn tham khảo phần code sau tôi đã mô phỏng chạy tốt:
PROCESSOR 16F877A
#INCLUDE <P16F877A.INC>
__CONFIG 0x3F62;CAU HINH CHO PIC
CBLOCK 0x20
TAM
ENDC
ORG 0X0000
BCF STATUS,6
BCF STATUS,5
CLRF PORTA
CLRF PORTB
BSF STATUS,5
MOVLW B'00000110';DAT PORTA VA PORTE LA I/O
MOVWF ADCON1
MOVLW B'00000011'
MOVWF TRISA
BCF TRISB,0
BCF STATUS,5

MAIN
BTFSS PORTA,0
GOTO LOOP
BTFSS PORTA,1
GOTO LOOP1
GOTO MAIN
LOOP
CALL CHONG_RUNG_PHIM
BTFSS PORTA,0
CALL CO_PHIM_NHAN
GOTO MAIN
LOOP1
CALL CHONG_RUNG_PHIM
BTFSS PORTA,1
CALL CO_PHIM_NHAN_1
GOTO MAIN
CO_PHIM_NHAN
CALL KIEMTRA
BTFSS PORTA,0;CHO_PHIM_NHA
GOTO $-1
CALL CHONG_RUNG_PHIM
RETLW .00
CO_PHIM_NHAN_1
CALL KIEMTRA
BTFSS PORTA,1;CHO_PHIM_NHA
GOTO $-1
CALL CHONG_RUNG_PHIM
RETLW .00
KIEMTRA
BTFSS PORTB,0
GOTO ON
GOTO OFF

OFF
BCF PORTB,0
RETLW .00
ON
BSF PORTB,0
RETLW .00
CHONG_RUNG_PHIM
MOVLW .255
MOVWF TAM
DECFSZ TAM,1
GOTO $-1
RETLW .00
END
File Kèm Theo
File Type: rar nut_nhan.rar (16.0 KB, 22 lần tải)
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-06-2009, 06:16 AM   #5
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Cám ơn bạn nhiều. Không ngờ bài viết của mình lại cần nhiều thứ vậy, mình sẽ nghiên cứu lại thêm.
Mình cũng không biết rành về mấy cái chống nhiễu, rung hay đại loại là như thế. Thanks
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-06-2009, 06:29 AM   #6
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Bài viết của bạn cũng hơi phức tạp. Mình có 1 quyển sách chỉ dạy đơn giản là những gì mình viết thôi. Nếu bạn có quyển sách nào hay hơn có thể cho mình được không?
Chẳng hạn phần chống rung, ...
Phần cấu hình... . MÌnh đọc phần đó không hiểu
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-06-2009, 08:21 PM   #7
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Bạn ơi! Mình viết để người khác hiểu, đôi khi viết sai tí thôi mà người ta cũng hiểu là được rồi. Cần gì phải bắt bẻ thế.
Có 2 nguyên nhân: Mình đã quen gọi code là cos, và thứ 2 có thể do sai chính tả.
Trong nhiều trường hợp đôi khi người ta chỉ diễn tả bằng khuôn mặt hay vài cử chỉ nhỏ là cũng có thể hiểu rồi. Có thể do bạn quá chi tiết, và chắt bạn cũng là người rất tỉ mỉ...ừm...
Nhưng cũng có thể do sai chính tả mà ra cách gọi sai....
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 03:01 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam