21.07.2013 Views

THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính

THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính

THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Trường ĐH. Bách <strong>Khoa</strong> TP.HCM <strong>Khoa</strong> KH & KTMT<br />

BCF TRISC,3<br />

RETURN<br />

Trên đây ta mới chỉ khởi tạo module SPI để nó có thể hoạt động nhưng<br />

nhìn lại sơ đồ mạch ta lại thấy có thêm <strong>và</strong>i kết nối nữa từ vi điều khiển ra<br />

IC74595. Để IC này hoạt động được thì ta cần thêm một chân tạo clock để có thể<br />

chuyển dữ liệu nối tiếp ra song song của IC này. Ta define thêm cho chân Latch<br />

của IC 74595.<br />

#define LATCH_DIR TRISA,1<br />

#define LATCH_DATA PORTA,1<br />

Đồng thời khởi tạo các PORT liên quan:<br />

INIT<br />

MOVLW 0x0F<br />

MOVWF ADCON1<br />

BCF LATCH_DIR<br />

BCF LATCH_DATA<br />

CLRF INDEX_OF_BUFFER<br />

RETURN<br />

Bước 5: Ngoài ra để thực hiện được bài này không thể nào thiếu timer<br />

được, vì để hiển thị ra led ma trận ta phải quét từng cột led trên ma trận led.<br />

Khi nhìn <strong>và</strong>o cấu tạo của ma trận led ta thấy để hiện thị được một hình gì<br />

đó trên ma trận led thì ta phải quét led, vì tại một thời điểm chỉ có thể hiển thị một<br />

cột led mà thôi. Nhờ <strong>và</strong>o hiện tượng lưu ảnh ở mắt mà khi quét với tần số cao thì<br />

mắt ta sẽ thấy như là cột đó sáng chứ không phải chớp nháy nữa.<br />

Vậy làm sao biết được ta quét led với tần số bao nhiêu là hợp lý. Như trong<br />

phim ảnh khi xem phim thực chất ta biết là nó đang chạy với tần số là 24 hình /s.<br />

Ở đây ta cũng giả sử như vậy, cả màn hình của led cũng chớp nháy với tần số là 24<br />

hình/s, mà mỗi hình ta phải quét 8 lần vì có 8 cột. Từ đó ta có thể suy ra tần số ta<br />

cần phải quét cho mỗi cột là 8x24 lần/s. Từ đây ta có thể dễ dàng <strong>tính</strong> được timer<br />

của chúng ta cần bao nhiêu để có thể quét led được một cách dễ dàng.<br />

INIT_TIMER0<br />

BSF RCON,IPEN ;enable priority interrupts.<br />

BSF INTCON2,TMR0IP<br />

BSF INTCON,TMR0IF<br />

BSF INTCON,TMR0IE<br />

BSF INTCON,GIEH<br />

BSF INTCON,GIEL<br />

CLRF T0CON<br />

MOVLW 0x3c<br />

MOVWF TMR0H<br />

MOVLW 0xAF<br />

MOVWF TMR0L<br />

BSF T0CON,TMR0ON<br />

Bộ môn <strong>Kỹ</strong> Thuật <strong>Máy</strong> Tính 63 Thực hành Vi xử lý

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!