Tài Liệu học lập trình 8051 hay ( rất chi tiết )

121 18 0
  • Loading ...
1/121 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 28/11/2016, 20:30

Bài 1: Giới thiệu về vi điều khiển31.1.Tiêu chuẩn trong lựa chọn một bộ vi điều khiển31.2.Vi điều khiển và vi xử lí31.3.Sơ đồ chân vi điều khiển 805131.4.Mạch 8051 tối thiểu61.5.Cấu trúc sơ đồ khối của vi điều khiển71.6.Các thành viên khác của họ 805191.7.Ram nội và các thanh ghi SFR của 805111Bài 2.Ngôn ngữ lập trình cho vi điều khiển (Phần 1)122.1.Cấu trúc một chương trình122.2.Các loại biến trong C132.3.Hàm trong C152.4.Toán tử cơ bản152.5.Cấu trúc lệnh rẽ nhánh152.6.Bộ tiền xử lý16Bài 2.Hướng dẫn sử dụng keil C (Phần 2)172.1.Khới tạo project172.2.Soạn thảo chương trình362.3.Dịch chương trình412.4.Mô phỏng45Bài 3.Điều khiển O(out) với Led đơn503.1.Lắp mạch503.2.Nguyên lý hoạt động513.3.Lập trình523.4.Nạp chương trình603.5.Kết quả613.6.Điều khiển Led từng chiếc 1623.7.Điều khiển Out62Bài 4.Điều khiển led 7 thanh674.1.Lắp mạch67DKS_GROUP 2 www.EmbestDKS.com DKS_GROUPMicrocontroller Training Center4.2.Nguyên lý hoạt động684.3.Lập trình694.4.Nạp chíp754.5.Kết quả75Bài 5.Đọc bàn phím785.1.Lắp mạch785.2.Nguyên lý quét phím795.3.Lập trình79Bài 6.Điều khiển LCD 16x2946.1.Lắp mạch946.2.Nguyên lý hoạt động của LCD976.3.Lập trình976.3.1.Định nghĩa con trỏ996.3.2.Cách sử dụng99Bài7.Điều chế độ rộng xung1007.1.Lắp mạch theo sơ đồ1017.2.Nguyên lý hoạt động110Bài 8.Led ma trận1148.1.Lắp mạch1148.2.Nguyên lý hoạt động1168.2.Code117DKS_GROUP 3 www.EmbestDKS.com DKS_GROUPMicrocontroller Training CenterChú ý : Đây hoàn toàn là phần lí thuyết, mình đã rút gọn tối đa, do đó các bạn nên đọc hết. Chưa nên thực hành vội vì tôi sẽ hướng dân sau. 1.1 Tiêu chuẩn trong lựa chọn một bộ vi điều khiển Là khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai. Đối với một số nhà thiết kế điều này là quan trong hơn cả . Hiện nay, các bộ vi điều khiển 8 bit đứng đầu là họ 8051 có số lương lớn nhất các nhà cung cấp đa dạng (nhiều nguồn). Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của bộ vi điều khiển. Trong trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay có rất nhiều hãng sản xuất nó (cũng như trước kia đã sản xuất). Các hãng này bao gồm: Intel, Atmel, Philipssignetics, AMD, Siemens, Matra và Dallas, Semicndictior. DKS_GROUP DKS_GROUP Microcontroller Training Center -1- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center MỤC LỤC Bài 1: Giới thiệu vi điều khiển 1.1.Tiêu chuẩn lựa chọn vi điều khiển 1.2.Vi điều khiển vi xử lí 1.3.Sơ đồ chân vi điều khiển 8051 1.4.Mạch 8051 tối thiểu 1.5.Cấu trúc sơ đồ khối vi điều khiển 1.6.Các thành viên khác họ 8051 1.7.Ram nội ghi SFR 8051 11 Bài 2.Ngôn ngữ lập trình cho vi điều khiển (Phần 1) 12 2.1.Cấu trúc chương trình 12 2.2.Các loại biến C 13 2.3.Hàm C 15 2.4.Toán tử 15 2.5.Cấu trúc lệnh rẽ nhánh 15 2.6.Bộ tiền xử lý 16 Bài 2.Hướng dẫn sử dụng keil C (Phần 2) 17 2.1.Khới tạo project 17 2.2.Soạn thảo chương trình 36 2.3.Dịch chương trình 41 2.4.Mô 45 Bài 3.Điều khiển O(out) với Led đơn 50 3.1.Lắp mạch 50 3.2.Nguyên lý hoạt động 51 3.3.Lập trình 52 3.4.Nạp chương trình 60 3.5.Kết 61 3.6.Điều khiển Led 62 3.7.Điều khiển Out 62 Bài 4.Điều khiển led 67 4.1.Lắp mạch DKS_GROUP 67 -2- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center 4.2.Nguyên lý hoạt động 68 4.3.Lập trình 69 4.4.Nạp chíp 75 4.5.Kết 75 Bài 5.Đọc bàn phím 78 5.1.Lắp mạch 78 5.2.Nguyên lý quét phím 79 5.3.Lập trình 79 Bài 6.Điều khiển LCD 16x2 94 6.1.Lắp mạch 94 6.2.Nguyên lý hoạt động LCD 97 6.3.Lập trình 97 6.3.1.Định nghĩa trỏ 99 6.3.2.Cách sử dụng 99 Bài7.Điều chế độ rộng xung 100 7.1.Lắp mạch theo sơ đồ 101 7.2.Nguyên lý hoạt động 110 Bài 8.Led ma trận 114 8.1.Lắp mạch 114 8.2.Nguyên lý hoạt động 116 8.2.Code 117 DKS_GROUP -3- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center Chú ý : Đây hoàn toàn phần lí thuyết, rút gọn tối đa, bạn nên đọc hết Chưa nên thực hành vội hướng dân sau 1.1 Tiêu chuẩn lựa chọn vi điều khiển Là khả sẵn sàng đáp ứng số lượng tương lai Đối với số nhà thiết kế điều quan Hiện nay, vi điều khiển bit đứng đầu họ 8051 có số lương lớn nhà cung cấp đa dạng (nhiều nguồn) Nhà cung cấp có nghĩa nhà sản xuất bên cạnh nhà sáng chế vi điều khiển Trong trường hợp 8051 nhà sáng chế Intel, có nhiều hãng sản xuất (cũng trước sản xuất) Các hãng bao gồm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra Dallas, Semicndictior Bảng địa số hãng sản xuất thành viên họ 8051 Hãng Địa Website Intel www.intel.com/design/mcs51 Antel www.atmel.com Plips/ Signetis www.semiconductors.philips.com Siemens www.sci.siemens.com Dallas Semiconductor www.dalsemi.com 8051 xử lý bit có nghĩa CPU làm việc với bit liệu thời điểm Dữ liệu lớn bit chia thành liệu bit xử lý 8051 có tất cổng vào - I/O cổng rộng bit Các nhà sản xuất cho xuất xưởng với 4K byte ROM chíp Bảng đặc tính 8051 Đặc tính Số lượng ROM chíp 4K byte RAM 128 byte Bộ định thời Các chân vào - 32 Cổng nối tiếp Nguồn ngắt 1.2.Vi điều khiển vi xử lí: Xin nhắc đến máy tính bạn, chíp Intel hay ADM bạn vi xử lí, RAM, ROM,cổng IO thiết bị ngoại vi on Chip Còn vi điều khiển chứa vi xử lí RAM,ROM, cổng IO, có thiết bị ngoại vi 1.3 Sơ đồ chân vi điều khiển 8051: Là IC đóng vỏ dạng DIP có 40 chân, chân có kí hiệu tên có chức sau: Chân 40: nối với nguồn nuôI +5V Chân 20: nối với đất(Mass, GND) Chân 29 (PSEN)(program store enable) tín hiệu điều khiển xuất 8051, cho phép chọn nhớ nối chung với chân OE (Outout Enable) EPROM phép đọc byte chương trình Các xung tín hiệu PSEN hạ thấp suốt thời gian thi hành lệnh Những mã nhị phân chương trình DKS_GROUP -4- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center đọc từ EPROM qua bus liệu chốt vào ghi lệnh 8051 mã lệnh.(chú ý việc đọc đọc lệnh (khác với đọc liệu), VXL đọc bit opcode lệnh đưa chúng vào hàng đợi lệnh thông qua Bus địa liệu) Chân 30 (ALE : Adress Latch Enable) tín hiệu điều khiển xuất 8051, cho phép phân kênh bus địa bus liệu Port Chân 31 (EA : Eternal Acess) đưa xuống thấp cho phép chọn nhớ mã ngoàI 8051 Đối với 8051 : EA = 5V : Chọn ROM nội EA = 0V : Chọn ROM ngoại 32 chân lại chia làm cổng vào ra: Vào tức dùng chân để đọc mức logic (0;1 tương ứng với 0V ; 5V)vào hay xuất mức logic ra(0;1) P0 từ chân 39 P1 từ chân P2 từ chân 21 P3 từ chân 10 10 11 12 13 14 15 16 17 18 19 20 U1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RESET RXD TXD INT0 INT1 T0 T1 WR RD X2 X1 VSS VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VP AT89C51 ALE/P PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 32 tương ứng chân P0_0 P0_7 tương ứng chân P1_0 P1_7 28 tương ứng chân P2_0 P2_7 17 tương ứng chân P3_0 P3_7 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 P0 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 P3 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Port's Bit D0 D1 D2 D3 D4 D5 D6 D7 22 21 Riêng cổng có chức chân hình vẽ: P3.0 - RxD : chân nhận liệu nối tiếp giao tiếp RS232(Cổng COM ) P3.1 _ TxD : phân truyền liệu nối tiếp giao tiếp RS232 P3.2 _ INTO : interrupt , ngắt P3.3 _ INT1: interrupt 1, ngắt P3.4 _T0 : Timer0 , đầu vào timer0 P3.5_T1 : Timer1, đầu vào timer P3.6_ WR: Write, điều khiển ghi dứ liệu P3.7 _RD: Read , điều khiển đọc liệu Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK DKS_GROUP -5- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center Tần số thạch anh thường dùng ứng dụng : 11.0592Mhz(giao tiếp với cổng com máy tính) 12Mhz Tần số tối đa 24Mhz Tần số lớn VĐK xử lí nhanh S1 S6 P1 Dao động thạch anh S3 S2 S4 S5 P2 Riêng cổng có thêm chức P3.0 - RxD : chân nhận liệu nối tiếp giao tiếp RS232(Cổng COM ) P3.1 _ TxD : phần truyền liệu nối tiếp giao tiếp RS232 P3.2 _ INTO : interrupt , ngắt P3.3 _ INT1: interrupt 1, ngắt P3.4 _T0 : Timer0 , đầu vào timer0 P3.5_T1 : Timer1, đầu vào timer P3.6_ WR: Write, điều khiển ghi dứ liệu P3.7 _RD: Read , điều khiển đọc liệu Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK Tần số thạch anh thường dùng ứng dụng : 11.0592Mhz(giao tiếp với cổng com máy tính) 12Mhz Tần số tối đa 24Mhz Tần số lớn VĐK xử lý nhanh 5VDC 40 U3 VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 3938 37 36 35 34 33 32 EP0.7 RESET 10Kx9 R4 R7 R9 + C3 10uF/25V R1 10K C2 33p 12Mhz C1 33p 19 18 20 X1 X2 GND 8051 DKS_GROUP -6- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center Mạch chưa có khối nguồn để tạo nguồn 5V bạn dùng IC sau: Sơ đồ chân: U6 LM7805/TO VIN VOUT GND Giới thiệu IC ổn áp 7805 : Đầu vào > 7V đầu 5V 500mA Mạch ổn áp: cần cho VĐK nguồn cho VĐK không ổn định treo VĐK, không chạy đúng, reset liên tục, chí chết chíp Mạch nguồn U1 LM7805/TO VIN 5VDC Out C1 104 + C3 10uF/25V C2 104 VOUT GND 12VDC In 1.4 Mạch vi điều khiển VCC U1 40 5VDC + C3 RESET 10uF/25V R1 10K C2 33p 18 X2 12Mhz C1 33p 19 20 X1 VSS 8051 DKS_GROUP -7- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center 1.5 Cấu trúc vi điều khiển 89c51 EXTERNAL INTERRUPTS ETC INTERRUP T TIMER ON CHIP TIMER CPU OS BUS CONTRO I/O PORTS SERIAL PORT PPPP TXD RXD ADDRESS/DAT Chú ý:Sơ đồ khối bên 8051 có tài nguyền Interrupt, Ram, Timer, Serial prort 1.6.Các thành viên khác họ 8051: Có hai vi điều khiển thành viên khác họ 8051 8052 8031 Bộ vi điều khiển 8052: 8052 có tất đặc tính chuẩn 8051 có thêm 128 byte RAM định thời Hay nói cách khác 8052 có 256 byte RAM định thời Nó có 8K byte ROM Trên chíp thay 4K byte 8051 Bảng : So sánh đặc tính thành viên họ 8051 Đặc tính ROM chip RAM Bộ định thời Cổng nối tiếp Nguồn ngắt 8051 4K byte 128 byte 8052 8K byte 256 byte Do tất chương trình viết cho 8051 chạy 8052 điều ngược lại không đúng.Đặc biệt : Một nhà sản xuất họ 8051 khác Philips Corporation Hàng có dải lựa chọn dộng lớn cho vi điều khiển DKS_GROUP -8- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center họ 8051 Nhiều sản phẩm hãng có kèm theo đặc tính chuyển đổi ADC, DAC, chân PWM, cổng I/0 mở rộng Update sản phẩm 8051 trang web nhà sản xuất địa có phần giới thiệu Chủ yếu:www.atmel.com 1.7.Ram nội ghi Cỏc cú địa FFH F0 F7 F6 F5 F4 F3 F2 F1 F0 E0 E7 E6 E5 E4 E3 E2 E1 E0 D0 D7 D6 6D 6C 6B 6A 69 68 B8 - - - BC BB BA B9 B8 B0 B7 B6 B5 B4 B3 B2 B1 B0 A8 AF AE AD AC AB AA A9 A8 A0 A7 A6 A5 A3 A2 A1 A0 99 98 Không định địa bít 9F 9E 9D 9C 9B 9A 99 98 90 8D 8C 8B 8A 89 88 97 96 95 94 93 Không định địa bít Không định địa bít Không định địa bít Không định địa bít Không định địa bít 8F 8D 8C 8B E Không định địa bít 92 91 90 8A 89 88 82 81 80 87 83 82 81 80 A4 Không định địa bít Không định địa bít Không định địa bít 87 86 84 83 ghi SFR nằm 80H địa THANH GHI CHỨC NĂNG ĐĂC BIÊT DKS_GROUP -9- www.EmbestDKS.com DKS_GROUP Microcontroller Training Center 80H, địa từ 00 đến 7FH địa nhớ RAM bên 8051 Không phải tất địa từ 80H đến FFH SFR sử dụng, vị trí ngăn nhớ từ 80H đến FFH chưa dùnglà để trữ lập trình viên 8051 không sử dụng Bảng : chức ghi chức đặc biệt SFR SFR định địa bit( ghi cần nhớ đối lập trình C) Thanh ghi / Bit TMOD Ký hiệu GATE C/T M1 M0 GATE C/T M1 M0 TF1 Ký hiệu TF1 TR1 Thanh ghi / Bit TCON TCON.7 TF1 TCON.6 TR1 TCON.5 TCON.4 TCON.3 TF0 TR0 IE1 DKS_GROUP Chức Chọn model cho định thời Bít điều khiển cổng Khi set lên 1, định thời hoạt động INT1 mức cao Bít chọn chức đếm định thời: 1= đếm kiện 0= định thời khoảng thời gian Bit chọn chế độ thứ Bit chọn chế độ thứ M1 M0 Châ Chøc n¨ng ®Ð 0 Chế độ định thời 13 bit 1 Chế độ định thời 16 bit Chế độ tự động nạp lại bit 1 Chế độ định thời chia xẻ Bit điều khiển cổng cho định thời Bit chọn chức đếm / định thời cho định thời Bit chọn chế độ thứ cho định thời Bit chọn chế độ thứ cho định thời TR0 IE1 IT1 IE0 IT0 Chức Điều khiển đinh thời Cờ tràn định thời Cờ set phần cứng có tràn, xoá phần mềm, phần cứng vi xử lý trỏ đến trình phục vụ ngắt Bit điều khiển hoạt động định thời Bit set xoá phần mềm để điều khiển định thời hoạt động hay ngưng Cừ tràn định thời Bit điều khiển hoạt động định thời Cừ ngắt bên (kích khởi cạnh) Cờ set phần cứng có cạnh âm (cuống) xuất chân INT1, xoá phần mềm, phần cứng CPU trỏ đến trình phục vụ ngắt - 10 - www.EmbestDKS.com DKS_GROUP Microcontroller Training Center chân INT1, xoá phần mềm, phần cứng CPU trỏ đến trình phục vụ ngắt TCON.2 IT1 Cờ ngắt bên (kích khởi cạnh mức) Cờ set xoá phần mềm xảy cạnh âm mức thấp chân ngắt TCON.1 IE0 Cờ ngắt bên (kích khởi cạnh) TCON.0 IT0 Cờ ngắt bên ( kích khởi cạnh mức) Ví dụ để chạy định thời timer ta dùng câu lệnh: TR1=0; TR1(Timer Run 1) Còn bạn thích khó thì:TCON=0xxx; Còn loại ngắt khác trình tương tự, khóa học làm việc với ngắt timer, khóa nâng cao có ngắt lại, nhiên làm việc với ngắt timer ngắt khác bạn làm tương tự, bạn làm đến ngắt dùng tài liệu tra bảng ghi ngắt Tài liệu gửi - Quay trở lại học: Sau khởi tạo song cho ngắt timer chạy điều xảy ra? Khi bắt đầu cho timer chạy đếm timer đếm dao động thạch anh, 12 dao động thạch anh(1 chu kì máy), đếm timer TL1(Timer Low1) tăng 1,có thển nói timer đếm số chu kì máy Đối với chế độ bít TL1 ghi bít, đếm định thời rõ Nó đếm từ 0, đến 255 Nếu đếm đến 256 đếm tràn, TL1 quay vòng lại 0, cờ ngắt TF1(Timer Flag 1) tự động gán lên 1(bằng phần cứng vi điều khiển) công tắc tự động bật, ngắt xảy Còn với chế độ 16 bít, đếm định thời ghi bít TH1(Timer high 1), cấu hình cho timer hoạt động chế độ 16 bit TL1 tràn đếm sang TH1(TH1 tăng 1) Như ta đếm: 216 chu kì máy( ghi 8+8=16 bít) Chú ý đếm tràn ngắt xảy Nếu ta cần đếm 256 chu kì máy khởi tạo ta cho TL1=0; , không muốn đếm 256 chu kì mày mà ta cần đếm 100 ngắt xảy ta fải làm sau: 256-100 = 156; khởi tạo ta gán : TL1=155; đếm từ 155 đến 255 đủ 100 lần ngắt xảy Với yêu cầu Tạo xung tần số 1Khz Chu kì = 1/103 = 0,001 giây= mili giây=1000 uS= 1000 chu kì máy Với 10 cấp tốc độ, tức bạn phải tạo xung 10%, 20%, 30%, 40%, …, 90%, 100% xung sau: 5V 0V T : Chu kì 1000 miro giây Khoảng thời gian xung kéo dài 5V T1 Xung 10% tức T1/ T= 10%=1/10 Xung 20% T2/T=2/10…PWM(Thay đổi độ rộng xung) Bây xin nói phần DKS_GROUP - 106 - www.EmbestDKS.com 048 DKS_GROUP Microcontroller Training Center 7.3) Nguyên lí hoạt động: - Xung PWM: Đưa mở transitor, xung với độ rộng lớn transitor mở lâu động quay nhanh hơn,dĩ nhiên không tuyến tính Không có xung động không quay, có xung 100% động quay max.Tuy nhiên xung phải lớn mức đủ khởi động cho động Các đặc tính bạn tham khảo giáo trình máy điện, khí cụ điện, bạn cần thông số xác Để thay đổi 10 cấp tốc độ với chu kì 1000uS, ta khởi tạo cho ngắt timer: 100 uS ngắt lần Trong hàm ngắt kiểm tra xem ta cần cấp xung % ta gán giá trị cho Cụ thể sau: * Hàm khởi tạo ngắt Dùng ngắt timer 0, 100 uS ngắt lần, dùng chế độ bit tự động nạp lại timer (vì cần đếm đến 100).TL0 nạp 156 Đối với chế độ tràn đếm TL0 quay vòng giá trị 0, sau lại nạp giá trị lưu TH0(giá trị nạp lại), ta cần gán giá trị choTL0 TH0 hàm khởi tạo, chế độ khác 16 bit, timer counter bit, tràn đếm TL0 không nạp lại mà ta phải tự gán lại giá trị cho hàm ngắt void khoitaotimer0(void)// Ham khoi tao { EA=0;// Cam ngat toan cuc TMOD=0x02;// Timer che bit auto reload TH0=0x9B;// Gia tri nap lai 155 doi so hex TL0=0x9B;// Gia tri khoi tao 155 doi so hex ET0=1;// Cho phep ngat timer EA=1;// Cho phep ngat toan cuc TR0=1;// Chay timer bat dau dem so chu ki may } DKS_GROUP - 107 - www.EmbestDKS.com 048 DKS_GROUP DKS_GROUP Microcontroller Training Center - 108 - www.EmbestDKS.com 048 DKS_GROUP Microcontroller Training Center * Hàm ngắt: unsigned char dem=0;// Khai bao bien dem de dem tu den 10 unsigned char phantramxung;// Bien chua phan tram xung(0 10) void timer0(void) interrupt //Ngat timer { TR0=0;// Dung chay timer TF0=0;// Xoa co, o che co tu duoc xoa,che khac can toi cu viet vao day dem++; if(dem[...]... các hãng điện tử sản xuất 8051 Bạn lập trình cho con nào thì chọn con đấy ,kích chuột vào các dấu + để mở rộng các con IC của các hãng Ở đây ta lập trình cho AT89C51 của hãng Atmel nên ta chọn như sau: DKS_GROUP - 22 - www.EmbestDKS.com DKS_GROUP Microcontroller Training Center Khi chọn chip thì ngay lập tức cái bảng hiện ra 1 số tính năng của chíp các bạn có thể nhìn thấy 8051 based Fully Static 24Mhz
- Xem thêm -

Xem thêm: Tài Liệu học lập trình 8051 hay ( rất chi tiết ), Tài Liệu học lập trình 8051 hay ( rất chi tiết ), Tài Liệu học lập trình 8051 hay ( rất chi tiết )

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập