PDA

View Full Version : Về lệnh bet_set và bit_clear


nhanthienthan
19-08-2009, 08:45 AM
Đây là chương trình hào quang, mình đã test và chạy tốt. Nhưng mình vẫn ko hiểu rõ tác dụng của câu lệnh bit_set trong trường hợp này là gì, cả cái temp=0x00 nữa. Tương tự cho mình hỏi luôn về lệnh bit_clear. Thanks nhiều !

#include <16f877a.h>
#fuses HS,NOWDT
#use delay(clock=4000000)
#byte trisb=0x86
#byte portb=0x06
int i,j=9,b=0x00,a=8,temp=0x00;
main()
{
trisb=0x00;
portb=0xff;
temp=0x01;
while (1)
{
while (a>=1)
{
a=a-1;
for (i=0;i<=a;++i)
{
for (j=9;j>=a+1;j--) bit_set (temp,j);
portb=temp;
delay_ms(250);
temp<<=1;
}
temp=0x01;
}
a=8;
}
}

nhanh0112
19-08-2009, 10:46 AM
Bạn có thể xem help của CCS

int x;
x=5;
bit_set(x,3);
// x is now 13
//101=>5
//set bit 3 => 1101 => 13

tương tự cho bit_clear là xóa đi bit chỉ định

temp=0x00 thiết lập giá trị ban đầu của temp thôi
hay temp=0b0000.0000