Tải bản đầy đủ (.doc) (12 trang)

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN NGÔN NGỮ LẬP TRÌNH ASSEMBLY

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (145.92 KB, 12 trang )

Cơng Nghệ thơng tin có khả năng xóa bỏ hàng rào ngăn cách giữa người học và
người dạy trên toàn thế giới. Sức mạnh của môn học này đang thay đổi cơ hội tiếp cận
tri thức của chúng ta. Các phương pháp dạy và học sáng tạo giúp học sinh xác định
những kinh nghiệm trong lớp học và có nhiều kỳ vọng mới. Ngoài những kỹ năng cơ
bản họ cần phải thành thạo trong quan hệ hợp tác, giao tiếp và quản lý thông tin tất cả
các kỹ năng của thế kỷ 21 và những cơ hội tiếp cận với các công cụ phục vụ học tập sẽ
giúp chúng ta dễ dàng đạt được kỹ năng này. Môn học Ngôn ngữ lập trình dành cho hệ
Cao đẳng được đưa vào chương trình và được thiết kế như sau:

PHẦN 1
ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN
NGƠN NGỮ LẬP TRÌNH ASSEMBLY
1.
2.
3.
4.

Tên học phần:
NGƠN NGỮ LẬP TRÌNH ASSEMBLY
Số đơn vị học trình:
3 (45 tiết).
Trình độ:
Sinh viên năm thứ 2 hệ cao đẳng, ngành Tin học.
Phân bổ thời gian:
- Lý thuyết:
30 tiết.
- Thực hành:
15 tiết.
5. Điều kiện tiên quyết: Tin học đại cương, Kiến trúc máy tính
6. Mơ tả vắn tắt nội dung học phần:
Chương 1: Trang bị cho sinh viên có được các kiến thức về:


- Cú pháp của hợp ngữ
- Một vài lệnh cơ bản.
Chương 2: Trang bị cho sinh viên có được các kiến thức về:
- Cầu tạo tổng quan về vi điều khiển 8051
- Các thanh ghi chức năng đặc biệt, hoạt động ngắt và hoạt động định thời
Chương 3: Trang bị cho sinh viên có được các kiến thức về:
- Các kiểu định địa chỉ
Chương 4: Trang bị cho sinh viên có được các kiến thức về:
- Tập lệnh lập trình hợp ngữ


7. Nhiệm vụ của sinh viên:
- Dự lớp: Lên lớp nghe giảng và thảo luận.
- Bài tập & thực hành: Hoàn thành các bài tập và bài thực hành được giao.
- Thi, kiểm tra: Đạt kết quả các kỳ thi điều kiện và bài thi cuối kỳ.
8. Tài liệu học tập:
[1]. Giáo trình “Ngơn ngữ lập trình Assembly” của trường Đại học Điện lực.
9. Sách tham khảo:
[1]. Quách Tuấn Ngọc, Đỗ Tiến Dũng, Nguyễn Quang Khải, lập trình hợp ngữ,
NXB Giáo Dục, 1998
[2]. Tống Văn On, Hoàng Đức Hải, Họ vi điều khiển 8051. NXB Lao Động, 2001.
[3]. MCS® 51 Microcontroller Family User’S Manual, Intel,1994
10.Tiêu chuẩn đánh giá sinh viên:
- Thi cuối kỳ.
11.Thang điểm: thang điểm 10.
12.Mục tiêu của học phần:
Trang bị cho sinh viên có được các kiến thức về các vấn đề:
- Cấu trúc của một chương trình hợp ngữ
- Cầu tạo của vi điều khiển 8051
- Khái niêm về thanh ghi, các kiểu định địa chỉ

- Tập lệnh lập trình hợp ngữ cho 8051
- Viết hồn thiện chương trình hợp ngữ
13. Nội dung mơn học

NỘI DUNG
CHƯƠNG 1 GIỚI THIỆU TỔNG QUÁT
QUAN
1.1 Giới thiệu lập trình hợp ngữ Assembly

THỜI GIAN
Tổng
LT
TH
6

6
1

1.2 Trình dịch hợp ngữ

2

1.3 Khn dạng của chương trình hợp ngữ

1

1.4 Một lệnh cơ bản

2


CHƯƠNG 2 VI ĐIỀU KHIỂN 8051

12

KT

11

1


2.1 Cấu tạo phần cứng

