Hợp ngữ MCS 51 GV: Trần Nhựt Khải Hoàn... Nhắc lại tên gọi các thanh ghi... Trạng thái các thanh ghi khi Reset... Cấu trúc chương trình Hợp ngữ MCS 51... Lệnh giả • Dùng hướng dẫn trình
Trang 1Hợp ngữ MCS 51
GV: Trần Nhựt Khải Hoàn
Trang 2Sơ đồ chân
Trang 3Nhắc lại tên gọi các thanh ghi
Trang 4Trạng thái các thanh ghi khi Reset
Trang 5Cấu trúc chương trình Hợp ngữ MCS 51
Trang 6Một số lưu ý
• Phần chú thích phải đặt sau dấu “;”
• Nhãn:
– Dùng cho các lệnh nhảy
– Phải viết liên tục, và kết thúc bằng dấu “:”
– Nhãn luôn bắt đầu bằng một ký tự
• Tên chương trình con (giống như nhãn):
– Phải viết liên tục, và kết thúc bằng dấu “:”
– Nhãn luôn bắt đầu bằng một ký tự
• Không phân biệt chữ hoa, thường
Trang 7Lệnh giả
• Dùng hướng dẫn trình biên dịch
• Dùng hổ trợ người lập trình
• Không được biên dịch sang mã máy
• Không phân biệt chữ hoa hay thường
Trang 8Một số lệnh giả thường sử dụng
• Org: dùng để đặt đoạn mã ở ví trí mong muốn
• DB (defined bytes): để dành một số ô nhớ trong vùng RAM,
ROM chương trình
• EQU (equal): dùng để đặt tên biến hoặc định nghĩa hằng số
• DATA: Tương tự như EQU, định nghĩa biến 8 bit
• BIT: Tương tự EQU, định nghĩa biến 1 bit
• Dseg, Cseg, Bseg: Định nghĩa vị trí đầu các phân đoạn Data,
Code và Bit
• DS: để dành một hoặc một số bytes trong vùng RAM
• AT: Xác định địa chỉ vùng nhớ cần đặt phân đoạn
Trang 9Các bước Soạn thảo chương trình hợp ngữ
Trang 10Bài tập
• Lập trình cho led D1 sáng D2 tắt trong 0.5s Sau đó, D1 tắt và D2 sáng trong 0,5s và lặp lại Giả sử đã có chương trình
delay500ms
Q1
1
D1
1 2MHz
VCC
33pF
220
8.2K
220
33pF
U7 AT 89C51
9 18
30 31
1 2 3 4 5 6 7 8
21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
39 38 37 36 35 34 33 32
RS T
XT AL2
ALE /PROG
EA /VP P
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P2.0/A 8 P2.1/A 9 P2.2/A 10 P2.3/A 11 P2.4/A 12 P2.5/A 13 P2.6/A 14 P2.7/A 15 P3.0/RXD P3.1/T XD P3.2/INTO P3.3/INT1 P3.4/T O P3.5/T 1 P3.6/WR P3.7/RD
P0.0/A D0 P0.1/A D1 P0.2/A D2 P0.3/A D3 P0.4/A D4 P0.5/A D5 P0.6/A D6 P0.7/A D7
D1
VCC
D2
Trang 11Bài tập
1 Thiết kế mạch gồm 24 led gắn vào 3 port
2 Viết chương trình:
1 Cho 1 led port 0 sáng chạy từ trái sang phải,
2 Sau đó 1 led của Port 2 sáng chạy từ phải sang trái,
3 Cuối cùng là 1 led của port 3 sáng chạy từ trái sang
phải
4 lặp lại 3 công việc trên vô hạn lần
Trang 12Lập trình có cấu trúc
• Phân phối vùng nhớ
• Vẽ lưu đồ
• Viết chương trình con
Trang 13Bài tập
• Vẽ mạch điện
• Lập trình có cấu trúc