![]() |
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 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 |
Không cho phần cứng khác nào đánh đố nhau
|
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 |
Trích:
[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 ! |
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" |
[
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 |
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 |
Múi giờ GMT. Hiện tại là 06:25 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