You are on page 1of 17

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN


--------------------------------------

BÀI TẬP LỚN


KIẾN TRÚC MÁY TÍNH
Nhóm: LỚP N06 – NHÓM 03

Tên các thành viên

Lê Đoàn Ngọc Nam B21DCCN546

Đỗ Thanh Trường B21DCCN738


Vũ Anh Quân B21DCCN618

Nguyễn Quang Anh B21DCCN005

Nguyễn Đắc Thành B21DCCN678

Giảng viên hướng dẫn: Đinh Xuân Trường

Phụ lục

1
PHỤ LỤC
I. Giới thiệu chung : Mô phỏng đèn LED 7 thanh để đếm số (từ 0 đến 9) .................................. 3
1. Mục tiêu báo cáo ............................................................................................... 3
2. Phạm vi đề tài .................................................................................................... 3
II. Cơ sở lý thuyết ........................................................................................................................... 3
1. Kiến thức cơ bản về đèn LED 7 đoạn ............................................................... 3
2. Giới thiệu về LED 7 đoạn ................................................................................. 3
3. Cấu tạo của LED 7 đoạn ................................................................................... 4
III. Ngôn ngữ assembly ................................................................................................................... 5
1. Khái quát về ngôn ngữ lập trình assembly và đặc điểm ................................... 5
2. Phương pháp mô phỏng hiển thị đèn LED 7 thanh sử dụng ............................. 5
3. Mô tả chương trình............................................................................................ 6
IV. Màn hình chương trình ............................................................................................................ 8
1. Tóm tắt báo cáo ............................................................................................... 15
2. Những kết quả đạt được .................................................................................. 15
3. Hạn chế và hướng phát triền trong tương lai .................................................. 15

2
I. Giới thiệu chung : Mô phỏng đèn LED 7 thanh
để đếm số (từ 0 đến 9)
1. Mục tiêu báo cáo
- Nắm vững kiến thức cơ bản về ngôn ngữ lập trình assembly và cách sử dụng các
thanh ghi để điều khiển đèn LED 7 thanh.
- Trình bày các bước lập trình vi xử lý 8255A và hiển thị các số từ 0 đến 9 trên đèn
LED 7 thanh.
- Kết quả dự kiến là đạt được sự hiểu biết sâu sắc hơn về kiến trúc máy tính và có
khả năng lập trình tốt với ngôn ngữ assembly.
- Đề tài có ý nghĩa trong việc nâng cao kỹ năng lập trình và hiểu biết về phần cứng
trong lĩnh vực kiến trúc máy tính.

2. Phạm vi đề tài
- Báo cáo này tâp trung vào mô phỏng hiển thị đèn LED 7 đoạn để đếm số từ 0 đến 9
bằng ngôn ngữ assembly trên vi xử lý 8255A.

II. Cơ sở lý thuyết
1. Kiến thức cơ bản về đèn LED 7 đoạn

Hình 1. Bảng điện tử của đèn LED 7 đoạn

2. Giới thiệu về LED 7 đoạn


- LED 7 đoạn là 7 đèn LED được sắp xếp thành hình chữ nhật(A, B, C, D, E, F). Mỗi
led là một đoạn. Khi mỗi đoạn chiếu sáng thì một phần của chữ số (hệ thập phân hoặc
thập lục phân) sẽ được hiển thị.

3
- LED 7 đoạn là thiết bị hiển thị điện tử để hiển thị số. Khi mỗi đoạn chiếu sáng thì một
phần của chữ số sẽ được hiển thị. LED 7 đoạn được sủ dụng rộng rãi tỏng đồng hồ số,
máy tính.

3. Cấu tạo của LED 7 đoạn


- Đèn được tạo bởi 7 đoạn :
+ Đoạn A: Đoạn LED nằm ngang trên cùng của màn hình hiển thị
+ Đoan B: Đoạn LED nằm dọc bên phải trên của màn hình hiển thị
+ Đoạn C: Đoạn LED nằm dọc bên phải dưới cùng của màn hình hiển thị
+ Đoạn D: Đoạn LED nằm ngang dưới cùng của màn hình hiển thị
+ Đoạn E: Đoạn LED nằm dọc bên trái dưới của màn hình hiển thị
+ Đoạn F: Đoạn LED nằm dọc bên trái trên của màn hình hiển thị
+ Đoạn G: Đoạn LED nằm ngang ở giữa của màn hình hiển thị
- Khi biểu diễn 1 số thì 1 số LED tương ứng sẽ sáng lên

Hình 2. Bảng trạng thái của các đoạn LED khi biểu thị các số
0 : biểu thị đèn tắt
1 : biểu thị đèn bật

4
III. Ngôn ngữ assembly
1. Khái quát về ngôn ngữ lập trình assembly và đặc điểm
- Ngôn ngữ lập trình Assembly là một ngôn ngữ gần gũi với ngôn ngữ máy và được sử
dụng để lập trình các thiết bị vi xử lý trực tiếp. Assembly cho phép lập trình viên
tương tác trực tiếp với phần cứng của một máy tính hoặc vi xử lý, bằng cách viết các
lệnh dựa trên mã máy.

- Đặc điểm chính của ngôn ngữ lập trình Assembly bao gồm:

+ Gần gũi với ngôn ngữ máy: Ngôn ngữ Assembly sử dụng các từ gọi là mnemonics
để biểu diễn các lệnh và các địa chỉ bộ nhớ. Các mnemonics này tương ứng với mã
máy cụ thể mà vi xử lý có thể hiểu được.
+ Trực tiếp tương tác với phần cứng: Với Assembly, lập trình viên có khả năng kiểm
soát trực tiếp các tài nguyên phần cứng như bộ nhớ, thanh ghi, ngắt, và các thanh ghi
đặc biệt khác. Điều này cho phép tối ưu hóa hiệu suất và kiểm soát chính xác quá trình
thực thi.
+ Cấu trúc tuyến tính: Ngôn ngữ Assembly là ngôn ngữ có cấu trúc tuyến tính, tức là
lệnh được thực thi tuần tự từ trên xuống dưới. Mỗi lệnh Assembly thường tương ứng
với một dòng mã máy.
+ Tối ưu hóa và hiệu suất cao: Việc sử dụng ngôn ngữ Assembly cho phép lập trình
viên tối ưu hóa mã để đạt được hiệu suất cao nhất từ vi xử lý. Bằng cách tiếp cận trực
tiếp phần cứng, ngôn ngữ Assembly cho phép tận dụng tối đa khả năng tính toán của
máy tính.
+ Độ khó cao: So với ngôn ngữ lập trình cao cấp như C++, Java hay Python, việc lập
trình bằng Assembly yêu cầu kiến thức sâu về kiến trúc máy tính và phần cứng. Ngôn
ngữ Assembly đòi hỏi lập trình viên phải hiểu rõ cách hoạt động của vi xử lý và các
chỉ dẫn cụ thể.

2. Phương pháp mô phỏng hiển thị đèn LED 7 thanh sử dụng

a) Phương pháp Bit-Banging:


- Sử dụng các thanh ghi đặc biệt để điều khiển các đèn LED 7 thanh.
- Dùng các lệnh Assembly để gán giá trị cho các thanh ghi, mỗi bit tương ứng với một
đèn LED.
- Sử dụng các lệnh ghi vào các thanh ghi đặc biệt để điều khiển chân kích hoạt và chân
dữ liệu của đèn LED.
Phần mềm sử dụng để mô phỏng : protues 8 profresion.
Mạch sử dụng : vi xử lý 8086, vi mạch 74HC373, vi xử lý 8255A.

5
3. Mô tả chương trình

a) Mô tả dữ liệu đầu vào, đầu ra


Input : Chương trình không có dữ liệu đầu vào
Output: Giá trị số từ 0 đến 9 sẽ được hiển thị trên màn hình LED 7 thanh. Các giá trị
số này sẽ được lưu trữ trong các thanh ghi trước khi được hiển thí trên màn hình LED
7 đoạn.

b) Mã nguồn chương trình


codewithshamse
;7 segment display Interfacing program

DATA SEGMENT
PORTA EQU 00H
PORTB EQU 02H
PORTC EQU 04H
PORT_CON EQU 06H
DATA ENDS
CODE SEGMENT
MOV AX,DATA
MOV DS, AX

ORG 0000H
START:
MOV DX, PORT_CON
MOV AL, 10000000B
OUT DX, AL
JMP XX
XX:
MOV AL, 00111111B ; displaying 0
MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay0:loop Delay0
MOV AL, 00000110B ; Displaying 1
MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay1:loop Delay1
MOV AL, 01011011B ;Displaying 2
MOV DX, PORTA
OUT DX,AL

6
MOV CX,0DF36H; Delay
Delay2:loop Delay2

MOV AL, 01001111B ; Displaying 3


MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay3:loop Delay3
MOV AL, 01100110B ; Displaying 4
MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay4:loop Delay4
MOV AL, 01101101B ;Displaying 5
MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay5:loop Delay5
MOV AL, 01111101B ;Displaying 6
MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay6:loop Delay6

MOV AL, 00000111B ;Displaying 7


MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay7:loop Delay7

MOV AL, 01111111B ;Displaying 8


MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay
Delay8:loop Delay8

MOV AL, 01101111B ; Displaying 9


MOV DX, PORTA
OUT DX,AL
MOV CX,0DF36H; Delay

Delay9:loop Delay9
JMP XX
JMP START
CODE ENDS
END

7
c) Công việc mà chương trình thực hiện
- Khai báo địa chỉ các cổng của vxl 8086
- Chương trình chính: Xuất ra lần lượt dữ liệu của các số cần hiển thị theo dạng
binary(các bit tương ứng với dữ liệu của các đèn led)
+ Xuất ra cổng A dữ liệu của số cần hiển thị
+ Delay
+ Xuất ra cổng A dữ liệu của số cần hiển thị tiếp theo
Sử dụng phần mềm proteus 8 profesion để mô phỏng

IV. Màn hình chương trình

Hình 3. Mạch điện bao gồm vi xử lý 8086, vi mạch 74HC373, vi xử lý 8255A

8
Hình 4. Kết quả hiển thị khi mạch biểu diễn số 0

Hình 5. Kết quả hiển thị khi mạch biểu diễn số 1

9
Hình 6. Kết quả hiển thị khi mạch biểu diễn số 2

Hình 7.Kết quả hiển thị khi mạch biểu diễn số 3

10
Hình 8. Kết quả hiển thị khi mạch biểu diễn số 4

Hình 9. Kết quả hiển thị khi mạch biểu diễn số 5

11
Hình 10. Kết quả hiển thị khi mạch biểu diễn số 6

Hình 11. Kết quả hiển thị khi mạch biểu diễn số 7

12
Hình 12. Kết quả hiển thị khi mạch biểu diễn số 8

13
Hình 13. Kết quả hiển thị khi mạch biểu diễn số 9

14
KẾT LUẬN

1. Tóm tắt báo cáo


- Trong báo cáo này, nhóm đã nghiên cứu về mô phỏng hiển thị đèn LED 7 thanh để
đếm số từ 0 đến 9 bằng ngôn ngữ Assembly. Mục tiêu của đề tài là hiểu về cách hoạt
động của đèn LED 7 thanh và áp dụng kiến thức Assembly để mô phỏng quá trình
hiển thị số trên đèn LED.
- Nhóm đã tìm hiểu các kiến thức cơ bản về đèn LED 7 thanh, ngôn ngữ lập trình
Assembly và các phương pháp mô phỏng đèn LED 7 thanh. Sau đó, chúng tôi đã miêu
tả giải thuật để đếm và hiển thị số từ 0 đến 9 trên đèn LED 7 thanh.
- Chương trình mô phỏng được xây dựng bằng ngôn ngữ Assembly và sử dụng các hàm
chính để thực hiện quá trình đếm và hiển thị số trên đèn LED. Các công việc chính
của chương trình bao gồm gán giá trị cho thanh ghi đặc biệt và điều khiển các chân
kích hoạt và chân dữ
liệu của đèn LED.

2. Những kết quả đạt được


- Đạt được sự hiểu biết sâu sắc hơn về kiến trúc máy tính và có khả năng lập trình tốt
với ngôn ngữ assembly.
- Có thêm kiến thức cơ bản về ngôn ngữ lập trình assembly và cách sử dụng các thanh
ghi để điều khiển đèn LED 7 thanh

3. Hạn chế và hướng phát triền trong tương lai

a) Hạn chế
- Giới hạn số lượng hiển thị: Đèn LED 7 đoạn chỉ có thể hiển thị các ký tự số từ 0
đến 9 và một số ký tự đặc biệt như A, B, C, D, E, F. Do đó, nó không thể hiển thị các
ký tự chữ hoặc các ký tự đặc biệt khác.
- Không có khả năng đảo ngược: Đèn LED 7 đoạn không thể hiển thị các ký tự hoặc
số bị đảo ngược. Ví dụ, số 6 không thể hiển thị dưới dạng 9 nếu bạn đảo ngược đèn
LED 7 đoạn.
- Không có khả năng thay đổi màu sắc: Đèn LED 7 đoạn chỉ có thể hiển thị một màu
sắc duy nhất. Không thể thay đổi màu sắc của đèn LED 7 đoạn để phù hợp với yêu
cầu của các ứng dụng khác nhau.
- Khó khăn trong việc hiển thị các số và ký tự độc đáo: Đèn LED 7 đoạn có hạn chế
trong việc hiển thị các số và ký tự độc đáo. Nếu bạn cần hiển thị các số và ký tự độc
đáo, bạn sẽ cần kết hợp nhiều đèn LED 7 đoạn hoặc sử dụng các loại đèn LED khác.
- Giới hạn về ánh sáng: Đèn LED 7 đoạn không đủ sáng để hiển thị trong môi trường
ánh sáng mạnh. Trong những điều kiện ánh sáng mạnh, màn hình đèn LED 7 đoạn có
thể trở nên khó nhìn hoặc không thể nhìn thấy được.
15
b) Những hướng phát triển trong tương lai
- Cải tiến hiển thị: Các nhà sản xuất có thể cải tiến đèn LED 7 đoạn để hiển thị các
ký tự và số phức tạp hơn, bao gồm các ký tự đặc biệt và các ký tự chữ. Điều này sẽ
tăng tính đa dạng và ứng dụng của đèn LED 7 đoạn.
- Thay đổi màu sắc: Các nhà sản xuất có thể cải tiến đèn LED 7 đoạn để thay đổi màu
sắc của đèn LED. Với khả năng thay đổi màu sắc, đèn LED 7 đoạn có thể được sử
dụng trong nhiều ứng dụng khác nhau, bao gồm các ứng dụng trang trí và chiếu sáng.
- Kết hợp với công nghệ thông minh: Đèn LED 7 đoạn có thể được kết hợp với các
công nghệ thông minh như Bluetooth hoặc Wi-Fi, để tạo ra các sản phẩm thông minh
như đồng hồ thông minh, bộ đếm thời gian, hoặc bảng điện tử hiển thị.
- Tăng độ sáng: Các nhà sản xuất có thể phát triển đèn LED 7 đoạn với độ sáng cao
hơn để đáp ứng nhu cầu sử dụng trong môi trường ánh sáng mạnh hơn, hoặc để sử
dụng trong các ứng dụng ngoài trời.
- Sử dụng công nghệ mới: Các nhà sản xuất có thể sử dụng các công nghệ mới như
OLED hoặc Micro-LED để tạo ra các sản phẩm hiển thị mới thay thế cho đèn LED 7
đoạn, với tính năng hiển thị và tính năng tương thích với các công nghệ mới.

16
Tài liệu tham khảo
Digital design and computer architecture ( 2th edition) – David . M . Harris & Sarah
L. Harirs
Computer architecture a quantitive ( 5th edtion) – Morgan Kauphann
COD ( 4th edition) – David A. Patterson & John L . Hennessy
Bài Giảng Kiển trúc máy tính - TS. Hoàng Xuân Dậu
Bài Giảng Kiến trúc máy tính – TS. Đinh Xuân Trường

17

You might also like