z
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
LUẬN VĂ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Ử
MỤC LỤC
MỤC LỤ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
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
1
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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
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.
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
4
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
5
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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
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: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
9
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
đượ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
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.
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
11
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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.
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
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
12
Mô phỏng
liên tục
Mô phỏng
Từng bước
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.
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
14
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
- 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.
SP 07H SBUF 00H
DPTR 0000H PCON(HMOS) 0XXXXXXXB
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
16
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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ớ)
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
17
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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.
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.
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
19
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
21
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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
SVTH: NINH XUÂN PHONG Người HD: HỒ SỸ PHƯƠNG
22
ĐỒ ÁN ỨNG DỤNG CNTT CHO ĐTVT
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
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