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 04-06-2009, 10:59 AM   #1
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Smile Help! Giúp mình sửa cos asm với

bài viết của mình là dùng lm35 đo nhiệt độ rồi hiển thị lên led 7 đoạn, mình chỉ làm thử đo từ 0-3 độ, nhưng nó chỉ hiển thị 0 độ, khi tăng lên 1 độ thì nó hiển thị là số 01 nhưng sau đó lại nhảy về 00 liền, khi tăng lên 2 độ thì không hiển thị 02 mà nó hiển thị 00 luôn và các số lớn hơn mình chưa viết cho nó, nó vẫn hiển thị là 00...
Code:
PROCESSOR 16F877A
#INCLUDE <P16F877A.INC>
ORG 0X00
BCF STATUS, 6
BCF STATUS, 5
CLRF PORTB
CLRF PORTC
CLRF PORTA
CLRF PORTE
BSF STATUS,5
MOVLW 0X00
MOVWF PORTB
MOVLW 0X00
MOVWF PORTC
BCF STATUS, 5
MAIN
CALL ADC
MOVF ADRESH
XORLW D'0'
BTFSS STATUS,Z
GOTO LOOP0
XORLW D'1'
BTFSS STATUS,Z
GOTO LOOP1
XORLW D'2'
BTFSS STATUS,Z
GOTO LOOP2
XORLW D'3'
BTFSS STATUS,Z
GOTO LOOP3
GOTO MAIN

LOOP0
MOVLW 0X00
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY
MOVLW 0X00
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTC
CALL DELAY
GOTO MAIN
LOOP1
MOVLW 0X00
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY
MOVLW 0X01
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTC
CALL DELAY
GOTO MAIN
LOOP2
MOVLW 0X00
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY
MOVLW 0X02
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTC
CALL DELAY
GOTO MAIN
LOOP3
MOVLW 0X00
MOVWF PORTB
MOVLW B'00000010'
MOVWF PORTC
CALL DELAY
MOVLW 0X03
MOVWF PORTB
MOVLW B'00000100'
MOVWF PORTC
CALL DELAY
GOTO MAIN

DELAY
MOVLW b'00100000'
MOVWF T1CON
MOVLW 0XCF
MOVWF TMR1H
MOVLW 0X2B
MOVWF TMR1L
BSF T1CON,0
loop 
BTFSS PIR1,0
goto loop
BCF PIR1,0
return

ADC
BSF STATUS, 5
BSF ADCON1, 3
BCF ADCON1,2
BSF ADCON1, 1
BCF ADCON1, 0
BCF STATUS, 5
BSF ADCON0, 5
BCF ADCON0, 4
BSF ADCON0, 3
BSF STATUS, 5
BSF ADCON1, 6
BCF STATUS, 5
BCF ADCON0, 7
BCF ADCON0, 6
BSF STATUS, 5
BCF ADCON1, 7
BCF STATUS, 5
BSF ADCON0, 2
BSF ADCON0, 0
return
END
Mình sài con 74247 để giảm bớt port cho led
nếu bạn nào sửa được xin gởi thông tin sớm và nhớ gởi cho mình một địa chỉ liên hệ, như yahoo. hay số điện thoại gì nhé. thanks

thay đổi nội dung bởi: namqn, 04-06-2009 lúc 01:20 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 04-06-2009, 12:04 PM   #2
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Không cho phần cứng khác nào đánh đố nhau
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2009, 12:41 AM   #3
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
thôi nhờ các bạn xem dùm mình là lệnh nào sẽ thực hiện :"loo1 hay loop" nhé. Mình mô phỏng trong protues thấy nó bị kì kì.
processor 16f877a
#include<p16f877a.inc>
COUNT EQU 0X20
ORG 0000H
BCF STATUS, 6
BCF STATUS ,5
CLRF PORTA
BSF STATUS, 5
BCF TRISA, 1
BCF TRISA,4
BCF STATUS, 5
MAIN
MOVLW D'10'
MOVWF COUNT
MOVLW D'5'
SUBWF COUNT,0
BTFSS STATUS,0
GOTO LOOP
GOTO LOOP1
LOOP
BSF PORTA, 1
GOTO MAIN
LOOP1
BSF PORTA,4
GOTO MAIN
END

