Hướng Dẫn Thực Hành Lập Trình Vi Điều Khiển 89C51, Pic Bài 1

LỜI MỞ ĐẦU

văn minh khoa học tập kỹ thuật đã từng bước đổi mới các bộ phận khoa học tập kỹ thuật, những mạch tinh chỉnh trong từng vật dụng riêng lẽ cũng như trong technology sản lộ diện đại của rất nhiều lĩnh vực khác nhau.

Bạn đang xem: Lập trình vi điều khiển 89c51

Vì điều khiển - vi xử lý - ngày nay không chỉ bó nhỏ nhắn trong nghành nghề dịch vụ kỹ thuật công nghiệp cơ mà còn xuất hiện trong phần lớn các nghành nghề kỹ thuật khác nhau, khi bọn họ đang ngày dần phấn đấu thi công và hội nhập để bắt kịp sự trở nên tân tiến như vũ bão hằng ngày của quả đât trong nghành nghề vi điều khiển. Trường đoản cú những dây chuyền sản xuất sản xuất lớn trong những nhà máy, đến các thiết bị văn phóng hay đồ gia dụng, đều máy móc sản xuất hay các phương tiện học tập cùng giải trí…, đâu đâu ta cũng rất có thể thấy sự hiện hiện của vi điều khiển trong số thiết bị năng lượng điện tử.

Với các bộ vi điều khiển hiệ tượng trông dường như khá 1-1 giản, nhưng mà để vận hành chúng và áp dụng vi điều khiển vào những ứng dụng thực tiễn theo ý thích của con fan thì lại là một điều cực kỳ phức tạp, đòi hỏi phải có sự tìm hiểu vĩnh viễn và không ngừng bổ sung cập nhật thêm những kỹ năng mới về vi điều khiển.

vào một mạch vi điều khiển, giống hệt như một hệ thống máy tính lúc nào đòi hỏi cũng phải tất cả hai thành phần đó là phần cứng và phần mềm. Phần mềm hay có cách gọi khác là các chương trình do tín đồ lập trình soạn thảo ra và được hấp thụ vào những chip của vi mạch điều khiển, yếu đuối tố nhỏ người luôn luôn là yếu tố chính quyết định sự thành công xuất sắc hay thảm bại của một cỗ vi điều khiển.

Việc tìm hiểu về vi tinh chỉnh là điều nhưng mà học sinh, sinh viên ngành điện – năng lượng điện tử phải hết sức quan tâm, bởi đó chính là nhu cầu cần thiết và thúc bách của buôn bản hội hiện nay. Xuất phát điểm từ thực tiễn đó bọn chúng em đã đến quyết định kiến thiết và kiến tạo Hệ thống phía dẫn giao thông dùng vi cách xử trí 89C51, đây được xem như một bước đi nhỏ tuổi đầu tiên của bọn chúng em khi ước ao xâm nhập vào nghành vi điều khiển và tinh chỉnh rộng lớn.

MỤC LỤC

Trang

PHẦN 1: NHẬN XÉT CỦA GIÁO VIÊN 3

I. NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 4

II. NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN 5

PHẦN 2: LÝ THUYẾT 6

A.KHẢO SÁT VI ĐIỀU KHIỂN 89C51 7

GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (89C51) 7 KHẢO SÁT SƠ ĐỒ CHÂN 89C51, CHỨC NĂNG TỪNG CHÂN 10CẤU TRÚC BÊN vào VI ĐIỀU KHIỂN 13HOẠT ĐỘNG TIMER CỦA 89C51 27

B.GIỚI THIỆU CÁC LINH KIỆN KHÁC trong MẠCH 37

IC 8255A 37 RAM 6264 44IC 74HC373 46IC 74HC138 48IC 74LS247 50

PHẦN 3 : NGUYÊN LÝ HOẠT ĐỘNG, THIẾT KẾ,

THI CÔNG MẠCH 51

MẠCH HIỂN THỊ 52MẠCH GIAO THÔNG 57MẠCH NGUỒN 59MẠCH RESET 59

PHẦN 4 : PHẦM MỀM

íKết luận 119

íTài liệu tham khảo 120

í
Sơ đồ nguyên lý mạch hướng dẫn giao thông 121

KHẢO SÁT VI ĐIỀU KHIển 89C51

I. GIỚI THIỆU CẤU TRÚC PHẦN CỨNG HỌ MCS-51 (89C51):

1. Ra mắt họ MCS-51:

MCS-51 là họ IC vi điều khiển và tinh chỉnh do hãng Intel sản xuất. Những IC vượt trội cho chúng ta là 8051 và 8031. Các thành phầm MCS-51 tương thích cho những vận dụng điều khiển. Câu hỏi xử lý trên Byte và các toán số học ở kết cấu dữ liệu nhỏ dại được tiến hành bằng nhiều cơ chế truy xuất tài liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện nghi của hầu như lệnh số học 8 Bit bao gồm cả lệnh nhân với lệnh chia. Nó cung cấp những hổ trợ không ngừng mở rộng trên Chip sử dụng cho những trở nên một Bit như là kiểu dữ liệu đơn nhất cho phép quản lý và đánh giá Bit thẳng trong tinh chỉnh và điều khiển và những hệ thống logic yên cầu xử lý luận lý.

89C51 là 1 vi tinh chỉnh và điều khiển 8 Bit, chế tạo theo công nghệ CMOS unique cao, năng suất thấp cùng với 4 KB EPROM (Flash Programmable and erasable read only memory). Trang bị này được chế tạo bằng cách sử dụng bộ lưu trữ không bốc hơi mật độ cao của ATMEL và tương hợp với chuẩn chỉnh công nghiệp MCS-51 về tập lệnh và những chân ra. EPROM ON-CHIP đến phép bộ nhớ lưu trữ lập trình được xây dựng trong khối hệ thống hoặc do một thiết kế viên bình thường. Bằng cách kết hợp một CPU 8 Bit với cùng 1 PEROM bên trên một chip đơn, ATMEL AT89C51 là 1 trong vi điều khiển và tinh chỉnh mạnh (có hiệu suất lớn) cơ mà nó cung ấp một sự năng động cao và chiến thuật về giá cả đối với tương đối nhiều ứng dụng vi điều khiển.

AT89C51 cung cấp những đặc tính chuẩn chỉnh như sau: 4 KB bộ nhớ lưu trữ chỉ đọc hoàn toàn có thể xóa cùng lập trình nhanh (EPROM), 128 Byte RAM, 32 mặt đường I/O, 2 TIMER/COUNTER 16 Bit, 5 vectơ ngắt có kết cấu 2 mức ngắt, một Port tiếp nối bán tuy vậy công, 1 mạch giao động tạo xung Clock cùng bộ xê dịch ON-CHIP. Thêm vào đó, AT89C51 có phong cách thiết kế với xúc tích và ngắn gọn tĩnh cho vận động đến mức không tần số và cung ứng hai phần mềm hoàn toàn có thể lựa lựa chọn những chính sách tiết kiệm công suất, cơ chế chờ (IDLE MODE) vẫn dừng CPU trong khi vẫn có thể chấp nhận được RAM, timer/counter, port tiếp liền và hệ thống ngắt liên tục hoạt động. Cơ chế giảm hiệu suất sẽ lưu câu chữ RAM tuy thế sẽ treo bộ giao động làm mất khả năng hoạt động của tất cả những công dụng khác cho tới khi Reset hệ thống.

Các đặc điểm của 89C51 được cầm tắt như sau:

4 KB bộ lưu trữ có thể xây dựng lại nhanh, có khả năng tới 1000 chu kỳ ghi xoá.Tần số vận động từ: 0Hz cho 24 MHz.3 nút khóa bộ lưu trữ lập trình.2 bộ Timer/counter 16 Bit.128 Byte RAM nội.4 Port xuất /nhập I/O 8 bit.Giao tiếp tục tiếp.64 KB vùng ghi nhớ mã ngoài64 KB vùng nhớ dữ liệu ngoại.Xử lý Boolean (hoạt động trên bit đơn).210 vị trí nhớ có thể định vị bit.4 ms cho hoạt động nhân hoặc chia.

2.Sơ trang bị khối của AT89C51 được trình diễn ở hình sau:

Hình A.I.1.Sơ vật dụng khối của 89C51

II. KHẢO SÁT SƠ ĐỒ CHÂN 89C51, CHỨC NĂNG TỪNG CHÂN:

1.Sơ vật chân 89C51:

Hình A.II.1. Sơ đồ gia dụng chân IC 89C51

2.Chức năng những chân của 89C51 :

- 89C51 có tất cả 40 chân có tính năng như các đường xuất nhập. Trong đó có 24 chân có tác dụng kép (có nghĩa một bàn chân có 2 chức năng), mỗi đường gồm thể hoạt động như con đường xuất nhập hay như đường tinh chỉnh và điều khiển hoặc là thành phần của các bus dữ liệu và bus địa chỉ.

a.Các Port:

r Port 0:

Port 0 là port tất cả 2 chức năng ở các chân 32 – 39 của 8951. Vào các xây đắp cỡ nhỏ tuổi không dùng bộ nhớ lưu trữ mở rộng nó có tính năng như những đường I/O. Đối với các thi công cỡ khủng có bộ nhớ mở rộng, nó được phối hợp giữa bus địa chỉ và bus dữ liệu.

r Port 1:

- Port 1 là port I/O trên các chân 1-8. Những chân được ký hiệu P1.0, P1.1, P1.2, … gồm thề dùng cho tiếp xúc với những thiết bị kế bên nếu cần. Port 1 ko có công dụng khác, vì chưng vậy bọn chúng chỉ được dùng cho giao tiếp với các thiết bị mặt ngoài.

r Port 2:

- Port 2 là một trong port có tính năng kép trên các chân 21- 28 được dùng như những đường xuất nhập hay là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.

r Port 3:

- Port 3 là port có chức năng kép trên những chân 10-17. Các chân của port này có tương đối nhiều chức năng, những công dụng chuyển đổi có liên hệ với các đặc tính đặc trưng của 8951 như ngơi nghỉ bảng sau:

Bit

Tên

tính năng chuyển đổi

P3.0

RXT

Ngõ vào dữ liệu nối tiếp.

P3.1

TXD

Ngõ xuất dữ liệu nối tiếp.

Xem thêm: Danh mục sản phẩm big c app, hướng dẫn đặt hàng qua hotline

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

INT0

INT1

T0

T1

WR

RD

Ngõ vào ngắt cứng sản phẩm 0.

Ngõ vào ngắt cứng lắp thêm 1.

Ngõ vào của
TIMER/COUNTER máy 0.

Ngõ vào của
TIMER/COUNTER sản phẩm 1.

Tín hiệu ghi dữ liệu lên bộ lưu trữ ngoài.

Tín hiệu đọc bộ lưu trữ dữ liệu ngoài.

b. Các ngõ biểu đạt điều khiển:

r Ngõ bộc lộ PSEN (Program store enable):

- PSEN là tín hiệu ngõ ra làm việc chân 29 tất cả tác dụng chất nhận được đọc bộ lưu trữ chương trình không ngừng mở rộng thường được kể đến chân 0E (output enable) của Eprom chất nhận được đọc các byte mã lệnh.

- PSEN ở mức thấp trong thời gian Microcontroller 89C51 mang lệnh. Những mã lệnh của công tác được đọc từ Eprom qua bus dữ liệu và được chốt vào thanh ghi lệnh bên phía trong 89C51 để giải mã lệnh. Khi 89C51 thi hành công tác trong ROM nội PSEN sẽ ở mức logic 1.

r Ngõ tín hiệu điều khiển và tinh chỉnh ALE (Address Latch Enable):

- khi 89C51 truy xuất bộ lưu trữ bên ngoài, port 0 có công dụng là bus địa chỉ cửa hàng và bus dữ liệu do đó phải bóc các đường dữ liệu và địa chỉ. Biểu đạt ra ALE sinh hoạt chân sản phẩm 30 cần sử dụng làm tín hiệu tinh chỉnh để giải đa hợp những đường địa chỉ cửa hàng và dữ liệu khi liên kết chúng cùng với IC chốt.

- biểu thị ra sinh hoạt chân ALE là 1 xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ cửa hàng thấp nên chốt showroom hoàn toàn trường đoản cú động.

các xung bộc lộ ALE có tốc độ bằng 1/6 lần tần số giao động trên chip và hoàn toàn có thể được cần sử dụng làm biểu lộ clock cho các phần không giống của hệ thống. Chân ALE được sử dụng làm ngõ vào xung lập trình cho Eprom vào 8951.

r Ngõ biểu đạt EA(External Access) :

- biểu thị vào EA sinh hoạt chân 31 hay được mắc lên mức 1 hoặc là tầm 0. Nếu ở tầm mức 1, 89C51 thi hành chương trình từ ROM nội trong khoảng add thấp 8 Kbyte. Nếu ở tại mức 0, 89C51 đã thi hành công tác từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp cho nguồn 21V khi lập trình cho Eprom trong 89C51.

r Ngõ bộc lộ RST (Reset):

-Ngõ vào RST sinh hoạt chân 9 là ngõ vào Reset của 89C51. Khi ngõ vào biểu hiện này đưa lên rất cao ít nhất là 2 chu kỳ máy, các thanh ghi phía bên trong được nạp phần đông giá trị thích hợp để khởi đụng hệ thống. Khi cấp cho điện mạch tự động Reset.

r những ngõ vào bộ giao động X1,X2:

-Bộ xấp xỉ được được tích hợp bên trong 89C51, khi sử dụng 89C51 người thiết kế chỉ cần kết nối thêm thạch anh và những tụ như mẫu vẽ trong sơ đồ. Tần số thạch anh thường áp dụng cho 8951 là 12Mhz.

Tình hình là em có 10 con led cần tinh chỉnh như sau:Cấp nguồn thì led sáng sủa từ 01 mang lại 10, (sáng thứ hạng hào quang), rồi tắt đi tự 10 về 01, cung giao diện như vậy.Rồi 10 led sáng luôn cung một lúc.Ngắt nguồn, nhảy lại thì cũng chạy như vậy.Em dung 89C2051. Ví như được thi cho em xin tệp tin đuôi.hex luôn. Em đang làm cho phần cứng cần ko có thời hạn nhìu.Thanks những đại ca nhìu...