3

2.2 Tổ chức bộ nhớ và các thanh ghi chức năng đặc biệt
2.3 Hoạt động định thời

3
3

2.4 Hoạt động ngắt

2

CHƯƠNG 3 CÁC KIỂU ĐỊNH ĐỊA CHỈ

6

3


3

21

12

4.1 Lệnh số học

7
1

4.2 Lệnh logic

1

3

4.3 Lệnh di chuyển dữ liệu

1

3

4.4 Lệnh xử lý bít

1

3


1

4.5 Lệnh rẽ nhánh

3
15

3

3.1 Định địa chỉ thanh ghi
3.2 Định địa chỉ trực tiếp
3.3 Định địa chỉ gián tiếp
3.4 Định địa chỉ tức thời
3.5 Định địa chỉ tương đối
CHƯƠNG 4 TẬP LỆNH

TỔNG SỐ

45

27

2

3
1


PHẦN 2
VIẾT KẾ HOACH MỘT BÀI DẠY MẪU

GIÁO ÁN SỐ
Ngày thực hiện

: 10 Số tiết : 01
Tổng số tiết đã giảng: 27
: 28 Tháng 10 Năm 2006

Tên bài học

: Lệnh rẽ nhánh

Mục đích

: Trang bị cho sinh viên kiến thức về các lệnh rẽ nhánh

Yêu cầu
dụng

: - Sinh viên phải nắm được cú pháp, hoạt động, cách sử
lệnh rẽ nhánh ận dụng vào các bài

tốn lập trình cụ thể.
I-ỔN ĐỊNH LỚP (1 phút)
Số học sinh vắng:...................Tên:.........................................................................
................................................................................................................................
……………………………………………………………………………………
Nội dung nhắc nhở:.................................................................................................
................................................................................................................................
................................................................................................................................
II-KIỂM TRA BÀI CŨ: Thời gian 3 phút, dự kiến học sinh kiểm tra:

Họ và tên
Điểm
Nội dung kiểm tra: Nhắc lại bài cũ
III-GIẢNG BÀI MỚI
Đồ dung dạy học: Phấn, bảng, giáo án, giáo trình, máy chiếu, máy tính
Nội dung, phương pháp:
TT
1

Nội dung giảng dạy
CHƯƠNG 4: TẬP LỆNH
4.5 Lệnh rẽ nhánh
4.5.1 Lệnh nhảy
a. Lệnh SJMP
Cú pháp
SJMP Label
Chức năng Nhảy ngắn

Thời gian
(Phút)

4

Phương pháp
thực hiện
Diễn giảng và
phát vấn


Chú ý Lệnh SJMP sử dụng kiểu định địa

chỉ tương đối
Ví dụ

2

b. Lệnh LTMP
Cú pháp

LJMP

4

Diễn giảng và
phát vấn

4

Diễn giảng và
phát vấn

4

Diễn giảng và
phát vấn

20

Diễn giảng và
phát vấn


Label

Chức năng Nhảy dài
Chú ý Lệnh SJMP sử dụng kiểu định địa
chỉ dài
Ví dụ
3

4.5.2 Lệnh nhảy có điều kiện
a. JNB
Cú pháp
Chức năng Nhảy nếu bít bằng khơng
Chú ý Lệnh JMP sử dụng kiểu định địa
chỉ tương đối
Ví dụ

4

b. DJNZ
Cú pháp

DJNZ byte, Label

Chức năng Nhảy nếu bít bằng khơng
Chú ý Lệnh DJNZ sử dụng kiểu định địa
chỉ tương đối
Ví dụ
5

c. Ví dụ tổng hợp

Viết chương trình tạo xung 1kHz trên
chân p1.2 sử dụng timer 1.


IV-TỔNG KẾT BÀI: Thời gian 3 phút
Nhắc lại cú pháp, hoạt động của các lệnh rẽ nhánh
V-CÂU HỎI VÀ BÀI TẬP: Thời gian 2 phút
1. Đọc hiểu, giáo trình và các tài liệu có liên quan đến bài học
2. Viết chương trình tạo sóng vng 400 Hz trên chân P1.2 và 100Hz trên chân P0.3 sử
dụng bộ định thời 1.
3. Đọc trước tài liệu về ……
VI-RÚT KINH NGHIỆM (Về nội dung, phương pháp, thời gian thực hiện bài
giảng).....................................................................................................................
...............................................................................................................................
................................................................................................................................
...............................................................................................................................
...............................................................................................................................
...............................................................................................................................

