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 đồ án học phần Ứng dụng công nghệ thông tin cho Điện tử- Viễn thông.
30 trang |
Chia sẻ: oanhnt | Lượt xem: 2097 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Đề tài Ứng dụng phần mềm reads51. proteus trong lập trình và mô phỏng mạch điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỀ TÀI:
ỨNG DỤNG PHẦN MỀM READS51. PROTEUS TRONG LẬP TRÌNH VÀ MÔ PHỎNG MẠCH ĐIỆN TỬ
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 đồ án học phần Ứng dụng công nghệ thông tin cho Điện tử- Viễn thông.
Chương 1. Cơ sở lý thuyết
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
Ứ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
Ứ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
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.
Đâ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
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:
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
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
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 đượ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.
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ẽ.
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.
Dừng mô phỏng
Tạm dừng
Mô phỏng
Từng bước
Mô phỏng
liên tục
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
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ỉ.
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
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.
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.
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ị
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.
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
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
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
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
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
Trễ 1 giây
Hiển thị số 9
Trễ 1 giây
#include ; 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