![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#9 | |
Trưởng lão PIC bang
|
Trích:
Về phần thao tác trực tiếp trên thanh ghi PORTD, cụ thể hơn một chút nữa là như sau: - Bạn khai báo thêm biến PORTD_img, và sửa chương trình xử lý ngắt như dưới đây: Code:
char ch, PORTD_img; #INT_RDA Receive_isr() { if (kbhit()) { ch = getc(); if (ch=='a') PORTD_img |= 0x01; //Bat bit RD0 if (ch=='b') PORTD_img |= 0x02; //Bat bit RD1 if (ch=='c') PORTD_img |= 0x04; //Bat bit RD2 if (ch=='d') PORTD_img |= 0x08; //Bat bit RD3 if (ch=='e') PORTD_img |= 0x10; //Bat bit RD4 if (ch=='f') PORTD_img &= 0xFE; //Tat bit RD0 if (ch=='g') PORTD_img &= 0xFD; //Tat bit RD1 if (ch=='h') PORTD_img &= 0xFB; //Tat bit RD2 if (ch=='i') PORTD_img &= 0xF7; //Tat bit RD3 if (ch=='j') PORTD_img &= 0xEF; //Tat bit RD4 PORTD = PORTD_img; } } - Bạn không cần dùng mấy dòng #define may1 RD0 ... #define may5 RD4 Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |