1. Trang chủ
  2. » Công Nghệ Thông Tin

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

12 492 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 131,5 KB

Nội dung

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: T

Trang 1

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 Tên học phần: NGÔN NGỮ LẬP TRÌNH ASSEMBLY

2 Số đơn vị học trình: 3 (45 tiết).

3 Trình độ: Sinh viên năm thứ 2 hệ cao đẳng, ngành Tin học

4 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ữ

Trang 2

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 hoàn thiện chương trình hợp ngữ

13 Nội dung môn học

CHƯƠNG 1 GIỚI THIỆU TỔNG QUÁT

Trang 3

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 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

Trang 4

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

GIÁO ÁN SỐ : 10 Số tiết : 01 Tổng số tiết đã giảng: 27

Ngày thực hiện : 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 : - Sinh viên phải nắm được cú pháp, hoạt động, cách sử dụng

lệnh rẽ nhánh ận dụng vào các bài toá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:ời gian 3 phút, dự kiến học sinh kiểm tra: ự kiến học sinh kiểm tra: ến học sinh kiểm tra: ọc sinh kiểm tra: ể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:

(Phút)

Phương pháp thực hiện

1 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

4

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

Trang 5

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 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ụ

4 Diễn giảng và

phát vấn

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 Diễn giảng và

phát vấn

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ụ

4 Diễn giảng và

phát vấn

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

20 Diễn giảng và

phát vấn

Trang 6

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 vuông 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

Trang 7

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

Trang 8

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à toàn

bộ không gian nhớ chương trình 64 Kbyte

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

Trang 9

MOV TL1,#2AH SETB TR1

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ụ

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 vuông 1kHz trên chân p1.2 sử dụng timer 1

Phân tích bài toá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

Trang 10

7 6 5 4 3 2 1 0

Đâ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

Đâ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

Trang 11

RETY ORG 23H ; SERIAL PORT RETY

ORG 100H

SETB P1.2

MOV TL1,#0CH

SETB TR1

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 vuông 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 ……

Trang 12

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 toán

- Đây là bài toá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

Ngày đăng: 31/12/2015, 13:14

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w