1 / 26

VI ĐIỀU KHIỂN và LẬP TRÌNH C

VI ĐIỀU KHIỂN và LẬP TRÌNH C. Trần Xuân Nghĩa Phan Văn Hòa. Vi Điều Khiển?. Dùng khắp mọi nơi Vật gia dụng hằng ngày: Điện thoại di động Nồi cơm điện TV, tủ lạnh Đồng hồ điện tử Trò chơi điện tử (PSP, Nintendo DS…) Robot…. Bộ Nhúng. Chủ yếu là dùng ngôn ngữ C lập trình Bao gồm:

dreama
Download Presentation

VI ĐIỀU KHIỂN và LẬP TRÌNH C

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. VI ĐIỀU KHIỂNvàLẬP TRÌNH C Trần Xuân NghĩaPhan Văn Hòa

  2. Vi Điều Khiển? • Dùng khắp mọi nơi • Vật gia dụng hằng ngày: • Điện thoại di động • Nồi cơm điện • TV, tủ lạnh • Đồng hồ điện tử • Trò chơi điện tử (PSP, Nintendo DS…) • Robot… NH

  3. Bộ Nhúng • Chủ yếu là dùng ngôn ngữ C lập trình • Bao gồm: • Phần cứng (điện tử) • Phần mềm • Bộ phận cơ khí , và nhiều thành phần khác. • Điều khiển: • Đơn giản: đèn giao thông, • Phức tạp: viết games , máy tính cao cấp màu , robot… NH

  4. Vi Điều Khiển (VDK) Trong Cuộc Sống • Ứng dụng nhiều trong nhu cầu cần thiết của cuộc sống • Tự động hóa mọi gia dụng • Đa số thiết bị trong nhà bếp có VDK NH

  5. Vi Điều Khiển • Thời gian thực : có phần giới hạn • 4, 8, 16, 32 bits (có tới 2 nhân) • Bộ nhớ có giới hạn • Giá thành phẩm • Độ bền, tuổi thọ NH

  6. Phần mềm • Thông thường sử dụng lập trình C • Có đủ khả năng điều khiển phần mềm với một mức độ cao. • Khá phổ thông với nhiều thư viện • Không phụ thuộc vào CPU • Trình dịch khá vững và giá không đắt lắm • GNU C trình dịch NH

  7. Bộ Nhớ • Mỗi dữ kiện được chứa ở một địa chỉ nhất định • Mỗi địa chỉ tương ứng với một dữ kiện • Dữ kiện có thể đọc và viết • Tùy thuộc từng loại, khả năng và tốc độ NH

  8. Bộ Vi Điều Khiển Kết cấu: CPU, bộ nhớ và I/O • CPU: Bộ kiểm soát và dẫn dắt dữ kiện • Bộ nhớ: nơi giữ mã lệnh và dữ kiện • RAM: Bộ nhớ truy xuất (viết và đọc) • ROM/Flash: Bộ nhớ (chỉ đọc ra, rất ít viết) • I/O: thiết bị ngoại vi (GPIO, UART, ADC, SPI, CAN, PWM, QEI…) NH

  9. Bộ nhớ • ROM (Read Only Memory) Đọc • Nơi chứa đựng mã lệnh dành cho CPU trong bộ nhúng, đồng thời được lập đi lập lại sau mỗi lần bật tắt máy (dữ liệu không bị xóa) • Dùng làm bộ nhớ tin liệu cho hệ thống khởi động • Loại ROM khác: • EPROM, EEPROM and Flash NH

  10. Bộ nhớ (tiếp theo) • RAM: nơi cất giữ dữ kiện và được truy cập bởi CPU • Các loại RAM • RAM Tĩnh: SRAM (nhanh) • RAM Động: • SDRAM • RDRAM • DDR, DDR2 SDRAM… NH

  11. CPU • Thành phần xử lý trung tâm • Cất giữ, thu lượm , phân phối, điều hành , tính toán • Thanh ghi: đọc và viết nhanh, cất giữ toán hạng và dữ kiện khác. • Điều kiện thanh ghi => kết quả hữu lý • Thanh ghi xử lý ngoại lệ, =>(lỗi) • Điều khiển vòng lập (bộ đếm) NH

  12. CPU  BUS  I/O • BUS nối tiếp giữa CPU và I/Os • Nhịp cầu CPU BUS I/O  Thế giới • CPUBUSBộ Nhớ • Thanh ghi đại diện cho mỗi phần ngoại vi: GPIO, UART, SPI, ADC… NH

  13. Vi Điều Khiển Ngoại Vi • Thiết bị nối tiếp với thế giới bên ngoài • Thí dụ: • GPIO • UART • ADC Phần 1 • SPI • I2C • CAN • PWM Phần 2 • QEI NH

  14. Những Lệnh Chính • Tính Toán & Logic: Cộng, Trừ, Nhân, Chia, and, or, not, xor • Chuyển dời dữ kiện giữa thanh ghi và bộ nhớ • Kiểm soát: rẽ nhánh và nhảy. NH

  15. Tại Sao Chọn C ? • Ngôn ngữ Cơ bản cho bộ nhúng • Dễ dàng bão trì cho những công trình lớn • Một tầng cao hơn assembly language • Khá hiệu quả trong việc xử lý • Trực tiếp điều khiển bộ ngoại vi • Có nhiều hàm sẵn sàng trong thư viện • Quan trọng là Lập Trình Giao Diện Ứng Dụng (API) • Giảm thiểu thời gian lập trình, và công trình mau chóng ra thị trường. NH

  16. Lập trình C • Bit: đơn vị nhỏ nhất của thông tin • Hệ 2: 02 giá trị (bật – tắt , đóng – mở…) • 1: đúng (bật, đóng…) • 0: sai (tắt, mở…) • Nibble: 04 bits • 16 giá trị (0-15) # (0000-1111) • 1 chữ Hex (0,1,2…9,A,B,C,D,E,F) • Byte, Word, Double Word • 8 bits, 16 bits, 32bits Switch NH

  17. Lập trình C (tiếp theo) • Hệ phổ thông: • Hệ 2: 0,1 • Hệ 10: 0,1,2,…,9 • Hệ 16: 0,1,2,…,9,A,B,C,D,E,F • Hệ 08: 0,1,2,…,7 • Chuyển hệ: • 10100111 = 167 • 1010 0111 = 167 • A 7 = 167 NH

  18. Quy Định Biến Số Trong C • Không được có dấu (ngoại trừ gạch nối dưới) • Phải bắt đầu bằng mẫu tự (không có số) • Chữ thường khác chữ hoa • Hạn chế viết tắt. NH

  19. Quy Định Biến Số Trong C (t2) • Vòng lập (bộ đếm) nên dùng: i, j, k… • Trình bày kỹ => Tiết kiệm thời gian gở lỗi. • Thí dụ: ChieuDai, ThoiGian, Van_Toc, NgoaiViDiaChiGoc… NH

  20. Xin Chào Thế Giới • int main(void) • { • // • // Chuẩn bị hệ dao động ở 8 MHz. • // • SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); • // • // Thiết lập liên lạc và khởi tạo OLED display. • // • RIT128x96x4Init(1000000); • // Màn hình 128x96; • //(x,y) = (0,0) : Đỉnh trên cùng bên tay trái • // x → chiều tăng y ↓ chiều tăng • RIT128x96x4StringDraw("Xin Chao!", 30, 4, 15); • RIT128x96x4StringDraw("THE GIOI TUOI DEP!", 10, 24, 15); • // • // Thoát Exit. • // • DiagExit(0); • return (0); • } • /* bạn thường muốn • * tiền xử lí stdio.h và stdlib.h • */ • #include <stdio.h> • #include <stdlib.h> • int main (void) • { • printf(“Xin Chao The Gioi\n”); • exit(0); • } x y Độ sáng 4 bits (0-15) NH

  21. Quy trình của trình dịch C Code Red IDE NH

  22. Download phần mềm cho LM3S2965 NH

  23. Download phần mềm cho LM3S2110 PC => LM3S2110 qua dây JTAG giữa 2 boards Nguồn qua dây liên kết giữa 2 boards NH

  24. NH

  25. NH

  26. Lab 1 • hello.zip NH

More Related