Chuong 1 Vi điều khiển 8051 CDA Training

46 655 2
Chuong 1 Vi điều khiển 8051 CDA Training

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình linh kiện điện tử và vi điều khiển 8051 tại CDA Training.

Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 1 Mục Lục Mục Lục 1 I. Thiết kế phần cứng với 8051: 2 1. Làm quen với vi điều khiển 8051: 2 2. Các mạch cơ bản: 3 3. Nạp chương trình: 5 4. Mạch Vi điều khiển cơ bản: 9 5. Kết nối cơ bản với Led đơn: 9 6. Kết nối cơ bản với phím bấm: 10 7. Bộ nhớ RAM của 8051: 10 II. Phần mềm Keil-C: 13 1. Khởi động: 13 2. Tạo Project: 13 3. Tạo chương trình: 15 4. Biên dịch chương trình: 17 III. Tập lệnh cơ bản với C và thuật toán: 19 1. Các khối thuật toán cơ bản: 19 2. Các kiểu dữ liệu: 19 3. Lệnh phép toán: 21 4. Lệnh if: 23 5. Lệnh if… else…: 23 6. Lệnh switch… case…: 24 7. Lệnh for: 25 8. Lệnh while: 26 9. Lệnh do…while…: 27 10. Chương trình con và chương trình ngắt: 27 11. Cấu trúc một chương trình C: 30 IV. Lập trình cơ bản với Led đơn: 33 1. Lập trình bật Led: 33 2. Lập trình Led sáng xen kẽ: 34 3. Lập trình Led sáng chớp tắt: 35 4. Lập trình Led sáng chớp tắt xen kẽ: 35 5. Lập trình Led sáng lần lượt: 36 6. Lập trình Led sáng dần: 37 7. Lập trình Led tắt dần: 38 8. Lập trình Led sáng dồn: 39 9. Lập trình Led tắt dồn: 40 V. Lập trình cơ bản với phím bấm: 41 1. Phần cứng: 41 2. Chống rung phím: 41 3. Lập trình với phím bấm 43 Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 2 I. Thiết kế phần cứng với 8051: 1. Làm quen với vi điều khiển 8051: a. Chức năng: Đối với vi điều khiển AT89S52: - Có 8Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình. Nhờ vậy Vi điều khiển có khả năng nạp xoá chương trình bằng điện đến 10000 lần. - 256 Byte RAM nội - 4 Port xuất/nhập 8 bit - Có 3 bộ định thời 16-bit (89S51 có 2 bộ định thời) - Có khả năng giao tiếp truyền dữ liệu nối tiếp b. Hình dáng thực tế và sơ đồ chân: Hình 1.1: Hình ảnh thực tế và chức năng các chân. c. Chức năng các chân: - Chân 20: GND. Nối mass - Chân 40: VCC. Cấp nguồn 5VDC. - Khi thiết kế cần sử dụng một mạch ổn áp để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805. Hoặc các mạch nguồn ở chuyên đề trước. - Chân 39-32: PORT 0. Các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí, hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt. Với Port 0, khi sử dụng cần treo thêm trở treo để có được mức 1. - Chân 1-8: PORT 1. Tương tự Port 0. Ngoài ra: chân P1.5-P1.7 còn là cổng nạp nối tiếp của vi điều khiển. - Chân 21-28: PORT 2. Tương tự Port 0. Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 3 - Chân 10-17: PORT 3. Tương tự Port 0. Ngoài ra: Mỗi chân còn có các chức năng sau: Bit Tên Chức năng P3.0 RxD Ngõ vào nhận dữ liệu nối tiếp P3.1 TxD Ngõ xuất dữ liệu nối tiếp P3.2 INT0 Ngõ vào ngắt cứng thứ 0 P3.3 INT1 Ngõ vào ngắt cứng thứ 1 P3.4 T0 Ngõ vào của Timer/Counter thứ 0 P3.5 T1 Ngõ vào của Timer/Counter thứ 1 P3.6 WR Ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài P3.7 RD Ngõ điều khiển đọc dữ liệu từ bộ nhớ bên ngoài P1.0 T2 Ngõ vào của Timer/Counter thứ 2 P1.1 T2X Ngõ Nạp lại/thu nhận của Timer/Counter thứ 2 Bảng 1: Chức năng các chân ở Port 3. - Chân 9: RESET. Là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy. - Chân 18, 19: X1, X2. Là 2 chân dao động được sử dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạo nguồn xung clock ổn định. - Chân 29, 30: ALE, PSEN. Là 2 chân liên quan đến bộ nhớ ngoài. - Chân 31: EA. Chân EA dùng để xác định chương trình thực hiện được lấy từ ROM nội hay ROM ngoại. o Khi EA nối với logic 1(+5V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ nội. o Khi EA nối với logic 0(0V) thì Vi điều khiển thực hiện chương trình lấy từ bộ nhớ ngoại. 2. Các mạch cơ bản: a. Mạch nguồn: - Sử dụng mạch nguồn LM7805. - Sử dụng mạch nguồn LM2576, LM2596. - Sử dụng mạch nguồn 34063. Tham khảo ở chuyên đề thiết kế mạch. b. Mạch dao động: - Vi điều khiển nếu muốn hoạt động được cần phải có mạch dao động. Mạch dao động được xem như “Trái tim” dùy trì xung nhịp cho vi điều khiển. - Mạch dao động thường được sử dụng cho các dòng vi điều khiển là mạch dao động thạch anh: Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 4 Y1 12MHz C2 33p C3 33p X2X1 Hình 1.2: Mạch dao động sử dụng thạch anh c. Mạch reset: - Việc kết nối chân RESET đảm bảo hệ thống bắt đầu làm việc khi Vi điều khiển được cấp điện, hoặc đang hoạt động mà hệ thống bị lỗi cần tác động cho Vi điều khiển hoạt động trở lại, hoặc do người sử dụng muốn quay về trạng thái hoạt động ban đầu. - vậy chân RESET được kết nối như sau: C5 10UF R5 10K SW1 RESET 5V RESET Hình 1.3: Mạch Reset d. Các điều kiện cơ bản để Vi điều khiển hoạt động: Để vi điều khiển hoạt động được cần có các điều kiện cơ bản sau: - Cấp nguồn 5V ổn định cho vi điều khiển - Lắp mạch dao động - Lắp mạch Reset - Chân EA (31) được nối với Vcc. Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 5 3. Nạp chương trình: a. Mạch nạp Willar: Hình 1.4: Mạch nạp Willar thực tế. Hình 1.5: Phần mềm nạp Willar. - Ưu điểm: o Sử dụng chế độ nạp song song nên nạp được các vi điều khiển họ 89Cxx. Như: AT89C51, AT89C52… o Nạp được một số loại Rom từ Atmel và một số vi điều khiển của Winbon Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 6 - Nhược điểm: o Do chỉ có thể nạp song song nên muốn nạp Vi điều khiển cần phải nhổ Vđk ra khỏi mạch trung tâm, cắm vào mạch nạp để nạp chương trình, rồi lại cắm vào mạch trung tâm. Như vậy sẽ rất mất thời gian và có thể gây gãy chân Vđk. o Không nạp được các Vđk có kiểu chân SMD. o Giá thành cao. b. Mạch nạp Burn-E: Hình 1.6: Mạch nạp Burn-E thực tế và ý tưởng đặt tên Hình 1.7: Giao diện phần mềm nạp Burn-E Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 7 - Ưu điểm: o Mạch nạp theo chế độ nối tiếp nên mạch nhỏ gọn. o Giá thành “rẻ”. (Bằng mạch nạp Willar, tuy nhiên có thể nạp được cho Vđk AVR, PIC nên thuận tiện sau này mà không cần mạch nạp khác) o Có thể nạp trực tiếp Vđk trên mạch mà không cần tháo Vđk ra. Do đó có thể nạp được Vđk dạng SMD dễ dàng. - Nhược điểm: o Không nạp được các Vđk chỉ có chế độ nạp song song. Như AT89C51, AT89C52… c. Mạch nạp 8051 của Phillip: Đây cũng là mạch giao tiếp giữa máy tính và vi điều khiển: Hình 1.8: Mạch nạp qua cổng USB Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 8 Hình 1.9: Mạch nạp qua cổng Com 9 chân Hình 1.10: Giao diện phần mềm nạp Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 9 4. Mạch Vi điều khiển cơ bản: Q1 LM7805 VI 1 GND 2 VO 3 C1 1000uF/25V C2 100uF/16V C3 104 C4 104 - + D1 DIODE CAU 2 1 3 4 R1 330 D2 LED J1 NGUON 1 2 J2 NGO RA 1 2 U1 AT89S52 PSEN 29 ALE 30 VCC 40 EA 31 X1 19 X2 18 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0(T2) 1 P1.1(T2 EX) 2 P1.2 3 P1.3 4 P1.4 5 P1.5(MOSI) 6 P1.6(MISO) 7 P1.7(SCK) 8 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 Y1 12MHz C5 33pF C6 33pF X1 X2 X1 X2 MOSI RESET P0.1 P0.0 SCK MISO P0.2 P0.3 P0.7 P0.6 P0.4 P0.5 RXD TXD P3.6 P3.7 P3.3 P3.2 P3.5 P3.4 P2.0 P2.1 P2.6 P2.7 P2.3 P2.2 P2.5 P2.4 P1.4 P1.0 P1.2 P1.1 P1.3 R2 10k C7 10uF 5V SW1 RESET RESET 5V D3 LED D4 LED D5 LED D6 LED D7 LED D8 LED D9 LED D10 LED P0.1P0.0 P0.5P0.2 P0.3 P0.7P0.6P0.4 R3 330 R4 330 R5 330 R6 330 R7 330 R8 330 R9 330 R10 330 5V 5V 5V 5V 5V 5V5V 5V J3 NAP BURN-E 1 2 3 4 5 6 J4 NAP PHILLIP 1 2 3 4 RESET SCK MOSI MISO TXD RXD 5V 5V J5 P2 1 2 3 4 5 6 7 8 J6 P1 1 2 3 4 5 P2.2 P2.0 P2.1 P2.6 P2.7 P2.3 P2.5 P2.4 P1.3 P1.4 P1.0 P1.2 P1.1 R11 4k7 1 2 3 4 5 6 7 8 9 5V RXD TXD P3.3 P3.2 P3.4 P3.6 P3.7 P3.5 SW2 PHIM BAM P3.2 SW3 PHIM BAM P3.3 SW4 PHIM BAM P3.4 SW5 PHIM BAM P3.5 SW6 PHIM BAM P3.6 SW7 PHIM BAM P3.7 Hình 1.11: Mạch vi điều khiển cơ bản. 5. Kết nối cơ bản với Led đơn: a. Kết nối Led sáng mức 0: D18 LED R21 330 R22 4k7 5V P1.0 5V Hình 1.12: Kết nối Led sáng mức 0 Giáo trình Vi điều khiển 8051 Trung tâm CDA Training Buổi 1: Làm quen với vi điều khiển K82/69 Nguyễn Lương Bằng Biên Soạn: Trần Bảo An 10 b. Kết nối Led sáng mức 1: D18 LED R21 330 R22 4k7 5V P1.0 Hình 1.13: Kết nối Led sáng mức 1 6. Kết nối cơ bản với phím bấm: R22 4k7 5V P1.0 SW9 PHIM BAM 2 Hình 1.14: Kết nối với Phím bấm 7. Bộ nhớ RAM của 8051: - Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu. - RAM nội trong Vi điều khiển được tổ chức như sau: o Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục phân (số Hex) o Các bank thanh ghi có địa chỉ 00H đến 1FH o 210 vị trí được định địa chỉ bit o Các vị trí RAM bình thường o Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H đến FFH. - Các byte RAM 8 bit của vi điều khiển được gọi là "ô nhớ", nếu các ô nhớ có chức năng đặc biệt thường được gọi là "thanh ghi", nếu là bit thì được gọi là "bit nhớ". [...]... 33 32 31 30 25H 2F 2E 2D 2C 2B 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H F E D C B A 9 8 20H 7 6 5 4 3 2 1 0 1FH Bank 3 18 H 17 H Bank 2 10 H 0FH Bank 1 08H 07H Bank thanh ghi 0 (mặc định cho R0-R7) 00H Biên Soạn: Trần Bảo An Chức năng Vùng RAM đa dụng Vùng RAM có thể định địa chỉ Bit Các bank thanh ghi 11 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm... Chọn hãng sản xuất vi điều khiển Biên Soạn: Trần Bảo An 14 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng Hình 2.5: Chọn loại vi điều khiển Hình 2.6: Chọn No 3 Tạo chương trình: Hình 2.7: Tạo chương trình cho Project Biên Soạn: Trần Bảo An 15 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69... trình: Hình 2 .12 : Thiết lập cấu hình Project Biên Soạn: Trần Bảo An 17 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng Hình 2 .13 : Chọn Create HEX file Hình 2 .14 : Rebuild sau khi vi t chương trình xong để tạo file Hex Biên Soạn: Trần Bảo An 18 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69... TH1 AUXR CKCON PCON 12 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng II Phần mềm Keil-C: 1 Khởi động: Hình 2 .1: Biểu tượng chương trình 2 Tạo Project: Ta thao tác như sau Hình 2.2: Tạo New Project Biên Soạn: Trần Bảo An 13 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng Hình... Sáng xen kẽ P0 = 0xaa; (10 1 010 10) Kết thúc CT b Chương trình: #include "reg51f.h" void Sang_Xen_Ke(void); //Nguyên mẫu hàm hàm xen kẽ void main(void){ while (1) { Sang_Xen_Ke();//Gọi hàm sáng xen kẽ } } void Sang_Xen_Ke(void){//Hàm sáng xen kẽ P0 = 0xaa; / /10 10 10 10 Sáng xen kẽ } Biên Soạn: Trần Bảo An 34 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn... trong C: Kiểu Số Byte Khoảng giá trị char 1 -12 8 unsigned char 1 0 int 2 -32768 unsigned int 2 0 long 4 - 214 7483648 unsigned long 4 0 float 4 Khai báo: - Cú pháp: Kiểu_dữ_liệu Tên_biến; Biên Soạn: Trần Bảo An – – – +12 7 255 +32767 65535 + 214 7483647 4294697295 19 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển - - - - - - - - Trung tâm CDA Training K82/69 Nguyễn Lương Bằng Cũng có thể... 500ms Tắt Led P0 = 0xff; (11 111 111 ) Delay 500ms Kết thúc CT b Chương trình: #include "reg51f.h" #include "delay.c" void Sang_Chop_Tat(void); void main(void){ while (1) { Sang_Chop_Tat(); } } //Nguyen mau ham //ham sang chop tat //Goi ham sang chop tat void Sang_Chop_Tat(void){ //Ham sang chop tat P0 = 0x00; //0000 0000 Bat Led delay_ms(500); //Hoan de nhin thay P0 = 0xff; / /11 11 111 1 Tat Led delay_ms(500);... File với đuôi *.asm để vi t bằng ngôn ngữ Asembly hoặc *.C nếu vi t bằng ngôn ngữ C Hình 2.8: Lưu chương trình vừa tạo (C hoặc Asm) Add File vừa tạo vào Project: Hình 2.9: Add chương trình vừa tạo vào project Biên Soạn: Trần Bảo An 16 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng Hình 2 .10 : Chọn file Hình 2 .11 : File sau khi add và Project... tắt xen kẽ: Chương trình học vi n tự vi t Biên Soạn: Trần Bảo An 35 Giáo trình Vi điều khiển 80 51 Buổi 1: Làm quen với vi điều khiển Trung tâm CDA Training K82/69 Nguyễn Lương Bằng 5 Lập trình Led sáng lần lượt: a Thuật toán: Lần lượt Biến đếm i=0; Biến tạm a=0xfe; i . RA 1 2 U1 AT89S52 PSEN 29 ALE 30 VCC 40 EA 31 X1 19 X2 18 RST 9 P0.0/AD0 39 P0 .1/ AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0(T2) 1 P1 .1( T2 EX) 2 P1.2 3 P1.3 4 P1.4 5 P1.5(MOSI) 6 P1.6(MISO) 7 P1.7(SCK) 8 P2.0/A8 21 P2 .1/ A9 22 P2.2/A10 23 P2.3/A 11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 P3.0/RXD 10 P3 .1/ TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 Y1 12 MHz C5 33pF C6 33pF X1 X2 X1 X2 MOSI RESET P0 .1 P0.0 SCK MISO P0.2 P0.3 P0.7 P0.6 P0.4 P0.5 RXD TXD P3.6 P3.7 P3.3 P3.2 P3.5 P3.4 P2.0 P2 .1 P2.6 P2.7 P2.3 P2.2 P2.5 P2.4 P1.4 P1.0 P1.2 P1 .1 P1.3 R2 10 k C7 10 uF 5V SW1 RESET RESET 5V D3 LED D4 LED D5 LED D6 LED D7 LED D8 LED D9 LED D10 LED P0.1P0.0. EX) 2 P1.2 3 P1.3 4 P1.4 5 P1.5(MOSI) 6 P1.6(MISO) 7 P1.7(SCK) 8 P2.0/A8 21 P2 .1/ A9 22 P2.2/A10 23 P2.3/A 11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 P3.0/RXD 10 P3 .1/ TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P3.6/WR 16 P3.7/RD 17 Y1 12 MHz C5 33pF C6 33pF X1 X2 X1 X2 MOSI RESET P0 .1 P0.0 SCK MISO P0.2 P0.3 P0.7 P0.6 P0.4 P0.5 RXD TXD P3.6 P3.7 P3.3 P3.2 P3.5 P3.4 P2.0 P2 .1 P2.6 P2.7 P2.3 P2.2 P2.5 P2.4 P1.4 P1.0 P1.2 P1 .1 P1.3 R2 10 k C7 10 uF 5V SW1 RESET RESET 5V D3 LED D4 LED D5 LED D6 LED D7 LED D8 LED D9 LED D10 LED P0.1P0.0. 1A 19 18 22H 17 16 15 14 13 12 11 10 21H F E D C B A 9 8 20H 7 6 5 4 3 2 1 0 1FH 18 H Bank 3 Các bank thanh ghi 17 H 10 H Bank 2 0FH 08H Bank 1 07H 00H Bank

Ngày đăng: 06/05/2014, 22:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan