Cách lập trình đèn led

     

Lập trình lịch trình led sáng lần lượt

Phần cứng: 8 led nối cùng với Port 1, được định vị trí như sau: led 1 nối với P1.0, lần lượt cho đến led 8 (nối cùng với P1.7). Biết led sáng khi tín hiệu xuất ở những chân Port 1 ở quý giá 1. Viết công tác để các led nối với Port 1 sáng theo lần lượt từng led tự led 1 đến led 8. Các quy trình trên được lặp lại không ngừng.

Minh hoạ:

*

 

phương pháp 1: Cách này đơn giản là làm cho những led sáng bằng cách thiết đặt những giá trị tương thích cho những bit của Port để làm led sáng sủa theo từng trạng thái, biện pháp này đơn giản và dễ dàng nhưng phải viết dài cùng tốn dung lượng bộ nhớ lưu trữ Rom.

Bạn đang xem: Cách lập trình đèn led

Chương trình

;***************************************;*****///--- LED lịch sự LAN LUOT -CACH DON GIAN ---\\************ ;**--------------------------------------- ;**////___ led thanh lịch lan luot tu led 1 den led 8-P1______\\\\\\ ;**///___ sang trọng o muc 1 va tat o muc 0______________\\\\\\ ;**////____ lap di lap lai khong gioi han_____\\\ ;** \\\\\\------- nap gia trị đến tung trang thai --////////// ;*******************************

 

Cách2: Để led sáng lần lượt, cần khiến cho tín hiệu xuất ra cực hiếm 1 một khoảng thời hạn để hoàn toàn có thể nhận biết được. Đầu tiên mang đến P1 tắt, tiếp nối làm đến bit A.0 lên 1, thực hiện lệnh luân chuyển trái dữ liệu trên thanh Ram A, mỗi lần xoay quý hiếm 1 sẽ đưa lần lượt qua A.1 - A.2 - A.3 -A.4 - A.5 -A.6 - A.7 - A.0, những lần xoay xuất dấu hiệu ra P1 đang thấy led sáng theo lần lượt từ led 1 cho led 8.

*

Chương trình:

Giải thích: ORG 000H  là lệnh chỉ dẫn: công tác này được giữ vào ROM bước đầu từ địa chỉ 000H.  lúc mới bắt đầu chương trình, Mov P1,#0 làm tất cả các led rất nhiều tắt, LCall Delay làm cho thời gian tắt đủ để mắt tín đồ nhận ra. Mov A,#00000001B khiến cho bit A.0 của thanh ghi A được set lên 1, những bit sót lại ở quý hiếm 0. tiếp theo trong công tác là nhãn Xuat: địa chỉ trở về, bên trên lưu thứ giải thuật là vấn đề mũi tên trở về. Mov P1,A xuất biểu đạt ra P1, bây giờ led 1 sáng sủa lên. tiếp theo sau là lệnh gọi chương trình bé LCall Delay. Câu lệnh RL A làm trạng thái những bit dịch sang trọng trái 1 bit, trước đó chỉ có A.0 ở quý hiếm 1, sau câu lệnh A.1 có giá trị 1, còn bit A.0 hiện nay mang cực hiếm 0 vày bit A.7 có mức giá trị 0 chuyển sang. Sjmp Xuat công tác nhảy đến đoạn công tác được lưu lại bằng nhãn Xuat, đề xuất nhớ rằng chương lệnh gọi Sjmp chỉ nhảy đầm được mang lại vị trí bí quyết lệnh gọi không thật 128 byte, nếu vượt qua số lượng giới hạn này lịch trình dịch đang báo lỗi, lúc ấy cần nỗ lực Sjmp bởi Ljmp bởi Ljmp có thể nhảy đến vị trí bất kể trên ROM. hôm nay chương trình bước đầu từ nhãn Xuat: Sau nhãn Xuat: là câu lệnh Mov P1,A biểu đạt được xuất ra P1, từ bây giờ P1.1 lên quý hiếm 1, led máy hai sáng, những led còn lại không sáng. Câu lệnh RL A có tác dụng trạng thái các bit dịch lịch sự trái 1 bit: A.2 lên 1, những bit khác sở hữu giá trị 0. Các quá trình trên được lặp lại liên tục (với câu lệnh Sjmp Xuat cùng nhãn Xuat: ). Kết quả cuối cùng như bên trên hình minh họa phía trên.

Xem thêm: Coi Đá Banh Trực Tiếp Bóng Đá, Kênh Trực Tiếp Bóng Đá Hôm Nay (Euro, V

 

Bài 6:

Lập trình vi tinh chỉnh và điều khiển cho 32 LED sáng lần lượt

 Phần cứng: 32 led nối cùng với Port 0,1,2,3, được xác định trí như sau: led 1 nối với P0.0, lần lượt cho đến led 32 (nối với P3.7). Biết led sáng khi tín hiệu xuất ở cực hiếm 1.Viết công tác để những led nối với Port 0,1,2,3 sáng theo thứ tự từng led từ led 1 đến led 32. Các quy trình được tái diễn không giới hạn.

 

Minh hoạ:

*

Cách 1:  Cách này cũng tương tự cách một trong những bài 5, làm cho các led sáng bằng phương pháp thiết đặt những giá trị phù hợp cho những Port để gia công led sáng theo từng trạng thái, biện pháp này đơn giản nhưng yêu cầu viết dài và tốn dung lượng bộ nhớ lưu trữ Rom.

Câu lệnh cuối quay trở lại đầu yêu cầu dùng Ljmp Xuat  chứ không thực hiện Sjmp vì khoảng cách từ địa chỉ chương trình bắt đầu đến câu lệnh gọi trở về mập 128byte.

 

Cách 2: phối kết hợp các lệnh xoay và dịch chuyển dữ liệu để lịch trình viết gọn nhẹ hơn.

Phân tích: tại mỗi thời điểm chỉ có 1 led sáng, vì đó hoàn toàn có thể sử dụng lệnh luân chuyển trái trạng thái những bit của những Port, với một bit nào đó được đặt lên trên 1, luân chuyển bit này theo thứ tự qua P0,P1,P2,P3 vẫn đạt kết quả. Vấn đề đặt ra là làm thế nào để xoay 32 bit của P0,P1,P2,P3 trong lúc đó chỉ có thanh ghi A triển khai được lệnh xoay. Ko thể tiến hành xoay 32 bit của 4 Port bằng một lệnh tốt nhất mà đề nghị trải trải qua nhiều bước. Để luân phiên trạng thái các bit trong một ô nhớ bất kể của vi điều khiển, thứ nhất chuyển cực hiếm của ô nhớ kia lên thanh ghi A, rồi cần sử dụng lệnh luân chuyển thanh ghi A, tiếp đến chuyển kết quả về lại ô nhớ nên xoay,kết trái ô nhớ đã có được xoay. Hiện thời có thể qui ước nhiều từ "xoay ô nhớ" ráng cho công việc vừa nêu.  Để luân chuyển 32 bit (trong bài xích này là P0,P1,P2,P3), trước nhất xoay trái ô nhớ đầu tiên (P0) cùng rất cờ C (giá trị thứ nhất của cờ C được được để trước tùy từng trường hợp cụ thể hoặc vày chương trình thực hiện), sau khoản thời gian xoay ô nhớ trước tiên với cờ C, các trạng thái của những bit vào ô ghi nhớ đó chuyển hẳn qua một bit, quý giá của cờ C chuyển vào bit 0, bit 7 của ô nhớ đó chuyển vào cờ ghi nhớ C.  Xoay ô nhớ sản phẩm hai cùng với cờ ghi nhớ C, quý hiếm của C trước đó đưa vào bit 0 của ô nhớ máy hai (mà quý giá này trước sẽ là của bit 7 ô nhớ vật dụng nhất), giá trị của bit 7 trong ô nhớ thiết bị hai đưa vào cờ lưu giữ C. Thường xuyên xoay ô nhớ vật dụng 3 và thứ 4 cùng với cờ lưu giữ C. Hiệu quả cuối thuộc trạng thái của 32 bit được dịch sang trái 1 bit, bit 0 của ô nhớ đầu tiên là quý giá của C trước đó và quý giá của cờ nhớ C lúc này là của bit 7 của ô nhớ sản phẩm công nghệ 4 chuyển sang.

Giải thuật:

*

Chương trình: