|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
19-10-2006, 08:33 PM | #1 |
Đệ tử 2 túi
Tham gia ngày: Sep 2006
Bài gửi: 33
: |
Thảo luận về cách viết các lệnh dịch thanh ghi (RRF,RLF)
Dưới đây là chương trình dịch trái (phải) PortB sử dụng lệnh RRF(RLF):
Code:
title "leddichtutraiquaphai_Port_B.asm" processor p16f877a include <P16f877a.inc> __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC ;========================================================================= ; Chuong trinh chinh ;========================================================================= count1 equ 0x20 counta equ 0x22 countb equ 0x23 org 0x000 ;------------------------------------------------------------- ;khoi tao Port B ;------------------------------------------------------------ banksel TRISB clrf TRISB banksel PORTB movlw b'00000001' movwf PORTB loop call delay100ms; rlf PORTB,1 goto loop ;----------------------------------------------------------------- ;chuong trinh delay ;----------------------------------------------------------------- delay100ms ; chuong trình con delay 100 ms MOVLW d'100' MOVWF count1 d1 MOVLW 0xC7 MOVWF counta MOVLW 0x01 MOVWF countb delay_0 DECFSZ counta,1 GOTO $+2 DECFSZ countb,1 GOTO delay_0 DECFSZ count1,1 GOTO d1 RETURN ;---------------------------------------------------------------- end - Led sáng sẽ dc dịch từ PB0-->PB7 và sẽ tắt hoàn toàn và bắt đầu lại từ đầu. Câu hỏi dc đặt ra: -Muốn kiểm tra cờ C thì làm như thế nào? - Có cách nào để led chạy liên tục PỎTB ko bi tắt hoàn toàn khi 1 dc chuyển vào cờ C? Mong các bác có thể giúp đỡ những người mới học như tụi em dc ko? Cảm ơn các bác! |
19-10-2006, 10:37 PM | #2 |
Trưởng lão PIC bang
|
Câu thứ nhất: Thanh ghi STATUS chứa cờ C cũng là một thanh ghi như mọi thanh ghi, có thể dùng các lệnh BTFSS/BTFSC để kiểm tra trạng thái của cờ C và thực hiện các thao tác cần thiết.
Câu thứ hai: Dùng kỹ thuật đã nói trong câu thứ nhất, kiểm tra cờ C sau mỗi lần quay (chứ không phải là dịch nhé), nếu cờ C đổi trạng thái thì quay thêm một lần nữa. 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 |
02-11-2006, 07:44 PM | #3 |
Đệ tử 2 túi
Tham gia ngày: Sep 2006
Bài gửi: 33
: |
sẵn đây mình hỏi luôn vấn đề mà mình dang thắc mắc:
ví dụ mình có hai thanh ghi 0x20 và 0x21 có mang nội dung là một số Hẽ chẳng hạn Câu hỏi đc đặt ra là muốn so sánh hai thanh ghi này có giá trị bằng nhau ko thì phải làm sao?va như thế nào? To:chipchipvn mình cũng ở QNgai rất mong cùng trao đổi với bạn! |
07-11-2006, 03:16 PM | #4 |
Đệ tử 2 túi
Tham gia ngày: Sep 2006
Bài gửi: 33
: |
sao ko ai tra loi hết vậy?
Nếu muốn kiểm tra PORTB có bằng 255 thì lam như sau có đúng ko ? Code:
if PORTB==255 lenh if.... else lệnh......... endif |
07-11-2006, 07:25 PM | #5 |
Trưởng lão PIC bang
|
Để so sánh hai biến nằm trong 2 ô nhớ thì có thể copy một ô nhớ vào thanh ghi W, rồi so sánh nó với ô nhớ còn lại (điều kiện so sánh bằng có thể thực hiện bằng phép toán XOR-exclusive OR và kiểm tra cờ Z), đó là dành cho các PIC cấp thấp và hợp ngữ (assembly language).
Với các ngôn ngữ cấp cao như C hay Basic thì bạn nên đọc hướng dẫn của phần mềm, nói chung cú pháp là chuẩn, nhưng cũng có một vài ngoại lệ. Ví dụ như có một số trình dịch C không hoàn toàn tuân theo ANSI-C. Ví dụ mà bạn đưa ra là so sánh một ô nhớ với một hằng số, không chính xác là trường hợp mà bạn đã hỏi ban đầu. Chương trình của bạn đã viết có vẻ giống như cho Basic (nhưng không hoàn toàn là Basic), nhưng biểu thức so sánh lại dùng cú pháp C => 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 |
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Làm sao để đọc dữ liệu từ ô nhớ vào thanh ghi W | nghaiha | RTOS và Thuật toán với PIC | 5 | 27-12-2007 11:08 AM |
Vi xử lý âm thanh, bạn nào rành thì chỉ giúp. | jean | Trao đổi ngoài luồng | 4 | 23-01-2007 07:31 PM |
Xử lý âm thanh | bachelor1979 | Cảm biến | 0 | 10-06-2006 06:01 PM |