Tham khảo tài liệu 'tổng quan về vi điều khiển, chương 16', kỹ thuật - công nghệ, điện - điện tử phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
AMBIENT/
Chủ đề:
Nội dung Text: Tổng quan về vi điều khiển, chương 16
- Chương 16: THỰC HÀNH VỚI LED
ĐƠN
4.1.Một số qui định:
a. Chú thích: dùng dấu chấm phẩy ";"để bắt đầu các đoạn chú
thích, các chú thích chỉ có tác dụng trên dòng chứa nó và được đặt
tuỳ ý tại bất kì vị trí nào trên dòng.
Chú thích giúp chương trình thể hiện rõ ràng trong sáng
hơn, người lập trình dễ dàng hiểu và chỉnh sửa chương trình được
viết ra, các đoạn chú thích phù hợp sẽ giúp cho việc tìm kiếm các
đoạn chương trình dễ dàng hơn.
Sau đây là ví dụ cho phần chú thích bắt đầu một chương
trình :
;*****************************************************************
;**************/////--- TÊN CHƯƠNG TRÌNH ---\\\\\\ ********************
;**-----------------------------------------------------------------------------------------------
;**////////////////___ Các yêu cầu của bài toán_________________\\\\\\\\\\\\\\\\\\\\\\\\\
;**///////////////___ ghi chú trên các dòng này__________________\\\\\\\\\\\\\\\\\\\\\\\
;**//////////////____ Kết cấu phần cứng và các linh kiện kèm theo___\\\\\\\\\\\\\\\\\\\\\
;**
- Câu lệnh 2
Câu lệnh 3 ;===>>>ghi chú cho câu lệnh 3
Câu lệnh cuối
;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
b.Thụt dòng, Chữ hoa- chữ thường
Khi soạn thảo chương trình để chương trình đễ đọc và dễ gỡ
lỗi có một số đề nghị sau:
Các nhãn được đặt cạnh lề trái, một số phần mềm soạn và
biên dịch không phân biệt chữ hoa chữ thường của nhãn, tuy
nhiên một số phần mềm khác lại phân biệt chữ hoa chữ
thường, vì vậy để thuận tiện về sau, tên nhãn không nên đặt
trùng nhau và thống nhất một kiểu viết nhãn duy nhất trong
chương trình. Ví dụ: không đặt 2 nhãn trong cùng một
chương trình như sau: "Doan1" và "doan1".
Các câu lệnh nên đặt lùi với lề trái một hoặc hai khoảng gõ
tab
Phần sau của câu lệnh cách phần đầu câu lệnh một hoặc hai
khoảng gõ tab (Phần trước và sau của câu lệnh bắt buộc phải
cách nhau ít nhất một khoảng trắng).
Ví dụ: Mov (gõ phím Tab) P1,#0FFH
Các chú thích nên cách sau câu lệnh một hoặc hai khoảng gõ
tab
Các câu lệnh trong chương trình không phân biệt chữ hoa và
chữ thường, do đó khi soạn thảo có thể dùng kiểu chữ sao cho phù
hợp và dễ nhận dạng
Ví dụ:
;**
- Mov A,35H ;===>>>> di chuyen du lieu tu 35H vao A
Mov B,20H ;===>>>> di chuyen du lieu tu 20H vao B
Xuat:
Mov P0,A ;===>>>> xuat du lieu tu A ra Port 0
Mov P1,B ;===>>>> xuat du lieu tu A ra Port 1
Cong:
Add A,#20H ;===>>>> cong A voi gia tri 20H
;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
c.Kết thúc chương trình.
Sau khi chương trình hoàn tất phải kết thúc bằng câu lệnh
END .Các câu lệnh này báo cho trình biên dịch biết phần kết thúc
của chương trình, trình biên dịch bỏ qua tất cả các câu lệnh sau
lệnh END.
d. Qui định về số
Xem qui định này trong bài 2: một số qui ước khi viết số
trong chương trì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ụ:
-Thanh ghi A gồm 8 bit: A.7 A.6 A.5 A.4 A.3 A.2 A.1
A.0 với bit nhỏ 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 ---\\\\\\ ****************************
;**-----------------------------------------------------------------------------------------------
;**////////////////___ 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____________________\\\\\\\\\\
;**
- Mov P0,#0FFH ;===>>>> lam cac chan Port 0 xuat ra mu
Mov P2,#11111111B ;===>>>> lam cac chan Port 2 xuat ra m
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
khi có khai báo này, chương trình sẽ được lưu từ ô
nhớ ROM có đị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 ---\\\\\\ ********************
;**-----------------------------------------------------------------------------------------------
;**////////////////___ 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____________________\\\\\\\\\\\\\\\\\\\
;**