Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung
Chào Mừng bạn đến với diễn đàn của lớp 32CĐ Cơ - Điện Tử ĐHCN Việt-Hung

Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung

Sân chơi dành cho sinh viên giao lưu học tập
 
Trang ChínhPortalCalendarGalleryTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

  BÀI 4: THỰC HÀNH VỚI LED ĐƠN-P4

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Admin
vip
vip
avatar

Tổng số bài gửi : 366
vi phạm : 0
Join date : 15/04/2010
Age : 27
Đến từ : Bình Lục-Hà Nam

Bài gửiTiêu đề: BÀI 4: THỰC HÀNH VỚI LED ĐƠN-P4   Sat Dec 25, 2010 4:05 pm

Bài 9: " Sáng dần 8 led"
Phần cứng: 8 led nối với Port 0 được định vị trí như sau: led 1 nối với P0.0, lần lượt cho đến led 8 (nối với P0.7). Biết led sáng khi tín hiệu xuất ở mức 1.Viết chương trình để các led nối với Port 0 sáng dần từ led 1 đến led 8 sau đó tắt hết led và lặp lại. Các quá trình được lặp lại không giới hạn.
Minh hoạ:



Cách 1: Cách này đơn giản là làm cho các led sáng bằng cách thiết đặt các giá trị thích hợp cho các Port để làm led sáng theo từng trạng thái, cách này đơn giản nhưng cần viết dài và tốn dung lượng bộ nhớ Rom. Nếu cần thiết các bạn tự giải
Cách 2: Dùng lệnh xoay A với cờ C, mỗi lần xoay đều SetB C (C=1), sau mỗi lần xoay xuất kết quả ra P0 .Đặt giá trị ban đầu cho A là #00000000B, vì C luôn được set lên 1 nên sau lần xoay đầu tiên thanh ghi A có giá trị là: #00000001B, lần 2: #00000011B, lần3: #00000111B ....
Khi thanh ghi A đầy: #11111111B chương trình phải được khởi động lại với giá trị ban đầu của A là #00000000B. Để nhận biết được khi nào thanh ghi A đầy để khởi động lại các thông số, sau mỗi lần xoay kiểm tra cờ nhớ C. Vì sau mỗi lần xoay giá trị của cờ nhớ C do bit A.7 chuyển sang.

Chương trình:
;*************************************************************************************************
;**************/////--- SANG DAN 8 LED ---\\\ ****************************************
;**----------------------------------------------------------------------------------------------------------------------
;**////////////////___ Sang dan tu led 1 den led 8___________\\\\\\\\\\\\\
;**///////////////___ sang o muc 1 va tat o muc 0__________________\\\\\\\\\\\\
;**//////////////____ lap di lap lai khong gioi han____________________\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<----------------------------------------------------->>>>>>>>>>>>>>
;*****************************************************************************************************
;*****************************************************************************************************
ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom
Tudau:
Mov P0,#0 ;===>>>> lam 8 led noi P0 tat
X1: LCall Delay ;===>>>>goi chuong trinh con Delay
SetB C ;===>>>> lam cờ C len 1
Mov A,P0
RLC A ;===>>> xoay thanh ghi A
Mov P0,A ;===>>>> xuat ra led
JNC X1 ;===>>>> nhay ve nhan "X1" neu C=0
Sjmp Tudau ;===>>>> nhay ve thuc hien tu dau
;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> delay <<<<<<<<<<<<<<<<<<<<<<<<<<<<

Delay:
Mov R7,#0FFH
Kt2: Mov R6,#0FFH
Kt1: Djnz R6,Kt1
Djnz R7,Kt2
Ret
;_________________________________________________________________________________
End ;===>>>> ket thuc chuong trinh

Bài 10: Bài tập tự giải, mở rộng bài 9
Hãy phát triển chương trình của bài 9 cho 16 và 32 led.
Bài 11: Bài tập tự giải, mở rộng bài 9: "sáng tắt dần"
Hãy bổ sung vào các chương trình đã được viết trong bài 9 đoạn chương trình "tắt dần". Toàn bộ trạng thái sáng của led được minh họa trong hình dưới, sau đó hãy mở rộng chương trình này cho 16 và 32 led
Minh hoạ:




Bài 12: Bài tập tự giải: Bài này mang tên :" Sâu bò"
Phần cứng: 32 led nối với Port 0,1,2,3, được định vị 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), các led được xếp thẳng hàng với nhau. Biết led sáng khi tín hiệu xuất ở mức 1. Viết chương trình để led sáng theo minh hoạ sau đây.
Minh hoạ:

  • Dạng 1: "sâu bò" đơn giản


Chú ý:

  • Lúc nào cũng có 8 led được bật sáng
  • Các quá trình được lặp lại không giới hạn
  • Khi hoạt động, các led sáng tắt thành một vệt sáng có chiều dài bằng 8 led, di chuyển từ led 1 đến led 32. Vì vệt sáng của led di chuyển giống con sâu di chuyển nên bài này có tên là "Sâu bò", và gọi "sâu" thay cho vệt sáng.
  • Sau khi đã viết xong bài này, phát triển thêm để "sâu bò" như ở dạng 2 và dạng 3 trong minh họa ở các hình dưới.

Minh hoạ:

  • Dạng 2: "sâu bò tới"



  • Dạng 3: " sâu bò vòng"


Bài 13: Bài tập tự giải, bài này có tên:" Sâu lớn"
Dầu tiên. khi sâu còn nhỏ:vệt sáng led chạy với chiều dài là 1 led trong lần đầu tiên như trong bài 5 và bài 6, sau khi vệt sáng chạy đến led cuối cùng và trở về thực hiện ở lần kế tiếp, sâu lớn hơn và có độ dài là 2 led sáng, cứ thế sâu lớn dần. Sâu có một độ lớn chiều dài nhất định, chiều dài lớn của sâu do các bạn tự chọn, nhưng trước hết chọn sâu có độ lớn là 8 led, sau đó là 16 led. Sau khi sâu đã đạt độ lớn tối đa, các quá trình được bắt đầu lại từ đầu. Hãy viết chương trình với yêu cầu trên với 8 led, 16 led và 32 led.
Minh họa với 8 led:



Bạn có thể phát triển thêm để khi kết thúc như kiểu " sâu bò tới" hoặc "sâu bò vòng".
Về Đầu Trang Go down
Xem lý lịch thành viên http://loveanhthao.co.cc
 

BÀI 4: THỰC HÀNH VỚI LED ĐƠN-P4

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn lớp 32CĐ Cơ-Điện Tử ĐHCN Việt - Hung :: Cơ - Điện Tử :: VI ĐIỀU KHIỂN ỨNG DỤNG-
Chuyển đến 
Đăng NhậpNhanh
.:Đăngkí:. | .: Quên mật khẩu:.