Lệnh dịch bit???

GRENADE

Trứng gà
Em muốn làm dãy 8 đèn LED chạy lần lượt từng con nhưng em không biết lệnh dịch bit trong HITECH C như thế nào?
Trước tiên em sẽ cho a=0xFE (8 LED của em Anod chung), sau đó dùng lệnh dịch bit rồi gán PORTB=a. Với lại cho em hỏi luôn lệnh dịch bit trong HITECH C có tự xoay lại như lệnh dịch bit trong 8051 không?
 

IceSandwich

Thành Viên PIF
Em muốn làm dãy 8 đèn LED chạy lần lượt từng con nhưng em không biết lệnh dịch bit trong HITECH C như thế nào?
Trước tiên em sẽ cho a=0xFE (8 LED của em Anod chung), sau đó dùng lệnh dịch bit rồi gán PORTB=a. Với lại cho em hỏi luôn lệnh dịch bit trong HITECH C có tự xoay lại như lệnh dịch bit trong 8051 không?
Bạn có thể dùng lệnh dịch bit trong C là << (dịch trái), >> (dịch phải).

VD: a = 0x01; a<<1; thì bây giờ a=0x02.
 

tungbk

Cố Vấn CLB
Staff member
Hitech-C dùng các lệnh C nên không có lệnh dịch+xoay bit như lập trình 8051 bằng asm.
Lệnh dịch như C thông thường.VD:
- dịch trái 1 bit a = a<<1;
- dịch phải 1 bit a = a>>1;
 
để dịch bit bạn dùng lệnh sau >>n dịch phải, <<n dịch trái trong đó n là số bit cần dịch. những lệnh dịch bit đó ko có hỗ trợ xoay vòng. 8051 thì hỗ trợ xoay vong khi bạn viết với ASM thôi còn với C thì không có.
 

eMagic

Gà mẹ
Staff member
em cứ thử viết theo hai cú pháp thử xem sao? Rồi sẽ nhận ra được thui :)
 

IceSandwich

Thành Viên PIF
Sao cú pháp hai anh trên kia ghi khác nhau thế =.= a<<1 hay a=a<<1
Nhầm tí bạn :), mình dich bit rồi mà quên gán vào cái gì khác thì dịch cũng như không :).

Phải là a = a<<1 hay "biến bất kì" = a<<1 :)
 
Top