BÀI GIẢNG
CHƯƠNG 4: TẬP LỆNH
4.1 Lệnh số học
4.2 Lệnh logic
4.3 Lệnh di chuyển dữ liệu
4.4 Lệnh xử lý bít
4.5 Lệnh rẽ nhánh
Nhắc lại bài cũ:
Trong bài trước, chúng ta đã học về Các lệnh xử lý bít của 8051 như SETB, CLR,… vời
các lệnh xử lý bit này làm cho việc đặt chế độ hoạt động và điều khiển các thành phần
trên chíp như Timer, Port,.. thông qua các thanh ghi chức năng đặc biệt có định địa chỉ

bit trở nên thuận tiện và khơng gây ảnh hưởng đến các bít khác.
Ví dụ:
Thanh ghi TCON


TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Để xóa cở tràn và khơng cho phép timer hoạt động ta có thể sử dụng lệnh di chuyển dữ
liệu như
MOV TCON, #00000000B
Tuy nhiên nếu không xác định trước được các giá trị của các bit trên thanh ghi TCON
thì lệnh di chuyển dữ liệu sẽ làm ảnh hưởng đến các bit này.
Nếu dùng các lệnh xử lý bit như:
CLR TR1
CLR TF1
Sẽ tối ưu hơn.

Hôm nay chúng ta tiếp tục nghiên cứu về tập lệnh của 8051, các lệnh rẽ nhánh.
Vào bài mới
4.5 Lệnh rẽ nhánh
Lệnh rẽ nhánh, thực hiệnh việc điều khiển luồng chương trình theo các định hướng lập
trình. Lệnh rẽ nhánh trong tập lệnh của 8051 được chia thành 3 nhóm cơ bản sau:
- Lệnh nhảy
- Lệnh nhảy có điều kiện
- Lệnh gọi một thủ tục và trở về từ một thủ tục
4.5.1 Lệnh nhảy
Bao gồm các lệnh sau: SJMP, LJMP, ẠMP.
a. Lệnh SJMP
Cú pháp

SJMP Label
Trong đó:

- SJMP là mã gợi nhớ viết tắt của Short Jump
- Label là nhãn đặt trước lệnh dự định sẽ nhảy tới

Chức năng Nhảy ngắn, điểu khiển chương trình rẽ nhánh không điều kiện đến địa chỉ
được chỉ ra thông qua nhãn.
Chú ý Lệnh SJMP sử dụng kiểu định địa chỉ tương đối, do đó tầm nhẩy được giới hạn
là -128 byte đến 127 byte
Ví dụ

LOOP

MOV TH1,#12H



MOV TL1,#23H
SETB P1.0
…….
SJMP LOOP
b. Lệnh LJMP
Cú pháp

LJMP Label

Trong đó:

- LJMP là mã gợi nhớ viết tắt của Long Jump
- Label là nhãn đặt trước lệnh dự định sẽ nhảy tới

Chức năng Nhảy dài, điểu khiển chương trình rẽ nhánh khơng điều kiện đến địa chỉ
được chỉ ra thông qua nhãn.
Chú ý Lệnh SJMP sử dụng kiểu định địa chỉ dài, do đó tầm nhẩy được giới hạn là tồn
bộ khơng gian nhớ chương trình 64 Kbyte
Ví dụ

LOOP

MOV TH1,#12H
MOV TL1,#23H
SETB P1.0
…….
LJMP LOOP

4.5.2 Lệnh nhảy có điều kiện
Bao gồm các lệnh sau: JNB, DJNZ, JC, JNC, JB, JBC, CJNE, JZ.

a. JNB
Cú pháp

JNB bit, Label

Trong đó:

- JNB là mã gợi nhớ

- Label là nhãn đặt trước lệnh dự định sẽ nhảy tới
- bit là một bit trong thanh ghi hoặc vùng nhớ định địa chỉ bít
Chức năng Nhảy nếu bít bằng khơng
Chú ý Lệnh JNB sử dụng kiểu định địa chỉ tương đối, do đó tầm nhẩy được giới hạn là
-128 byte đến 127 byte
Ví dụ

MOV

TH1,#23H


MOV TL1,#2AH
SETB TR1
WAIT:

