Thiết kế mạch điện mô phỏng

Một phần của tài liệu Lập trình ASM cho 8051 điều khiển LED 7 thanh (Trang 45 - 51)

2.3.1. Mục đích thiết kế

Khai thác sử dụng vi điều khiển 89C51 cho một ứng dụng cụ thể là thiết kế mạch đếm thuận nghịch từ 00 đến 99. Mạch gồm 2 đèn led 7 thanh có tích hợp.

Các đèn đếm theo quy luật như sau:

Ban đầu đèn đếm thuận, đèn bắt đầu chạy từ 00 đến 01, thời gian cách nhau là 0,5s. Cứ như vậy cho đến khi đếm đến 99.

Khi đã đếm từ 00 đến 99, thì đèn bắt đầu đếm ngược xuống 98, thời gian cách nhau 0,5 s. Cứ như vậy cho đến khi đếm xuống 00.

Sau đó chương trình lại được lặp lại như trên.

2.3.2. Thiết kế phần cứng

Từ mục đích của ứng dụng, cấu trúc phần cứng sẽ có sơ đồ khối như sau:

Linh kiện:

- Tụ 30pF : 2 chiếc.

- Điện trở 330 : 1 chiếc.

- Thạch anh 12MHz : 1 chiếc.

- Led 7 thanh : 2 chiếc - Chíp AT89C51 : 1 chiếc

Khối nguồn

Khối hiển thị Khối vi điều khiển 89c51

44

Ghép nối giữa vi điều khiển 89c51 với các đèn led 7 thanh: Vi điều khiển cho ra mức logic cao là 5V, mức logic thấp là 0V, các đèn led sử dụng nguồn giới hạn là 5V, vì thế phải ghép nối tiếp với một điện trở hạn dòng có giá trị 330.

- Thạch anh 12MHz: Chức năng là nguồn tạo xung nhịp dao động clock ổn định (12MHz) cho dao động của 8051. Thạch anh sẽ được gắn vào chân XTAL1 và XTAL2 (chân số 18 và 19) của 8051.

- Tụ điện: Chức năng là lọc nhiễu cho dao động thạch anh. 2 tụ gốm 30pF sẽ được nối một đầu với chân của thạch anh, đầu còn lại đấu ra Mass.

- Điện trở là một thiết bị điện dùng để hạn chế sự chuyển động của các điện tích và nó có tác dụng hạn chế dòng điện.

Sơ đồ mạch điện:

Hình 2.4: Mạch điện mô phỏng.

45 2.3.3. Thiết kế phần mềm

Trong phần cứng cho thấy từ chân 21 đến chân 24 nối với led 7 thanh 2, từ chân 25 đến chân 28 nối với đèn led 7 thanh 1.

Tạo ra các mức logic ở các chân từ chân 21 đến chân 28 theo một trình tự để đèn có thế đếm thuận từ 00 đến 99 và đếm ngược từ 99 về 00

Từ mục đích thiết kế phần mềm ta có sơ đồ khối chương trình cho mạch đếm thuận nghịch như sau:

Từ sơ đồ khối chương trình tôi đã viết phần mềm nhúng cho vi điều khiển như sau:

Khởi tạo

Tất cả các đèn đều tắt.

Đếm thuận

Thời gian cách nhau giữa các số là 0,5 s.

Đếm ngược

Thời gian cách nhau giữa các số là 0,5 s.

Kết thúc

Hiển thị 7 thanh

46

org 00h ; địa chỉ bắt đầu khi cấp nguồn hay reset limp main ; lệnh nhảy dài

org 30h ; địa chỉ bắt đầu chương trình chính main:

mov a,#00 ; chuyển dữ liệu 00 vào thanh ghi a loop:

mov r0,a ; chuyển dữ liệu a vào thanh ghi r0 mov b,#10 ; chuyển dữ liệu 10 vào thanh ghi b div ab ; A/B = A(thương) + B (dư)

swap a ; hoán đổi 2 nửa của A add a,b ; A = A + B

mov p2,a ; chuyển dữ liệu thanh ghi a ra port 2 call delay ; gọi chương trình con delay

mov a,r0 ; chuyển dữ liệu thanh ghi r0 vào thanh ghi a inc a ; tăng a lên 1 đơn vị

cjne a,#99,loop ; so sánh giá trị của a và nhảy đến nhãn loop nếu A#99

jmp loop2 loop2:

mov r0,a ; chuyển dữ liệu a vào thanh ghi r0 mov b,#10 ; chuyển dữ liệu 10 vào thanh ghi b div ab ; A/B = A(thương) + B (dư)

swap a ; hoán đổi 2 nửa của A add a,b ; A = A + B

mov p2,a ; chuyển dữ liệu thanh ghi a ra port 2 call delay ; gọi chương trình con delay

mov a,r0 ; chuyển dữ liệu thanh ghi r0 vào thanh ghi a

47

dec a ; giảm a xuống 1 đơn vị

cjne a,#00,loop2 ; so sánh giá trị của a và nhảy đến nhãn loop nếu A#00

jmp main

;===============Trễ khoảng 0.5 giây =================

delay: mov tmod,#01h ; chế độ định thời 16 bit mov r7,#100 ; nạp giá trị 100 cho r7 loop1: mov th0,#high(-5000) ; by cao của -5000

mov tl0,#low(-5000) ; by thấp của -5000 setb tr0 ; bắt đầu định thời wait: jnb tf0,wait ; chờ khi cờ tràn tf0=1

clr tr0 ; bộ định thời ngưng hoạt động

clr tf0 ; xóa cờ tràn tf0

djnz r7,loop1 ; giảm r7 và nhảy khi r7=0 ret

;================

End

2.4. Thử nghiệm và đánh giá kết quả

Sau khi tiến hành lắp mạch, nạp chương trình cho chip và tiến hành chạy thử tôi thấy kết quả thu được phù hợp với mục đích thiết kế, mạch đếm thuận nghịch đúng theo chương trình đã nêu trên.

48

PHẦN III. KẾT LUẬN

Lập trình vi điều khiển là phần việc quan trọng khi chế tạo những máy móc tự động. Đó là những chương trình điều khiển có thể thay thế được rất nhiều mạch logic phức tạp và cho độ chính xác cao.

Khóa luận đã khai thác sử dụng nhiều ứng dụng của các công nghệ hiện đại mang tính thời sự như công nghệ vi điện tử, công nghệ tin học … Cụ thể là:

- Đã tìm hiểu tổng quan về Họ Vi Điều Khiển 8051, đây là một họ vi điều khiển đang được ứng dụng rộng rãi và có xu hướng phát triển mạnh.

- Đã khai thác sử dụng được phần mềm mô phỏng Proteus, hiển thị led 7 thanh và lập trình ASM cho 8051 điều khiển led 7 thanh.

- Biết được trình tự làm một nghiên cứu khoa học.

Đề tài sẽ thực sự có ý nghĩa hơn trong điều khiển đèn tín hiệu giao thông nói riêng và trong lĩnh vực tự động điều khiển nói chung nếu tiếp tục được nghiên cứu bổ xung cả về ý tưởng khoa học và có các thiết kế cụ thể.

Cuối cùng tôi rất mong muốn được sự đóng góp ý kiến, giúp đỡ, cộng tác nghiên cứu để đề tài có ý nghĩa hơn và ứng dụng vào đời sống xã hội.

Một phần của tài liệu Lập trình ASM cho 8051 điều khiển LED 7 thanh (Trang 45 - 51)

Tải bản đầy đủ (PDF)

(51 trang)