Hướng Dẫn Tự Học Lập Trình Vi điều Khiển
Có thể bạn quan tâm
Thứ Sáu, 8 tháng 7, 2016
Bài 7: Giao tiếp với LED 7 thanh sử dụng 8051
Trước hết mình xin trình bày sơ qua về cấu tạo và nguyên lý hoạt động của LED 7 thanh như sau: Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó… Cấu trúc và mã hiện thị dữ liệu của LED 7 thanh: -Dạng form chuẩn:| Chữ số | Mã Logic gfedcba | Mã hexa |
| 0 | 1000000 | 0x40 |
| 1 | 1111001 | 0xF9 |
| 2 | 0100100 | 0x24 |
| 3 | 0110000 | 0x30 |
| 4 | 0011001 | 0x19 |
| 5 | 0010010 | 0x12 |
| 6 | 1000010 | 0x02 |
| 7 | 1111000 | 0xF8 |
| 8 | 0000000 | 0x00 |
| 9 | 0010000 | 0x10 |
| Chữ số | Mã logic gfedcba | Mã hexa |
| 0 | 0111111 | 0x3F |
| 1 | 0000110 | 0x6 |
| 2 | 1011011 | 0x5B |
| 3 | 1001111 | 0x4F |
| 4 | 1100110 | 0x66 |
| 5 | 1101101 | 0x6D |
| 6 | 1111100 | 0x7c |
| 7 | 0000111 | 0x7 |
| 8 | 1111111 | 0x7F |
| 9 | 1101111 | 0x6F |
Thứ Ba, 5 tháng 7, 2016
Bài 6. Giao tiếp với Key đơn
Như tiêu đề của bài, lần này chúng ta sẽ tương tác với Key đơn sử dụng họ vi điều khiển 8051. Key đơn thật ra là tập hợp các nút ấn, nhưng có cách nối đặc biệt để đảm bảo giá trị khởi điểm của các chân ra ở trạng thái bình thường sẽ luôn ở mức cao, khi nút ấn đượg ấn xuống thì sẽ xuống trạng thái thấp. Mục đích của bài này là khi ấn một nút ấn thì có một LED tương ứng sáng trong 1s rồi tắt trong khi các LED khác vẫn không sáng. Để làm được yêu cầu này trước hết ta cần khai báo tên LED, tên Key tương ứng với các chân trên vi điều khiển( Lưu ý nếu các bạn dùng P0 làm chân I/O thì cần lắp thêm điện trở kéo nhé) như sau: sbit LED0=P3^0; // Dinh nghia cho chan p3.0 co ten la LED0 sbit LED1=P3^1; sbit LED2=P3^2; sbit LED3=P3^3; sbit KEY0=P2^0; // Dinh nghia cho chan p2.0 co ten la KEY0 sbit KEY1=P2^1; sbit KEY2=P2^2; sbit KEY3=P2^3; Hàm delay() được phát biểu như sau: void delay(unsigned int time ) { unsigned int i; unsigned int j; for( i=0; i<time; i++ ) for( j=0; j<1275; j++ ); } Mình xin khái quát qua thuật toán như sau: + Khai báo trạng thái ban đầu là key và led đều mức cao, tức chưa ấn key và LED đều tắt. + Khi ấn Key0 thì LED0 sáng trong 1s rồi tắt, 3 đèn còn lại đều tắt. + Khi ấn Key1 thì LED1 sáng trong 1s rồi tắt, 3 đèn còn lại đều tắt. + Khi ấn Key2 thì LED2 sáng trong 1s rồi tắt, 3 đèn còn lại đều tắt. + Khi ấn Key3 thì LED3 sáng trong 1s rồi tắt, 3 đèn còn lại đều tắt. Để làm được yêu cầu như trên, chúng ta cần sử dụng hàm if(điều kiện)...Mình xin trích qua code main như sau: void main(void) { KEY0=KEY1=KEY2=KEY3=1; // GIA TRI BAN DAU CUA KEY DON LED0=LED1=LED2=LED3=1; // TAT CA LED DEU TAT while (1) { if(KEY0==0) // KEY0 duoc nhan { LED0=0; // LED0 sang delay(1000); // 1s delay LED0=1=LED1=LED2=LED3; // tat ca led cung tat } if(KEY1==0) { LED1=0; delay(1000); LED1=LED2=LED3=LED0=1; } if(KEY2==0) { LED2=0; delay(1000); LED0=LED1=LED2=LED3=1; } if(KEY3==0) { LED3=0; delay(1000); LED0=LED1=LED2=LED3=1; } } } Mạch nguyên lý như hình sau:Thứ Tư, 29 tháng 6, 2016
Bài 5.1: Giao tiếp với LEDs đơn nâng cao
Lần này mình sẽ hướng dẫn các bạn tương tác với LEDs đơn nhưng với quy mô là cả một PORT, đây là một bài nâng cao hơn so với bài 5 vừa rồi. Trước hết, ta quay lại tìm hiểu cấu trúc của một PORT của 8051 gồm những gì ? Các PORT xuất/nhập của 8051 bao gồm port 0 tại địa chỉ 80H, port 1 ở địa chỉ 90H, port 2 ở địa chỉ A0H và port 3 ở địa chỉ B0H. Các port 0, 2, 3 không được dùng để xuất/nhập nếu ta sử dụng thêm bộ nhớ ngoài hoặc có một số đặc tính đặc biệt của 8051 được sử dụng( như ngắt, port nối tiếp...). P1.2 đến P1.7, ngược lại luôn luôn là các đường xuất/nhập đa mục đích hợp lệ. Tất cả các port đều được định địa chỉ từng bit nhằm cung cấp khả năng giao tiếp mạnh. Tức mỗi port là một byte, gồm 8 bits, ở đây tương đương với 8 chân xuất/nhập của từng port. Để làm việc với cả port, ta chỉ cần nhớ tên của port và giá trị mong muốn của port( dạng hexa hoặc nhị phân đều được). Ví dụ ở đây là cho chân P1.0 lên mức cao và các chân còn lại của port 1 ở mức thấp, ta có thể khai báo trong C như sau: P1=00000001 // ở dạng nhị phân Hoặc P1=0x01 // ở dạng hexa Như vậy chúng ta đã có thể tương tác trực tiếp được với từng bit của một port cũng như cả port của 8051. Ví dụ về tương tác với port 2 của 8051: Sơ đồ nguyên lý như sau:Thứ Ba, 28 tháng 6, 2016
Bài 5: Giao tiếp với LED đơn
Tiếp nối bài 4 lần trước, lần này mình xin hướng dẫn các bạn giao tiếp với LED đơn như sau: Trước hết, ta cần hiểu về một cấu trúc của port Xuất/Nhập (Output/Input) 1. Cấu trúc của một port xuất/nhập: Dưới đây là cấu trúc của một port xuất nhập. Việc ghi đến 1 chân của port sẽ nạp dữ liệu vào bộ chốt của port( Port Latch),ngõ ra Q của bộ chốt điều khiển một transistor trường và transistor này nối với các chân của port. Khả năng fanout( số lượng đầu vào logic của một cổng nhiều hay ít) của các port 1, 2 và 3 là 4 tải vi mạch TTL loại Schottky công suất thấp( LS ) còn của port 0 là 8 tải loại LS. Lưu ý là điện trở kéo lên( pull up ) sẽ không có ở port 0( trừ khi port này làm nhiệm vụ của bus địa chỉ/ dữ liệu đa hợp ) do vậy chúng ta cần lắp điện trở kéo bên ngoài cho port 0. Giá trị của điện trở này phụ thuộc vào đặc tính ngõ vào của thành phần nối với chân của port( thông thường sẽ là 4k7 đến 10k).
2. Chu kì máy của 8051 Đối với CPU để thực hiện một lệnh bất kì thì mất một chu kì đồng hồ này được coi như các chu kì máy. Đối với họ 8051 thì độ dài chu kì máy phụ thuộc vào tần số bộ dao động thạch anh được nối vào hệ thống 8051. Bộ dao động thạch anh cùng với mạch điện trên chip cung cấp xung đồng hồ cho CPU của 8051. Tần số của thạch anh nối với 8051 dao động trong khoảng 4MHz đến 30MHz phụ thuộc vào tốc độ chíp và nhà sản xuất. Thường xuyên nhất là bộ dao động thạch anh với tần số 10.0592MHz được sử dụng làm cho hệ thống 8051 tương thích với cổng nối tiếp của PC IBM. Trong 8051, một chu kì máy kéo dài 12 chu kì dao động. Do vậy, để tính toán chu kì máy ta lấy 1/12 tần số của thạch anh, sau đó ta lấy giá trị ngịch đảo để tìm đc thời gian của một chu kì máy. Ví dụ chu kì máy với trường hợp thạch anh là 11.0592MHz được tính như sau: 11.0592/12=921.6KHz, Chu kì máy là 1/921.6kHz=1.085uS. 3, Giao tiếp với LED đơn. Mạch nguyên lý được vẽ trên Proteus như sau: Thứ Tư, 22 tháng 6, 2016
Bài 4. Hướng dẫn mô phỏng trên Proteus và cách nạp chương trình cho họ 8051
Bài này mình sẽ hướng dẫn các bạn dùng Keil C để dịch sang file .hex dùng cho mô phỏng mạch trên Proteus. Công cụ chúng ta cần là Keil C và Proteus 8.4. File .hex là gì ? Hex ở đây được viết tắt bởi từ hexadecimal có nghĩa là hệ cơ số 16 hay hệ thập lục phân. Khi bạn viết code và nạp chương trình cho vi điều khiển thì không đơn thuần là nạp những "câu lệnh" bạn viết ra đưa vào vi điều khiển, mà phải thông qua trình biên dịch (Code Vision, Keil C...đều là trình biên dịch) "dịch" lại những gì mình viết và tạo ra một chuỗi kí tự gồm những chữ (từ A đến F) và số (từ 0 đến 9) thuộc hệ thập lục phân. Những chữ số này nạp vào vi điều khiển thì vi điều khiển mới "hiểu" được. Những chữ số này được đóng gói và lưu lại thành một file có đuôi mở rộng là ".hex". Tại sao lại dịch sang file .hex là không phải là file với định dạng khác? Vi điều khiển chỉ có khả năng làm việc với các tập lệnh dưới định dạng là ở cơ số 16, vì vậy ta cần một file .hex để nạp vào vi điều khiển, qua đó thì vi điều khiển mới hoạt động được. 1. Hướng dẫn dùng Keil C để dịch ra file .hex Để bắt đầu viết code cho một dự án nào đó, các bạn mở Keil C lên và chọn Project/ New uVision Project. Màn hình tiếp theo các bạn điền tên project rồi chọn OK.Thứ Hai, 20 tháng 6, 2016
Bài 3: Hướng dẫn cài đặt Keil C
1. Cài đặt: Các bạn vào trang này rồi điền các thông tin cần thiết để tiến hành tải về Keil C for 8051 familes: https://www.keil.com/demo/eval/c51.htm. Link sau là file Keygen.rar https://www.mediafire.com/?pj1iof9f98ddahd Sau khi tải về đươc file .exe thì ta tiến hành cài đặt:Tìm kiếm Blog này
Giới thiệu về tôi
Unknown Xem hồ sơ hoàn chỉnh của tôiLưu trữ Blog
Từ khóa » Ngôn Ngữ Lập Trình Vdk
-
Lập Trình C Trong Vi điều Khiển (Phần 1) - Điện Tử Hello
-
Ngôn Ngữ C Cho Vi điều Khiển - Điện Tử Việt
-
Bài 2-1: Lập Trình Cho Vi điều Khiển
-
VDK Bài 3 (p1): Giới Thiệu Ngôn Ngữ Lập Trình C Cho Vi điều Khiển AVR
-
C & 8051 - Viết Chương Trình đầu Tiên Cho Vđk 8051 - YouTube
-
Tổng Quan Về Vi điều Khiển, Cấu Tạo Và Cách Hoạt động - Khuê Nguyễn
-
Lập Trình C Cơ Bản Cho Vi điều Khiển - SlideShare
-
Lập Trình C Cho VĐK 8051 - SlideShare
-
Cơ Bản Về Lập Trình C Cho Vi điều Khiển
-
Lập Trình Pic, Vi điều Khiển Về Biến, Lệnh C, Truy Xuất CCS - Bài 2
-
Tự Học Vi điều Khiển Hiệu Quả | MCU Learning
-
Hướng Dẫn Lập Trình Pic 16f887
-
Thiết Bị điện, điện Tử Gia Dụng | Làm Quen Với Lập Trình VĐK PIC ...