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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

sử dụng sau này. Dựa <strong>và</strong>o sơ đồ mạch ta định nghĩa như sau:<br />

#define COLUMN_1 PORTD, 0<br />

#define COLUMN_2 PORTD, 1<br />

#define COLUMN_3 PORTD, 2<br />

#define COLUMN_4 PORTD, 3<br />

#define ROW_1 PORTD, 4<br />

#define ROW_2 PORTD, 5<br />

#define ROW_3 PORTD, 6<br />

#define ROW_4 PORTD, 7<br />

Bước 4: Khởi tạo input <strong>và</strong> output cho các port tương ứng. Ở đây column là<br />

output, còn row là input. Portb dùng để hiển thị led đơn cũng được cấu hình là<br />

output.<br />

INIT_IO<br />

;assigning PORTB is a digital output<br />

MOVLW 0x0F<br />

MOVWF ADCON1<br />

; setup portb for outputs<br />

CLRF TRISB<br />

CLRF PORTB<br />

MOVLW 0x0F<br />

MOVWF TRISD<br />

MOVLW 0xFF<br />

MOVWF PORTD<br />

RETURN<br />

Bước 5: Khởi tạo timer, phần này chúng ta đã <strong>học</strong> từ chương 4, ta có thể có<br />

một hàm khởi tạo timer đơn giản như sau:<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 />

RETURN<br />

Bước 6: Viết hàm Get_key với 2 đối số. Đối số thứ nhất có tên là temp_wr,<br />

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

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

Saved successfully!

Ooh no, something went wrong!