JNB TF1,WAIT

b. DJNZ
Cú pháp


DJNZ byte, Label

Trong đó:

- DJNZ là mã gợi nhớ

- Label là nhãn đặt trước lệnh dự định sẽ nhảy tới
- byte là một thanh ghi hoặc định địa chỉ trực tiếp
Chức năng Nhảy nếu byte bằng không
Chú ý Lệnh DJNZ sử dụng kiểu định địa chỉ tương đối, do đó tầm nhẩy được giới hạn là
-128 byte đến 127 byte
Ví dụ
LOOP

CPL

P1.2
MOV SOLAN_LAP,#12H
SETB P1.0
…….
DJNZ SOLAN_LAP,LOOP

c. Ví dụ tổng hợp
Viết chương trình tạo xung vng 1kHz trên chân p1.2 sử dụng timer 1.
Phân tích bài tốn:
Các thành phần liên quan
- Timer1
- Port 1
Các thanh ghi liên quan
- Thanh ghi cổng p1 là thanh ghi địa chỉ bít, ta quan tâm đến bít p1.2

- Thanh ghi TMOD


7

6

GATE C/T

5

M1

M0

4

3

2

GATE

C/T

M1

1

0


M0

Đây là thanh ghi không định địa chỉ bit, trong phạm vi bài tập, ta chỉ quan tâm đến bít số
4 và 5 nhằm xác định chế độ định thời cho bộ timer1, ở đây ta chọn chế độ định thời 1
(16 bit) do đó ta có M0 =1, M1=0, các bít khác chọn bằng 0
Vậy ta có giá trị cần nạp vào thanh ghi TMOD là 10H
- Thanh ghi TCON
Thanh ghi TCON
TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Đây là thanh ghi định địa chỉ bit, ta cần sử dụng 2 bít TF1 kiểm tra tràn thanh ghi đinh
thời, TR1 điều khiển timer1 chay/dừng
- Thanh ghi định thời T1, được xác định như sau:
Ta tạo xung 1kHz, ta có chu kỳ xung T= 1/f = 0.001 S = 1000 µS, thời gian xung cao là
500 µS và thời gian xung thấp là 500 µS.

Chọn tần số thạnh anh la 12MHz ta có số cần nạp vào T1 là -500 đổi ra Hexa là FE0CH
(nạp FE vào TH1, 0C vào TL1)
Viết chương trình
ORG 00H
LJMP START
ORG 03H ; INT0
RETY
ORG 0BH ; T0
RETY
ORG 13H ; INT1
RETY
ORG 1BH ; T1


RETY
ORG 23H ; SERIAL PORT
RETY
ORG 100H
START:

MOV TMOD,#10H
SETB P1.2

LOOP

:

MOV

TH1,#FEH


MOV TL1,#0CH.
SETB TR1
WAIT

:

JNB TF1,WAIT

CLR TR1
CLR TF1
CPL P1.2
SJMP LOOP
END
Tổng kết bài
Bài hôm nay các em cần nắm được các nội dung sau:
1. Lệnh nhảy bao gồm các lệnh,…. Trong đó lệnh….
2. Lệnh nhảy có điều kiện,….
Bài tập về nhà:
1. Đọc thêm tài liệu liên quan đến mơn học
2. Viết chương trình tạo sóng vng 400 Hz trên chân P1.2 và 100 Hz trên chân P0.3 sử
dụng bộ định thời 1.
3. Đọc trước bài ……


PHẦN 3
VIẾT MỘT BÀI DẠY KIỂM TRA 15 PHÚT
Tìm số m lớn nhất thoả mãn bất đẳng thức: m2+m+1< 2006
Phân tích bài tốn
- Đây là bài tốn có sử dụng lặp mà số lần lặp không biết trước, chon câu lệnh lặp While

.. Do thực hiện.
- Biểu thức điều kiện m2+m+1< 2006
- Công việc: Thay đổi giá trị m sau mỗi vịng lặp theo cơng thức m:=m+1, do đó giá trị
của biểu thức Điều kiện được có xu hướng thay đổi khi thay đổi giá trị m
Viết chương trình
Program Tim_m;
Var m : integer;
Begin
m:=1;
While (m*m+m+1<2006) do
m:=m+1;
writeln(‘ so m lon nhat thoa man dieu kien la:’, m-1);
readln;
End.



×