Bài tập ứng dụng vi điều khiển PIC Bài tập ứng dụng vi điều khiển PIC 03/04/2009 Thực hành với led 7 đoạn Quét 8 led 7 đoạn Vị trí led Số hiển thị LED 1 0 LED 2 1 LED 3 2 LED 4 3 LED 5 4 LED 6 5 LED 7[.]
Bài tập ứng dụng vi điều khiển PIC 03/04/2009 Thực hành với led đoạn: Quét led đoạn Vị trí led Số hiển thị LED LED LED LED LED LED LED LED đồ phần cứng với nguyên lí phần giao tiếp với led đoạn Xem sơ đồ nguyên lí Sơ LỆNH BỔ SUNG: · Câu lệnh dẫn: DB data1,data2,data3 Câu lệnh thực lưu giá trị data1,data2 vào nhớ ROM Vi điều khiển, khơng nằm chương trình cần thực · · data1,data2 thường dãy số có mối liên hệ với Trước lưu phải địa ROM cần lưu dẫn ORG Dữ liệu data1 lưu vào vị trí đầu dẫn ORG, liệu lưu vào địa ROM Nếu địa lưu trùng với địa lưu chương trình chính, trình dịch báo lỗi cho người lập trình · Ví dụ: ORG 700H DB 38H,50H,60H,42H Sau nạp chương trình vào ROM: giá trị 38H lưu vào địa 700H, giá trị 50H lưu vào địa 701H, giá trị 60H lưu vào địa 702H, giá trị 42H lưu vào địa 703H, · Để lấy liệu ROM thực chương trình, sử dụng lệnh MovC A,@A+DPTR · Ví dụ: ; ORG 000h ; mov dptr,#700h ; mov A,#2 ; mov A,@A+dptr ; mov 20h,A ; mov A,#3 ; mov A,@A+dptr ; mov 21h,A ; ORG 700H ; DB 38H,50H,60H,42H ; 10 end ; Giải thích ví dụ: xét câu lệnh ; và ; 10 trước ; : câu lệnh phía dẫn lưu địa 700h ROM ; 10 : giá trị 38H,50H,60H,42H lưu vào ô nhớ có địa 700h,701h,702h,703h ; : câu lệnh phía dẫn lưu địa 000h ROM ; : lưu giá trị 700h vào dptr(nhắc lại: dptr ô nhớ 16 bit kết hợp từ ô nhớ DPH DPL) ; : lưu giá trị vào ghi A ; : lấy giá trị ô nhớ ROM có địa giá trị A+dptr = 2h+700h=702h; mà ô nhớ 702h ROM mang giá trị 60H, giá trị 60h lưu lại vào ghi A ; : A phải sử dụng cho việc khác, lưu giá trị vừa thu vào nhớ đó, trường hợp ô nhớ 20h dùng để lưu lại giá trị ; : lưu giá trị vào ghi A ; : giá trị nhớ ROM có địa giá trị A+dptr = 3h+700h=703h; mà ô nhớ 703h ROM mang giá trị 42H, giá trị 42h lưu lại vào ghi A ; : A phải sử dụng cho việc khác, lưu giá trị vừa thu vào ô nhớ 21h Kết cuối cùng: nhớ (trên RAM) 20h có giá trị 60h 21h có giá trị 42h Bài 1: Viết chương trình để thị bảng sau: Vị trí led Số hiển thị LED LED LED LED LED LED LED LED Cách 1: truyền mã hiển thị led đoạn Port điều khiển tín hiệu, on/OFF led đoạn để hiển thị số Trong chương trình phía có câu lệnh OFF để chống lem, khơng có câu lệnh này, led đoạn hiển thị số với tín hiệu điều khiển mã led đoạn, chuyển sang mã hiển thị led đoạn khác để hiển thị led đoạn kế tiếp, lúc led hiển thị chưa bị OFF nên hiển thị số cần hiển thị led đoạn Vì vậy, hiển thị nhìn thấy led đoạn hiển thị mờ mờ số led đoạn kế nó, người ta gọi tượng led bị "lem" Do phải OFF led hiển thị trước thay đổi mã hiển thị led đoạn ;************************************************************************************************* ;**************///// -HIEN THI LED DOAN -\\\\\\ **************************************** ;** -;**//////////////// _dieu khien hien thi tu P0 _\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;**/////////////// _ dieu khien on/OFF P1 \\\\\\\\\\\\\\\\\\\\\\\\\ ;**////////////// on o mưc \\\\\\\\\\\\\\\\\\\\\ ;**>> on cho LED Lcall Delay7 ;+++>>> goi chuong trinh Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#0F9H ;+++>>> ma so Mov P1,#11111101B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#0B0H ;+++>>> ma so Mov P1,#11110111B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#99H ;+++>>> ma so Mov P1,#11101111B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#092H ;+++>>> ma so Mov P1,#11011111B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#0A4H ;+++>>> ma so Mov P1,#11111011B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#082H ;+++>>> ma so Mov P1,#10111111B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem Mov P0,#0F8H ;+++>>> ma so Mov P1,#01111111B ;===>>> on cho LED Lcall Delay7 Mov P1,#11111111B ;===>>> OFF tat ca de chong lem SJMP Tudau ;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> delay led doan >>>>>>>>>>>>>>>> delay led doan