thay đổi nội dung bởi: maitruccucdao, 05-06-2009 lúc 09:51 PM.
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2009, 12:54 PM   #4
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Trích:
Nguyên văn bởi maitruccucdao View Post
thôi nhờ các bạn xem dùm mình là lệnh nào sẽ thực hiện kế nhé. Mình mô phỏng trong protues thấy nó bị kì kì
processor 16f877a
#include<p16f877a.inc>
COUNT EQU 0X20
ORG 0000H
BCF STATUS, 6
BCF STATUS ,5
CLRF PORTA
BSF STATUS, 5
BCF TRISA, 1
BCF TRISA,4
BCF STATUS, 5
MAIN
MOVLW D'10'
MOVWF COUNT
MOVLW D'5'
SUBWF COUNT,0
BTFSS STATUS,0
GOTO LOOP
GOTO LOOP1
LOOP
BSF PORTA, 1
GOTO MAIN
LOOP1
BSF PORTA,4
GOTO MAIN
END
[lệnh nào sẽ thực hiện kế] là lệnh nào.
[thấy nó bị kì kì] là như thế nào.
Mọi người còn chưa hiểu bạn hỏi gì thì làm sao co thể giúp bạn được.
Bạn nên suy nghĩ thật kĩ vấn đề bạn định hỏi, bạn nên nói rõ trọng tâm của vấn đề.
Nếu không sẽ chẳng ai trả lời bạn đâu.
Thân !
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2009, 09:46 PM   #5
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Mình xin lỗi, vì lên diễn đàn mà sơ xẩy quá, chắt tại bửa đó hấp tấp nên post tầm bậy tầm bạ.
bài của mình ở trên lệnh loop1 hay loop sẽ được thực hiện.
vì câu hỏi của mình hơi bị " không rõ ràng"
maitruccucdao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-06-2009, 11:47 PM   #6
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
[
MAIN
MOVLW D'10' ;
MOVWF COUNT ; count = 10
MOVLW D'5' ; w = 5
SUBWF COUNT,0 ; w = ( 10 - 5 ) = 5, C = 1, Z = 0
BTFSS STATUS,0 ; C = 1 ?
GOTO LOOP
GOTO LOOP1 ; C = 1 thì nhảy đến LOOP1
]
Theo như code của bạn thì thì chuơng trình sẽ nhảy đến LOOP1
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-06-2009, 01:16 AM   #7
maitruccucdao
Đệ tử 1 túi
 
Tham gia ngày: Apr 2009
Bài gửi: 20
:
Post

Cám ơn bạn nhé. đúng rồi. Mình chạy trên protues cũng chạy như thế.
Nhưng nhờ bạn nói dùm mình thuật ngữ này nhé.
C=1 khi kết quả phép toán tác động lên bit MSB có nhớ
c=0 khi kết quả phép toán tác động lên bit MSB không có nhớ
mình nghĩ chẳng lẻ sách bị sai.
Hay mình đã hiểu nhầm. Cách nghĩ của mình là 10 -5 =5 thì c=0 .

Nhờ bạn xem giúp mình cái cos chuyển đổi ADC này xem, mình làm hoài mà vẫn không chạy bạn à.

processor 16f877a
#include<p16f877a.inc>
ORG 0000H
BCF STATUS, 6
BCF STATUS ,5
CLRF PORTE
BSF STATUS, 5
BCF PORTE,0
BCF TRISE, 2
BCF STATUS, 5
MAIN
CALL ADC
MOVLW D'10'
SUBWF ADRESH, 0
BTFSS STATUS,C
BSF PORTE,2
GOTO MAIN


ADC
BSF STATUS, 5
BSF ADCON1, 3
BcF ADCON1, 2
BsF ADCON1, 1
BcF ADCON1, 0
BCF STATUS, 5
BSF ADCON0, 5
BCF ADCON0, 4
BSF ADCON0, 3
BSF STATUS, 5
BSF ADCON1, 6
BCF STATUS, 5
BCF ADCON0, 7
BCF ADCON0, 6
BSF STATUS, 5
BCF ADCON1, 7
BCF STATUS, 5
BSF ADCON0, 0
BSF ADCON0, 2
LOOPA
BTFSC ADCON0, 2
GOTO LOOPA
RETURN
END
Mình đã làm hết cách rồi mà vẫn không ra, nên mới post hỏi xem. Các bạn nhớ post cm sớm cho mình nhé.Thanks

thay đổi nội dung bởi: maitruccucdao, 06-06-2009 lúc 10:43 AM.
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à 10:49 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