Tải bản đầy đủ (.pdf) (31 trang)

READS51 và PROTEUS TRONG lập TRÌNH và mô PHỎNG MẠCH điện tử

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 (2.52 MB, 31 trang )

SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
1
z


TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI HÀ NỘI
KHOA ĐIỆN – ĐIỆN TỬ






BÁO CÁO

NGHIÊN CỨU KHOA HỌC

ĐỀ TÀI: ỨNG DỤNG PHẦN MỀM READS51 VÀ
PROTEUS TRONG LẬP TRÌNH VÀ MÔ PHỎNG
MẠCH ĐIỆN TỬ






SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
2





M
M


C
C


L
L


C
C


Chương 1. Cơ sở lý thuyết
1.1. Phần mềm lập trình và biên dịch Reads51
1.1.1. Giới thiệu về phần mềm Reads51
1.1.2. Cách sử dụng phần mềm Reads51
1.2. Phần mềm mô phỏng Proteus
1.2.1. Tổng quan về phần Proteus
1.2.2. Cách sử dụng phần mềm Proteus 7.8
1.3. Các linh kiện điện tử cơ bản
1.3.1. Vi điều khiển AT89C51
1.3.2. Diode phát quang (LED 7 thanh)
Chương 2. Ứng dụng phần mềm Reads51 và Proteus 7.8, lập trình, biên
dịch và mô phỏng cho mạch đếm từ 0 đến 9.
2.1. Mạch đếm từ 0 đến 9 sử dụng VĐK AT89C51

2.2. Ứng dụng phần mềm Reads51 lập trình và biên dịch cho VĐK AT89C51
điều khiển Led 7 đoạn
2.3. Ứng dụng phần mêm Proteus 7.8 mô phỏng cho mạch đếm từ 0 đến 9
Chương 3. Kết luận











SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
3

Lời mở đầu
Trong lĩnh vực Điện tử - Viễn thông hiện nay, nhiều phần mềm chuyên ngành
có liên quan đến Công nghệ thông tin đang được sử dụng rộng rãi. Từ những
phần mềm mô phỏng, thiết kế mạch in mạch nguyên lý, cho tới những phần
mềm biên dịch ngôn ngữ lập trình sang ngôn ngữ máy. Chính vì vây, việc ứng
dụng Công nghệ thông tin cho Điện tử - Viễn thông là một cách tốt nhất giúp
sinh viên tiếp cận được với các phần mềm ứng dụng nhằm phục vụ cho việc học
tập ngày một tốt hơn. Các phần mềm ứng dụng Công nghệ thông tin mà các kỹ
sư ngành Điện tử -Viễn thông cần được trang bị, có phần mềm biên dịch ngôn
ngữ lập trình ( Ngôn ngữ Assembly, ngôn ngữ C,… ) sang ngôn ngữ máy, phần
mềm mô phỏng Proteus , phần mềm vẽ mạch Orcad…, với mục đích biên dịch,
mô phỏng nguyên lý hoạt động để phù hợp với các loại linh kiện điện tử trong

thực tế. Mặt khác, với những phần mềm biên dịch này, người kỹ sư hay sinh
viên có thể hoàn thiện và phát triển kỹ năng lập trình cũng như thiết kế mạch của
bản thân, tạo đà cho việc nghiên cứu, học tập đạt được những thành tựu quan
trọng. Phần mềm biên dịch Reads51 và Phần mềm Proteus là hai trong số các
phần mềm ứng dụng đang được sử dụng phổ biến, với các chức năng ưu việt. Đó
là lý do tại sao nhóm em đã xây dựng đề tài “ Ứng dụng phần mềm lập trình
Reads51, Proteus trong lập trình và mô phỏng mạch điện tử ”, cho bài nghiên
cứu khoa học phần Ứng dụng công nghệ thông tin cho Điện tử- Viễn thông.








SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
4

CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
1.1. Phần mềm lập trình và biên dịch Reads51
1.1.1. Giới thiệu về phần mềm Reads51
Phần mềm Reads51 là một phần mềm của Rigel Corporation, là một
trong những phần mềm biên dịch hai dạng ngôn ngữ lập trình (Assembly và C )
sang ngôn ngữ máy ( hay mã máy ) một cách tự động. Về khía cạnh sử dụng,
Reads51 là phần mềm dễ cài đặt, sử dụng dễ dàng. Nó có khả năng dịch chương
trình của nhiều họ VĐK khác nhau nhưng biên dịch tốt nhất chương trình của họ
VĐK 8051. Chỉ cần soạn thảo ra một chương trình ( Code ), sau đó với vài thao
tác đơn giản thì người lập trình đã có được dữ liệu mã máy đúng với mong

muốn của mình. Hiện nay, phần mềm Reads51 cũng được sử dụng khá phổ biến
trong công việc, giảng dạy và học tập của chuyên ngành Điện tử- Viễn thông.
1.1.2. Cách sử dụng phần mềm Reads51
Cách cài phần mền Reads51 rất đơn giản. Chỉ cần tải phần mềm, chạy file
Setup.exe sau đó bấm Next liên tục là được. Biểu tượng của phần mềm trên
Destops:

Hình 1.1. Biểu tượng của Reads51
Bước 1. Khởi động chương trình
Khởi động chương trình Click chọn biểu tượng trên Destop, hoặc chọn Start\
program\ Rigel\ Reads51.





SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
5

Đây là giao diện của chương trình.

Hình 1.2. Giao diện của Reads51
Bước 2. Tạo một Project mới
Click chọn Project/ New project trên thanh công cụ của giao diện phần mềm.
Hình1.3. Tạo một Project

SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
6



Chọn xong phần new project, sẽ xuất hiện hộp thoại:


Hình 1.4. Hộp thoại xuất hiện
Hộp thọai New Project xuất hiện, chúng ta cần chú ý đến mục Directory, vì đó là
đường dẫn tới thư mục chứa Project cũng như file Hex khi ta đã biên dịch thành
công. Và mục Name, là tên của project. Chọn OK. Như vậy là chúng ta đã tạo
xong file Project:
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
7

Hình 1.5. Project đã tạo
Bước 3. Tạo Module
Click chọn Module / Creat Module:

Hình 1.6. Giao diện của Module




SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
8

Sau khi click chọn Creat module, Thì xuất hiện hộp thoại sau:











Hình 1.7. Hộp thoại Module
Xuất hiện hộp thoại Creat New Module, bao gồm:
+ Mục Name: tên module mới tạo.
+ Mục Description: là nơi mô tả, giới thiệu chương trình.
+ Và lựa chọn Flat trong mục Type, chọn Assembly trong
mục Language, dạng Text trong mục Editor/Code Generator.
Và sau đó chọn OK, ta sẽ được giao diện mà chúng ta có thể viết lập trình theo ý
muốn của riêng mình cho 1 linh kiện nào đó:

Hình 1.8. Giao diện soạn thảo
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
9
Và xuất hiện giao diện mà chúng ta có thể viết chương trình theo ý muốn như
trên.
1.2. Phần mềm mô phỏng Proteus
1.2.1. Tổng quan về phần Proteus
Phần mềm Proteus VSM được viết bởi công ty Labcenter Electronics.
Proteus đã được sử dụng khá rộng rãi trên 35 quốc gia. Proteus đã tự khẳng định
thế mạnh của nó về mô phỏng các mạch nguyên lý sát với thực tế, trên 12 năm,
càng ngày nó càng được hoàn thiện và phát triển mạnh. Proteus cung cấp cho
người sử dụng hầu như toàn bộ các linh kiện điện tử để người dùng có thể tạo ra
được các mạch nguyên lý và sau cùng là chạy thử và so sánh với kết quả thực tế.
Chính vì Proteus có thể tạo và chạy được các mạch đơn giản cũng như các mạch
phức tạp nên có thể dùng nó trong giảng dạy, trong các phòng thí nghiệm điện tử
cũng như trong thực hành vi xử lý…
Phần mềm Proteus chạy trong môi trường Windown 32-bit, yêu cầu của nó về