Bạn đã xem: lập trình vi điều khiển 89c51


*





Tình hình là em tất cả 10 nhỏ led cần tinh chỉnh và điều khiển như sau:Cấp mối cung cấp thì led sáng từ 01 đến 10, (sáng hình dáng hào quang), rồi tắt đi từ 10 về 01, cung hình trạng như vậy.Rồi 10 led sáng luôn cung một lúc.Ngắt nguồn, nhảy lại thì cũng chạy như vậy.Em dung 89C2051. Ví như được thi đến em xin file đuôi.hex luôn. Em đang làm cho phần cứng đề xuất ko có thời hạn nhìu.Thanks những đại ca nhìu...Đến chịu bạn hữu này!Đồng chí xin hẳn file
*.hex mà không gửi hình hay bộc lộ về hartware thì mọi fan cho code về lỡ nó chạy loàn thì biết sửa nạm nào?
Day la lan dau em thâm nhập nen bé thieu sot. Em se duoc phan cung mo phong bang proteus len mang lại cac dai ca chi bao.thong cam
Tình hình là em bao gồm 10 nhỏ led cần điều khiển như sau:Cấp nguồn thì led sáng từ 01 đến 10, (sáng loại hào quang), rồi tắt đi tự 10 về 01, cung hình dáng như vậy.Rồi 10 led sáng luôn luôn cung một lúc.Ngắt nguồn, bật lại thì cũng chạy như vậy.Em dung 89C2051. Ví như được thi mang đến em xin tệp tin đuôi.hex luôn. Em đang làm phần cứng nên ko có thời hạn nhìu.Thanks các đại ca nhìu...cái này củng khá solo giản. Bắt đầu lần đầu làm mấy đặc điểm này bạn không nên vội làm cho phần cứng cố định trên boar đồng trước mà bắt buộc đi dây trên boar lổ bao gồm sẳn màu trắng đó để kiểm tra thử trước khi đưa lên mạch trên boar đồng. Còn về chương trình này thì cơ bản. Bạn cứ post hartware lên đi mọi bạn sẻ giúp.Day la lan dau em tham gia nen con thieu sot. Em se duoc phan cung mo phong bang proteus len cho cac dẻo ca đưa ra bao.thong cam
Em mô phỏng bẳng proteus
Cho em code .ASM cũng được, để em tò mò và hoc hỏi thêm45697; Code: Viet mot cach co ban nhat nhu the nay.;org0h; Dia đưa ra bat dau lúc cap nguon (PC = 0)main:movp1, #0movp3, #0;------------------------------------------------------; thanh lịch tu Led 1 den Led 10;------------------------------------------------------setbp1.0; lịch sự LED 1calldelay_250ms;setbp1.1; sang trọng LED 2calldelay_250ms;setbp1.2; sang LED 3calldelay_250ms;setbp1.3; thanh lịch LED 4calldelay_250ms;setbp1.4; thanh lịch LED 5calldelay_250ms;setbp1.5; sang trọng LED 6calldelay_250ms;setbp1.6; sang LED 7calldelay_250ms;setbp1.7; sang trọng LED 8calldelay_250ms;setbp3.0; quý phái LED 9calldelay_250ms;setbp3.1; quý phái LED 10calldelay_250ms;calldelay_250mscalldelay_250ms;------------------------------------------------------; Tat tu Led 10 ve Led 1;------------------------------------------------------clrp3.1; Tat LED 10calldelay_250ms;clrp3.0; Tat LED 9calldelay_250ms;clrp1.7; Tat LED 8calldelay_250ms;clrp1.6; Tat LED 7calldelay_250ms;clrp1.5; Tat LED 6calldelay_250ms;clrp1.4; Tat LED 5calldelay_250ms;clrp1.3; Tat LED 4calldelay_250ms;clrp1.2; Tat LED 3calldelay_250ms;clrp1.1; Tat LED 2calldelay_250ms;clrp1.0; Tat LED 1calldelay_250ms;calldelay_250mscalldelay_250ms;------------------------------------------------------; sang tat ca 10 Led;------------------------------------------------------movp1, #0ffhmovp3, #00000011bcalldelay_250mscalldelay_250mscalldelay_250mscalldelay_250msljmpmain; Lap lai tu dau;------------------------------------------------------delay_250msmovr7, #250movr6, #2movr5, #248djnzr5, $djnzr6, $-4djnzr7, $-8ret;------------------------------------------------------end; Ket thuc chuong trinh

Leave a Reply

Your email address will not be published. Required fields are marked *

x

Welcome Back!

Login to your account below

Retrieve your password

Please enter your username or email address to reset your password.