Trích:
nguyên văn bởi: tmtm
Trích:
Nguyên văn bởi 0509592
//giả sử mình muốn đầu ra QA và QB là cao còn lại là thấp thì gọi ra
send(0x03);
Bạn có thể giải thích rõ hơn về dòng lệnh này dược ko? Nếu ta sử dụng 2 chân RB2 & RB3 để điều khiển 1 IC74HC164 thứ 2 ... RB4 & RB5 điều khiển IC74HC164 thứ 3... thì ta phải xử lý như thế nào?
|
thứ nhất dòng lệnh send(0x03);
đây là lệnh gọi chương trình con void send(unsigned char data)
đã viết ở trên
bạn nhìn vào hàm send ở trên thì thấy nếu gọi send(0x03); thì data =0x03
//
portb0=0;//nối portb0 với chân clock và cho reset về mức 0
portb1=0x01&data;//chân portb1 nối vào một chân data. vậy giá trị đầu ra là một bit
//đầu tiên ở mức cao hay thấp tùy vào biến data
portb0=1;//kích chân clock lên mức cao
portb0=0;//nối portb0 với chân clock và cho reset về mức 0
portb1=0x02&data;//chân portb1 nối vào một chân data. vậy giá trị đầu ra là một bit
//đầu tiên ở mức cao hay thấp tùy vào biến data
portb0=1;//kích chân clock lên mức cao
//
thì ở đây sẽ có hai giá trị được tính đó là portb1=0x01&0x03; ta được 0x01; QA mức cao.
và portb1=0x02&0x03; ta được 0x02//QB=1; mức cao.
tương tự nếu bạn làm cho các đầu ra QAN ; QGN khác!
còn khi bạn sử dụng 2 chân data của một IC và dùng hai IC thì cũng làm tương tự.
nếu bạn nối vào 2 chân RB2 & RB3 thì đầu ra là kết quả của phép and giữa RB2 và RB3, bạn cũng làm tương tự như trên .
chúc bạn thàng công.
------------**^^o0o^^**-------------
"tháng ngày dong duổi cuộc đời
nhớ người cố hữu hẹn ngày tái ngộ"