phần cứng cũng đơn giản: CPU 300 MHz trở lên. Với đặc thù của một nghành
kỹ thuật, các kỹ sư Điện tử - Viễn thông luôn gắn mình với các phòng thí ngiệm.
Tuy nhiên, vấn đề về trang thiết bị, linh kiện điện tử cung cấp cho sinh viên làm
thí nghiệm đang còn hạn chế. Chính vì vây, việc ứng dụng Công nghệ thông tin
cho Điện tử - Viễn thông là một cách tốt nhất giúp sinh viên tiếp cận được với
các linh kiện, các thiết bị điện tử phục vụ cho việc học tập ngày một tốt hơn.
Hiện giờ, ứng dụng một phần mềm mô phỏng mạch điện tử là một biện pháp
hữu hiệu nhất, giúp cho sinh viên chúng em có cách tiếp cận trực quan nhất về
các linh kiện điện tử .Khi đi thử việc hay đi làm. Mặt khác, việc mô phỏng mạch
điện tử trên phần mềm này sẽ giúp cho cho sinh chúng em kiểm tra được tính
chính xác cũng như việc sửa lỗi ngay trên mạch điện tử mà không cần phải tháo
đi, tháo lại hay thay linh kiện khi làm mạch trong thực tế. Điều đó giúp cho sinh
viên tiết kiếm được một khoản tiền khá lớn cũng như thời gian mà chúng em đã
bỏ ra. Hơn thế nữa sử dụng phần mềm mô phỏng giúp cho chúng em tiếp cận
được hầu hết các linh kiện điện tử có trên thị trường, qua đó sinh viên có thể biết
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
10
được cấu tạo, hình dạng, đặc điểm của các linh kiện điện tử. Từ đó xây dựng
được các mạch điện tử như mong muốn. Một trong những phần mền được sử
dụng phổ biến nhất với các chức năng ưu việt hơn đó là phần mền Proteus với
chương trình mô phỏng ISIS.
1.2.2. Cách sử dụng phần mềm Proteus 7.8
Click vào biểu tượng để chạy chương trình.chương trình
được khởi động với giao diện như sau:

a. Khung làm việc chung.



SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52

11


b.Thanh tác vụ.

“Làm tươi” màn hình và các chỉnh sửa.

Bật/Tắt lưới cho bản vẽ.

Chọn gốc tọa độ.

Các công cụ phóng to, thu nhỏ, toàn mạch.

Undo/Redo.

Cắt, sao chép, dán.

Các lệnh tác động lên đối tượng đã được chọn trước.

Các công cụ chỉnh sửa, tạo thư viện linh kiện.

Bật/Tắt chế độ đi dây trong sơ đồ nguyên lý.

Tìm kiếm linh kiện.

Chỉnh sửa thuộc tính chung.

Xuất dang sách linh kiện.

Kiểm tra lỗi mạch điện (ERC).


Liên thông ARES để vẽ mạch in.
c. Thanh công cụ.

Component- Thêm linh kiện vào bản vẽ.

Junction Dot- Thêm điểm nối nơi giao nhau của đường
dây.

Wire Label- Gán tên cho đường dây.

Text Script- Thêm Text vào bản vẽ.
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
12

Bus- Vẽ đường Bus.



Chỉnh sửa nhanh thuộc tính linh kiện.

Nối đầu cực.

Vẽ chân linh kiện.

Vẽ đồ thị mô phỏng.

Băng ghi.

Các máy phát tín hiệu.


Đầu dò điện áp.

Đầu dò dòng điện.

Các thiết bị ảo.


Công cụ vẽ 2D.


d. Các công cụ mô phỏng.




Mô phỏng
liên tục
Mô phỏng
Từng bước
Tạm dừng
Dừng mô
phỏng
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
13

e. Các thao tác cơ bản trên vùng làm việc chính
- Chọn đối tượng:nhấp chuột phải lên đối tượng
- Bỏ chọn:nhấp chuột phải lên vùng trống
- Xóa đối tượng:nhấp chuột phải lên đối tượng

- Di chuyển:chọn,kéo rê bằng chuột trái đến vị trí mới
- Đưa đối tượng vào chính giữa vùng làm việc,chỉ cần đưa con trỏ đến vị trí đó
và bấm F5
- Dùng bánh xe của chuột để phóng to hoặc thu nhỏ đến từng đối tượng
- Dùng bàn phím: F6 phóng to
F7 thu nhỏ
F8 xem toàn mạch
f. Thao tác làm việc.
- Khi màn hình xuất hiện chọn File/New design để vào trang làm việc mới.
- Nhấp chuột vào các biểu tượng để lấy linh kiện hoặc dùng phím tắt “P”.

Hình 1.9. Cách lấy linh kiện
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
14

Khi cửa sổ lấy linh kiện mở ra ta gõ tên linh kiện cần tìm rồi nhấn OK.
1.3. Các linh kiện điện tử cơ bản.
1.3.1. Vi điều khiển AT89C51
Giới thiệu về Vi Điều Khiển 805









Hình 1.10. Sơ đồ chân và chip AT89C51 (DIP)
1.3.1.1. Tóm tắt phần cứng AT89C51

AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập.
Trong đó có 24 chân có tác dụng kép (có nghĩa là 1 chân có 2 chức năng), mỗi
đường có thể hoạt động như đường xuất nhập hoặc như đường điều khiển hoặc
là thành phần của các bus dữ liệu và bus địa chỉ.
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
15
a. Các cổng xuất nhập:
- Port 0: Port 0 là port có 2 chức năng ở các chân 32 - 39 của AT89C51.
Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các
đường I/O. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp giữa
bus địa chỉ và bus dữ liệu.
- Port 1: Port 1 là port I/O trên các chân 1-8. Các chân được ký hiệu
P1.0, P1.1, P1.2, P1.7 có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần.
Port 1 không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với
các thiết bị bên ngoài.
- Port 2: Port 2 là 1 port có tác dụng kép trên các chân 21- 28 được dùng
như các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị
dùng bộ nhớ mở rộng.
- Port 3: Port 3 là port có tác dụng kép trên các chân 10-17. Các chân
của port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các
đặc tính đặc biệt của AT89C51 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P3.0 RXT Ngõ vào dữ liệu nối tiếp.
P3.1 TXD Ngõ xuất dữ liệu nối tiếp.
P3.2 INT0\ Ngõ vào ngắt cứng thứ 0
P3.3 INT1\ Ngõ vào ngắt cứng thứ 1
P3.4 T0 Ngõ vào củaTIMER/COUNTER thứ 0
P3.5 T1 Ngõ vào củaTIMER/COUNTER thứ 1
P3.6 WR\ Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7 RD\ Tín hiệu đọc bộ nhớ dữ liệu ngoài

Bảng 1.1: Chức năng của các chân của Port 3


SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
16
b. Các ngõ tín hiệu điều khiển:
- Ngõ tín hiệu PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương
trình mở rộng thường được nối đến chân OE\ (Output Enable) của Eprom cho
phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian Microcontroller
8951 lấy lệnh. Các mã lệnh của chương trình được đọc từ EPROM qua bus dữ
liệu và được chốt vào thanh ghi lệnh bên trong AT89C51 để giải mã lệnh. Khi
8951 thi hành chương trình trong EPROM nội PSEN sẽ ở mức logic 1.
- Ngõ tín hiệu điều khiển ALE (Address Latch Enable):
Khi AT89C51 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và
bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân
thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu
khi kết nối chúng với IC chốt. Tín hiệu ra ở chân ALE là một xung trong khoảng
thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có
thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE
được dùng làm ngõ vào xung lập trình cho EPROM trong AT89C51.
- Ngõ tín hiệu EA\(External Access):
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở
mức 1, AT89C51 thi hành chương trình từ EPROM nội trong khoảng địa chỉ
thấp 4 Kbyte. Nếu ở mức 0, 8951 sẽ thi hành chương trình từ bộ nhớ mở rộng.
Chân EA\ được lấy làm chân cấp nguồn 12V khi lập trình cho EPROM trong
AT89C51.
- Ngõ tín hiệu RST (Reset):
Ngõ vào RST ở chân 9 là ngõ vào Reset của AT89C51. Khi ngõ vào tín hiệu này

đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá
trị thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động Reset.
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
17

Hình 1.11: Mạch Reset hệ thống
Trạng thái của tất cả các thanh ghi của 8051 sau khi reset hệ thống được tóm tắt
trong bảng sau:
Thanh ghi Nội dung

Thanh ghi Nội dung
Đếm chương trình 0000H IP XXX00000B
Tích lũy 00H IE 0XX00000B
B 00H Các thanh ghi định thời 00H
PSW 00H SCON 00H
SP 07H SBUF 00H
DPTR 0000H PCON(HMOS) 0XXXXXXXB

Port 0-3 FFH PCON(CMOS) 0XXX0000B
Bảng 1.2: Trạng thái các thanh ghi sau khi Reset
Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được
đặt lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt
đầu ở địa chỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H. Nội dung
của RAM trên chip không bị thay đổi bởi lệnh reset.



SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
18
- Các ngõ vào bộ dao động X1,X2:

Bộ dao động được được tích hợp bên trong AT89C51, khi sử dụng người thiết
kế chỉ cần kết nối thêm thạch anh và các tụ. Tần số thạch anh thường sử dụng
cho AT89C51 là 12Mhz. Chân 40 (Vcc) được nối lên nguồn 5V.


Hình 1.12: Cấp nguồn giao động bằng thạch anh.
“Chú ý: Tụ gốm có trị số từ 27pF - 33pF để ổn định làm việc cho thạch anh,
thường dùng loại 33pF.”
c. Một số tập lệnh cơ bản lập trình cho VĐK 8051.
1. MOV Rn, DIRECT: Lấy dữ liệu cất ở DIRECT bỏ vào trong thanh ghi Rn.
2. MOV @Rn,#DATA: Nhập 1 số nguyên vào địa chỉ mà Rn đang nắm giữ.
3. MOV Rn,#DATA: Nhập 1 số nguyên vào Rn . Hoặc có thể viết Mov
r7,#11111111b. 255 ở hệ thập phân tương đương với 1111111b ở hệ nhị phân.
4. CLR : Xóa 1 bit, xóa 1 ô nhớ
5. SETB: Ngược lại với Clr là Setb( tăng 1 bit, tăng thêm 1 ô nhớ)
6.RET: Quay lại chỗ chương trình rẽ nhánh. Nếu không gặp các lệnh rẽ
nhánh thì chương trình thực hiện theo thứ tự trên xuống dưới.
7.RETI: Quay lại chỗ chương trình đã bị ngắt. Lệnh này dùng kết thúc
chương trình con ngắt, khi gặp lệnh này Vi điều khiển quay về thực hiện lệnh ở
chương trình chính.
8.JMP: Lệnh nhảy,lệnh rẽ nhánh không điều kiện.Lệnh cùng chức năng
Sjmp
9.JB BIT,REL: Lệnh kiểm tra 1 bít, Nếu bít đó bằng 1 thì rẽ nhánh
10.JNB BIT,REL: Lệnh kiểm tra bit,nếu bit bằng 0 thì rẽ nhánh
11.INC: Lệnh tăng ô nhớ lên 1 đơn vị
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
19
12.DEC: Lệnh giảm ô nhớ xuống 1 đơn vị
13.CJNE Rn,#Data,REL: Lệnh kiểm tra thanh ghi Rn , nếu khác Data thì
rẽ nhánh

14.ADD A,Rn: Lệnh cộng, kết quả lưu vào A
15.SUBB A,Rn: Lệnh trừ
16.MULL A,B: Lệnh nhân
17.DIV A,B: Lệnh chia
18.RLC: lệnh quay dịch
1.3.2 . Diode phát quang (LED 7 thanh)
a. Cấu trúc Led 7 thanh
Led 7 thanh được ứng dụng khá phổ biến khi cần hiển thị số tự nhiên hoặc vài
chữ cái nhất định. Led 7 thanh có thể có kích thước lớn nhỏ khác nhau, màu sắc
khác nhau nhưng về hình dáng cơ bản như hình 1.13

Hình 1.13. Hình dạng của Led 7 thanh.
Led 7 thanh bao gồm nhiều led tích hợp bên trong, các led được nối chung nhau
1 chân. Trong thực tế có 2 loại led 7 thanh là led 7 thanh A-nốt chung và led 7
thanh Ka-tốt chung. Led loại A-nốt chung, các led sẽ có chung nhau chân nguồn
(chân dương), chân còn lại của led nào được nối đất thì led đó sẽ sáng. Led loại
Ka-tốt chung, các led sẽ nối chung nhau chân đất (chân âm), chân còn lại của led
nào được nối nguồn thì led đó sẽ sáng.
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
20

Hình 1.14. Cấu tạo LED 7 thanh.
LED Anode chung

Đối với dạng Led anode chung, chân COM phải có mức logic 1 và muốn sáng
Led thì tương ứng các chân a – f, dp sẽ ở mức logic 0.
b. mã hiển thị dữ liệu trên Led 7 đoạn.
Bảng mã cho Led Anode chung (a là MSB, dp là LSB):
Số dp


g f e d c b a Mã Hex
0 1 1 0 0 0 0 0 0 0C0H
1 1 1 1 1 1 0 0 1 0F9H
2 1 0 1 0 0 1 0 0 0A4h
3 1 0 1 1 0 0 0 0 0B0H
4 1 0 0 1 1 0 0 1 99H
5 1 0 0 1 0 0 1 0 92H
6 1 0 0 0 0 0 1 0 82H
7 1 1 1 1 1 0 0 0 0F8H
8 1 0 0 0 0 0 0 0 80H
9 1 0 0 1 0 0 0 0 90H

SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
21
LED Catode chung:

Đối với dạng Led Cathode chung, chân COM phải có mức logic 0 và muốn sáng
Led thì tương ứng các chân a – f, dp sẽ ở mức logic 1.
Bảng mã cho Led Cathode chung (dp là MSB, a là LSB):
Số dp g f e d c b a Mã Hex
0 0 0 1 1 1 1 1 1 3FH
1 0 0 0 0 0 1 1 0 06H
2 0 1 0 1 1 0 1 1 5BH
3 0 1 0 0 1 1 1 1 4FH
4 0 1 1 0 0 1 1 0 66H
5 0 1 1 0 1 1 0 1 6DH
6 0 1 1 1 1 1 0 1 7DH
7 0 0 0 0 0 1 1 1 07H
8 0 1 1 1 1 1 1 1 7FH
9 0 1 1 0 1 1 1 1 6FH








SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
22
CHƯƠNG 2
ỨNG DỤNG PHẦN MỀM READS51 VÀ PROTEUS 7.8, LẬP TRÌNH,
BIÊN DỊCH VÀ MÔ PHỎNG CHO MẠCH ĐẾM TỪ 0 ĐẾN 9.
2.1. Mạch đếm từ 0 đến 9 sử dụng VĐK AT89C51
2.1.1. Ứng dụng của mạch đếm
Chúng ta hiểu một cách rất đơn giản, ban đầu nó là một mạch đếm, đếm nghĩa là
sao? đơn giản là nó biết đếm như chúng ta,ví dụ đếm từ 1 đến 10, hay như một
cái đồng hồ đếm giây khi chúng ta chạy hay tập nín thở chẳng hạn,….vv .
Mạch ứng dụng rất tốt trong thực tế, Đơn giản nhất như là việc các bạn làm một
đồng hồ bấm giờ, hay ví dụ đếm sản phẩm, hiển thị các thong số trên mạch
….vv.
2.1.2. Sơ đồ nguyên lý
a. Linh kiện trong mạch
 VĐK AT89C51
 Diode phát quang (Led 7 thanh)
 Điện trở (100

, 10K)
 Tụ điện (104, 33pF tụ thường),(10uF tụ hóa)
 Thạch anh (12Mhz)
b. Sơ đồ mạch


SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
23
Hình 1.15. Sơ đồ mạch đếm từ 0 đến 9
2.1. Ứng dụng phần mềm Reads51 lập trình và biên dịch cho VĐK
AT89C51 điều khiển Led 7 đoạn
Ở chương 1 tôi đã hướng dẫn cách sử dụng phần mềm Reads51 khi đã tạo được
một Module mới chúng ta bắt đầu công việc lập trình của mình, ở đây tôi đã tạo
được một Module mới có tên “LED 7 DEM 0 DEM O DEN 9”.

Công việc chính của bây giờ là soạn thảo chương trình, lập trình cho Port 2 của
VĐK AT89C51 điều khiển 1 Led 7 đoạn đếm từ 0 đến 9.Ở đây tôi sẽ lập trình
cho Led 7 đoạn có Anode chung.Chúng ta có thể sử dụng
Bảng mã cho Led Anode chung
Số dp

g f e d c b a Mã Hex
0 1 1 0 0 0 0 0 0 0C0H
1 1 1 1 1 1 0 0 1 0F9H
2 1 0 1 0 0 1 0 0 0A4h
3 1 0 1 1 0 0 0 0 0B0H
4 1 0 0 1 1 0 0 1 99H
5 1 0 0 1 0 0 1 0 92H
6 1 0 0 0 0 0 1 0 82H
7 1 1 1 1 1 0 0 0 0F8H
8 1 0 0 0 0 0 0 0 80H
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
24
9 1 0 0 1 0 0 0 0 90H
Giao tiếp VĐK AT89C51 với Led 7 thanh.

Cho 1 Led 7 thanh Anode chung nối vào port 2 của VĐK 8051. Lập trình cho
led 7 thanh hiện thị đếm từ 0 đến 9, mỗi số sang 1 giây, hiển thị số khi P2.x=0
và ngược lại .
Dưới đây là lưu đồ thuật toán:























Begin

Không hiển thị gì, tắt tất cả

Hiển thị số 0
Trễ 1 giây
Hiển thị số 1
Trễ 1 giây
Hiển thị số 2
Hiển thị số 9
Trễ 1 giây
Trễ 1 giây
SVTH:CAO VĂN ĐỨC – KỸ THUẬT VIỄN THÔNG K52
25






























#include <sfr51.inc> ; khai báo file chứa địa chỉ của các thanh ghi SFR
org 00h ; địa chỉ bắt đầu khi cấp nguồn hay reset
ljmp main ; Lệnh nhảy dài
org 40h ;địa chỉ bắt đầu chương trình chính
main:
mov SP,#5fh ; Việc tắt tất cả các LED được tự động
; Do khi reset lên, các chân cổng đều = 1
mov p2,#11000000b ; Hiển thị số 0
lcall delay_1s ; Gọi chương trình con delay
mov p2,#11111001b ; Hiển thị số 1
lcall delay_1s
mov p2,#10100100b ; Hiển thị số 2
lcall delay_1s
mov p2,#10110000b ; Hiển thị số 3
lcall delay_1s
mov p2,#10011001b ; Hiển thị số 4
lcall delay_1s
mov p2,#10010010b ; Hiển thị số 5
lcall delay_1s
mov p2,#10000010b ; Hiển thị số 6
lcall delay_1s

mov p2,#11111000b ; Hiển thị số 7
lcall delay_1s
mov p2,#10000000b ; Hiển thị số 8
lcall delay_1s
mov p2,#10010000b; Hiển thị số 9
lcall delay_1s
sjmp main ; nhảy đến nhãn main
delay_1s: ; chương trình con delay
mov r1,#10 ; Gán r1 =10
loop1: ; Nhãn
mov r2,#100 ; Gán r2=100
loop2:
mov r3,#100 ;Gán r3=100
loop3:
nop ;lệnh nhảy tại chỗ, không làm gì cả
nop
nop
nop
nop
nop
nop
nop
djnz r3,loop3 ;giảm dần và nhảy khi r3 = 0
djnz r2,loop2
djnz r1,loop1
ret ; lệnh trở lại từ chương trình con
end ; Chỉ dẫn báo kết thúc toàn bộ đoạn chương trình


Một lệnh nop mất 1 chu kỳ máy .8 lệnh mất 8 chu kỳ

máy.1 lệnh djnz mất 2 chu kỳ máy
 1 vong lặp mất 10 chu kỳ máy
Có 3 vòng lặp với r1=10, r2=100,r3=100
 Tổng thời gian delay: 10*100*100*10= 10
6
us=
1s

×