Nội dung text Hướng dẫn lập trình 8051.pdf
HƯỚNG DẪN SỬ DỤNG KIT 8051 BKIT HARDWARE CLUB www.bkit4u.com 1 Mục lục Giới thiệu kit thí nghiệm BK89IT ...................................................................................... 4 Mô hình lập trình C trong vi điều khiển ............................................................................. 5 Bài 1 : Hướng dẫn cài đặt Keil C và Flash Magic.......................................................... 6 1.1 Cài đặt Keil C ........................................................................................................... 6 1.2 Cài đặt Flash Magic ................................................................................................ 11 1.3 Cấu hình cho Flash Magic ...................................................................................... 16 Bài 2 : Truy xuất Port I/O............................................................................................. 22 2.1 Tạo project trên Keil C ........................................................................................... 22 2.2 Viết chương trình đơn giản..................................................................................... 32 2.2.1 Kết nối phần cứng............................................................................................ 32 2.2.2 Viết chương trình............................................................................................. 33 2.2.3 Nạp chương trình ............................................................................................. 34 2.2.4 Các lỗi xảy ra khi nạp chương trình................................................................. 35 Bài 3 : Điều khiển đơn giản Led 7 đoạn....................................................................... 38 3.1 Kết nối phần cứng:.................................................................................................. 38 3.2 Viết chương trình.................................................................................................... 39 3.2.1 Hàm init_main()............................................................................................... 39 3.2.2 Hàm main()...................................................................................................... 39 3.3 Một số lỗi lập trình quan trọng ............................................................................... 41 Bài 4 : Ngắt Timer........................................................................................................ 42 4.1 Khai báo ngắt timer................................................................................................. 42 4.2 Viết chương trình.................................................................................................... 43 4.2.1 Hàm init_timer1() ............................................................................................ 43 4.2.2 Hàm start_timer1()........................................................................................... 43 4.2.3 Hàm timer1_isr().............................................................................................. 43 4.2.4 Hàm delay_ms(unsigned int duration)............................................................. 44 4.2.5 Hàm stop_timer1()........................................................................................... 44 Bài 5 : Dùng ngắt timer viết ứng dụng LED RIVER ................................................... 45 5.1 Kết nối phần cứng................................................................................................... 45 5.2 Viết chương trình.................................................................................................... 45 Bài 6 : Chống rung cho phím ....................................................................................... 47 6.1 Nguyên lý chống rung............................................................................................. 47 6.2 Kết nối phần cứng................................................................................................... 48 6.3 Viết chương trình.................................................................................................... 49 6.3.1 Hàm initKey().................................................................................................. 49 6.3.2 Hàm getKey() .................................................................................................. 49 Bài 7 : Quét led điều khiển Led 7 đoạn ........................................................................ 51 7.1 Nguyên lý quét led 7 đoạn ...................................................................................... 51 7.2 Kết nối phần cứng................................................................................................... 52 7.3 Viết chương trình.................................................................................................... 52 7.3.1 Hàm init_led7()................................................................................................ 52 7.3.2 Hàm clear_led7() ............................................................................................. 53 7.3.3 Hàm set_position(unsigned int pos) ................................................................ 53 7.3.4 Hàm get_position() .......................................................................................... 53
HƯỚNG DẪN SỬ DỤNG KIT 8051 BKIT HARDWARE CLUB www.bkit4u.com 2 7.3.5 Hàm put_Number(unsigned int num).............................................................. 54 7.3.6 Hàm put_string(char strNum[]) ....................................................................... 54 7.3.7 Hàm scan_led7................................................................................................. 54 Bài 8 : Điều khiển Ma trận led ..................................................................................... 56 8.1 Nguyên lý điều khiển ma trận led........................................................................... 56 8.2 Kết nối phần cứng................................................................................................... 56 8.3 Viết chương trình.................................................................................................... 56 8.3.1 Hàm init_led_matrix() ..................................................................................... 57 8.3.2 Hàm scan_led_matrix().................................................................................... 57 8.3.3 Hàm update_display_led_matrix() .................................................................. 57 Bài 9 : Chạy chữ trên Ma trận led ................................................................................ 59 9.1 Nguyên lý chạy chữ trên ma trận led...................................................................... 59 9.2 Kết nối phần cứng................................................................................................... 60 9.3 Viết chương trình.................................................................................................... 60 9.3.1 Hàm set_message(char strMsg[]) .................................................................... 60 9.3.2 Hàm main()...................................................................................................... 61 Bài 10 : Ngắt ngoài..................................................................................................... 62 10.1 Nguyên lý điều khiển ngắt ngoài .......................................................................... 62 10.2 Kết nối phần cứng................................................................................................. 62 10.3 Viết chương trình.................................................................................................. 62 10.3.1 Hàm init_ext_int0()........................................................................................ 62 10.3.2 Hàm init_ext_int1()........................................................................................ 62 10.3.3 Hàm ext0_isr()............................................................................................... 63 10.3.4 Hàm ext1_isr()............................................................................................... 63 Bài 11 : Điều khiển encoder....................................................................................... 64 11.1 Nguyên lý điều khiển encoder .............................................................................. 64 11.2 Kết nối phần cứng................................................................................................. 65 11.3 Viết chương trình.................................................................................................. 65 Bài 12 : Giao tiếp UART............................................................................................ 67 12.1 Nguyên lý giao tiếp UART................................................................................... 67 12.2 Giao tiếp UART với máy tính .............................................................................. 68 12.3 Viết chương trình.................................................................................................. 69 12.3.1 Thanh ghi điều khiển truyền nhận nối tiếp .................................................... 69 12.3.2 Dùng Timer1 tạo Baud rate ........................................................................... 71 12.3.3 Chương trình truyền nhận UART trên 8051.................................................. 71 12.4 Kiểm tra truyền nhận UART ................................................................................ 74 12.5 Xây dựng chương trình trên PC............................................................................ 74 12.5.1 Load các cổng COM của PC lên ComboBox ................................................ 78 12.5.2 Kết nối cổng với cổng COM.......................................................................... 79 12.5.3 Gửi dữ liệu ..................................................................................................... 80 12.5.4 Nhận dữ liệu................................................................................................... 81 Bài 13 : Giao tiếp PS2 với bàn phím.......................................................................... 85 13.1 Nguyên lý giao tiếp PS2 ....................................................................................... 85 13.2 Kết nối phần cứng................................................................................................. 86 13.3 Viết chương trình.................................................................................................. 87 Bài 14 : PWM điều khiển motor................................................................................. 88
HƯỚNG DẪN SỬ DỤNG KIT 8051 BKIT HARDWARE CLUB www.bkit4u.com 3 14.1 Khái niệm PWM ................................................................................................... 88 14.2 Lập trình PWM trên 89V51.................................................................................. 89 Bài 15 : Giao tiếp LCD character............................................................................... 90 15.1 Chức năng các chân của LCD............................................................................... 90 15.2 Kết nối màn hình LCD.......................................................................................... 91 15.3 Các vùng nhớ của LCD......................................................................................... 91 15.3.1 Display Data Ram (DDRAM) ....................................................................... 91 15.3.2 Character Generator Ram (CGRAM)............................................................ 91 15.3.3 Bộ nhớ CGROM............................................................................................ 92 15.4 Các lệnh cơ bản của LCD ..................................................................................... 93 15.5 Kết nối LCD với vi điều khiển ............................................................................. 94 15.6 Khởi tạo LCD ....................................................................................................... 95 15.7 Kết nối phần cứng................................................................................................. 97 15.8 Viết chương trình.................................................................................................. 98 15.8.1 Các hàm cơ bản.............................................................................................. 98 15.8.2 Khởi tạo LCD chế độ 4 bit............................................................................. 98 15.8.3 Xoá màn hình................................................................................................. 99 15.8.4 Thiết lập vị trí con trỏ .................................................................................... 99 15.8.5 In kí tự ra màn hình..................................................................................... 100 Bài 16 : Giao tiếp I2C – DS1307.............................................................................. 101 16.1 Các đặc điểm của DS1307 .................................................................................. 101 16.2 Nguyên lý hoạt động........................................................................................... 101 16.3 Các tín hiệu Input và Output............................................................................... 102 16.4 RTC và sơ đồ địa chỉ Ram.................................................................................. 103 16.5 Thông tin thời gian và lịch.................................................................................. 103 16.6 Thanh ghi điều khiển (Control Register)............................................................ 104 16.7 Bus dữ liệu nối tiếp............................................................................................. 104 16.8 Giao thức I2C và RTC DS1307......................................................................... 105 16.8.1 Kết nối phần cứng........................................................................................ 105 16.8.2 Start và Stop truyền dữ liệu ......................................................................... 105 16.8.3 Truyền 1 byte dữ liệu................................................................................... 107 16.8.4 Giao tiếp với DS1307 .................................................................................. 108
HƯỚNG DẪN SỬ DỤNG KIT 8051 BKIT HARDWARE CLUB www.bkit4u.com 4 Giới thiệu kit thí nghiệm BK89IT Các chức năng của board thí nghiệm BK89IT : v 8 nút nhấn : nối với P3. v 8 led 7 đoạn : hỗ trợ quét led, P0 để gửi dữ liệu và P2 để chọn led. v Led ma trận 2 màu : P0 gửi dữ liệu mà đỏ, P2 gửi dữ liệu xanh, P1 để chọn cột hiển thị. v Giao tiếp với bàn phím PS2. v Giao tiếp COM v 4 chân dùng để kết nối encoder. v Cấu hình bằng switch : Switch 1 cho Port 1, 2 cho Port 3, 3 cho led ma trận và 4 cho led 7 đoạn. v Cấp nguồn ngoài hoặc USB. v Mạch nạp onboard.