View Single Post
Old 24-03-2011, 11:06 PM   #2
huuminhtsqtt
Nhập môn đệ tử
 
Tham gia ngày: Mar 2011
Bài gửi: 2
:
lệnh rotate_right(address,bytes) theo mình nghĩ là dịch vòng theo chiều từ trái sang phải byte có địa chỉ address đi một bít. nếu sử dụng lặp nhiều lần như vậy, Tùy thuộc vào số lượng bytes trong khai báo mà nó dịch từng ấy bytes thì sẽ quay vòng trở lại. Tương tự như vậy có lệnh dịch vòng theo chiều từ phải sang trái:rotate_left(address,bytes)
Sau đây là một ví dụBạn chỉ việc dùng Pic 16F877A và 8 con Led mắc vào 8 chân B của Pic nhé!).

#include<16F877A.h>
#byte portB=0x6
int16 dem;
int8 byte_bandau;
#INT_TIMER0
void interrupt_timer0()
{
set_timer0(6);
++dem;
if (dem==2000)
{
dem=0;
rotate_right(&byte_bandau,1);//Ban co the thay doi "1"byte thanh 2,3,4.v.v.v
} // va cho xem ket qua thi se thay no dich chuyen nhu the nao
}
void main(void)
{
set_tris_B(0);
enable_interrupts(INT_TIMER0);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2);
enable_interrupts(GLOBAL);
set_timer0(6);
byte_bandau=0x01;
while(true)
{
portB=byte_bandau;
}
}
huuminhtsqtt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn