BÀI 4: THỰC HÀNH VỚI LED ĐƠN 4.1.Một số qui định:
4.2 BÀI THỰC HÀNH:
Tên gọi cho các bit: mỗi ô nhớ đều có 8 bit, để thuận tiện cho quá trình hướng dẫn, mỗi bit trong một ô nhớ sẽ được đánh số từ 0 đến 7 sau tên gọi của ô nhớ đó và được ngăn cách bằng dấu chấm.
Ví dụ:
nhất là bit A0
-thanh ghi R1 gồm các bit R1.7 R1.6 R1.5 R1.4 R1.3 R1.2 R1.1 R1.0 Để bắt đầu bài thực hành, bạn nên xem lại phần kết nối vi điều khiển với led trong bài 1
Bài 1: Viết chương trình xuất tín hiệu ở Port 0 và Port 2 để 8 đèn led sáng với các led được kết nối với Port 0 và Port 2 như sơ đồ dưới
Phân tích: Ở sơ đồ kết nối phần cứng như hình trên, đèn led sáng khi tín hiệu
xuất ra ở mức 1(+5V). Như vậy cần viết chương trình để xuất mức logic 1 ra Port 0 và Port 2. Sau đây là chương trình
;*************************************************************************************************;**************/////--- 8 LED SANG ---\\\\\\ **************************************************** ;**************/////--- 8 LED SANG ---\\\\\\ **************************************************** ;**--- ;**////////////////___ lam 8 led o Port 0 va Port 1 sang_________________\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;**///////////////___ led sang khi tin hieu xuat o muc 1__________________\\\\\\\\\\\\\\\\\\\\\\\\\ ;**//////////////____ phan cung su dung dien tro treo____________________\\\\\\\\\\\\\\\\\\\\\ ;**<<<<<<<<<<<<<<<<<<<--->>>>>>>>>>>>>> ;***************************************************************************************************** ;************************************************************* *************************************** ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom Mov P0,#0FFH ;===>>>> lam cac chan Port 0 xuat ra muc 1 Mov P2,#11111111B ;===>>>> lam cac chan Port 2 xuat ra muc 1 End
+ Khai báo ORG : dùng để khai báo địa chỉ để bắt đầu lưu chương trình trên ROM
Ví dụ: ORG 0020H
địa chỉ 0020H trở đi. Trong chương trình không giới hạn số lượng khai báo ORG.
Khi bắt đầu chương trình, Vi điều khiển bắt đầu đọc mã lệnh từ vị trí đầu tiên của bộ nhớ ROM: 000H, sau mỗi lần thực hiện lệnh Vi điều khiển sẽ tìm đến để lấy lệnh ở vị trí ROM kế tiếp. Nếu có nhiều khai báo ORG, Vi điều khiển sẽ thực hiện các câu lệnh ở vị trí có địa chỉ thấp trước, nếu muốn chuyển sang thực hiện chương trình ở vị trí bất kì thì dùng các lệnh nhảy.
+ Hai câu lệnh Mov P0,#0FFH và Mov P2,#11111111B làm 8 bit của Port 1 và 8 bit của Port 2 lên mức 1, hai câu lệnh này truyền cùng một giá trị như nhau, giá trị này có thể viết bằng số hex (số thập lục phân-câu lệnh trên) hoặc bằng số nhị phân(câu lệnh dưới) đều được. Trong trường hợp này, ngõ ra quan tâm là giá trị của từng bit, do đó sử dụng số nhị phân sẽ thuận lợi hơn.
Bài 2: Cho các dãy đèn led có kết nối như trong sơ đồ dưới, các dãy led này được kết nối với Port 1 và Port 2. Viết chương trình để các led nối mỗi Port sáng xen kẽ: led 1,3,5,7 sáng; led 2,4,6,8 tắt, các led được đánh số như sau led 1 nối với Px.0, led 2 nối với Px.1, lần lượt với các led khác.
Phân tích: Ở sơ đồ kết nối phần cứng như hình trên, đèn led sáng khi tín hiệu ở ngõ ra ở mức 0(+0V). Như vậy cần viết chương trình để các bit P1.0, P1.2, P1.4, P1.6 và P2.0, P2.2, P2.4, P2.6 xuất tín hiệu ở mức 0 , các bit còn lại xuất ra mức 1. Sau đây là chương trình:
;*************************************************************************************************;**************/////--- 8 LED SANG XEN KE ---\\\\\\ **************************************** ;**************/////--- 8 LED SANG XEN KE ---\\\\\\ **************************************** ;**--- ;**////////////////___ lam 8 led noi Port 1 va Port 2_________________\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;**///////////////___ led sang khi tin hieu xuat o muc 0__________________\\\\\\\\\\\\\\\\\\\\\\\\\ ;**//////////////____ led sang xen ke o vi tri le____________________\\\\\\\\\\\\\\\\\\\\\
;**<<<<<<<<<<<<<<<<<<<--->>>>>>>>>>>>>> ;** \\\\\\\\\\\\--- can xuat voi gia tri tren 1 Port la: 01010101b ---//////////////// ;**\\\\\\\\\\\\\---Duoc viet gon thanh 55H ---//////////////// ;***************************************************************************************************** ;*****************************************************************************************************
ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom Mov P1,#55H ;===>>>> lam tin hieu xuat xen ke tren P1
Mov P2,#01010101B ;===>>>> lam tin hieu xuat xen ke tren P2 End