Lập trình cho các cổng của vi điều khiển làm chức năng đầu ra

Một phần của tài liệu Bài giảng Vi xử lý 1 - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 137 - 140)

6.5. Lập trình điều khiển cổng làm chức năng vào – ra

6.5.2. Lập trình cho các cổng của vi điều khiển làm chức năng đầu ra

- Để chọn các cổng hoặc bit một chân nào đó của VĐK ta chỉ việc xác định địa chỉ cần xuất dữ liệu và mức tích cực của đối tượng điều khiển đó.

- Với góc độ học tập ở đây sẽ trình bày các dạng yêu cầu lập trình cho VĐK xuất dữ liệu ra cổng để điều khiển led đơn. Mỗi đầu ra tích cực mức cao và được nối với một led đơn.

Ví dụ1: Viết chương trình cho VĐK 89C51 điều khiển 8 led đơn nối với cổng P2 chớp tắt, cho đầu ra tích cực ở mức cao, tần số thạch anh sử dụng là 12 MHZ.

+ Chú ý đối với chương trình con tạo trễ

Ta đã biết phạm vi tần số hoạt động của vi điều khiển từ (0 – 24) MHZ Một chu kỳ máy tương ứng với 12 dao động

Thời gian tối thiểu số lệnh trong 1 chu kỳ máy =

121 fthạch anh

Với tần số thạch anh ta sử dụng loại 12 MHZ ta sẽ có:

1s =121 .12 MHZ =

121 .12.106 = 106 chu kỳ máy

Với mỗi chu kỳ máy tương đương với một lệnh thì trong 1 giây vi điều khiển có thể thực hiện được 1 triệu lệnh. Vì vậy để tạo ra được thời gian trễ 1 giây cần thực hiện

được số đếm tương ứng là 1 triệu Bước 1: Vẽ sơ đồ nguyên lý.

- Dùng phần mềm Proteus để vẽ sơ đồ sau:

Hình 6.5 Sơ đồ nguyên lý mạch điều khiển 8 Led đơn

XTAL2 18

XTAL1 19

30 ALE 31 EA 29 PSEN

9 RST

P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32

1 P1.0 2 P1.1 3 P1.2 4 P1.3 5 P1.4 6 P1.5 7 P1.6 8 P1.7

P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/W RP3.5/T1 1615 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27

U1

AT89C51

D1 R3100

D2 R4100

D3 R5100

D4 R6100

D5 R7100

D6 R8100

D7 R9100

D8 R10100

12MHZ

R1100

R210k

C11u +5V

Reset

+5V

20 40

+5V

1 2 12

Tmáy

Bước 2: Vẽ lưu đồ giải thuật ( nếu chương trình tương đối phức tạp ).

- Lưu đồ giả thuật có thể tham khảo như sau:

Chương trình chính Chương trình con tạo trễ

Hình 6.6 Lưu đồ giải thuật điều khiển led chớp tắt Bước 3: Soạn thảo chương trình trên trình biên dịch:

- Có nhiều phần mềm lập trình hợp ngữ cho VĐK 8051 ở đây ta sử dụng phần mềm Pinnacle.

- Khởi động phần mềm, mở bài mới và soạn thảo vào chương trình tham khảo như sau:

;chuong trinh dieu khien 8 led don noi voi P2 chop tat lien tuc

;--- org 0 ;dia chi bat dau t chuong trinh

start:

mov p2,#00000000b ;tat cac led call tao_tre

mov p2,#11111111b ;sang cac led call tao_tre

jmp start ;lap lai tu dau

;--- tao_tre:

mov r6,#255 lap:

mov r7,#255 djnz r7,$

djnz r6,lap ret end

Tắt 8 led

Tạo trễ Sáng 8 led

Tạo trễ

KÕt thóc Bắt đầu

Đặt biến thứ 1

Giảm biến 2 Biến 2 > 0 Biến 2 = 0 Bắt đầu

Đặt biến thứ 2

Biến 1 > 0

Biến 1 = 0 KÕt thóc

Bước 4: Biên dịch, sửa lỗi nếu mắc phải.

- Sau khi soạn thảo song ta lưu lại bài viết rồi tiến hành biên dịch để chuyển file nguồn vừa soạn thảo sang mã máy bằng cách chọn: CTRL + F2.

- Nếu máy tính báo lỗi tức là chương trình ta vừa viết mắc phải lỗi cú pháp. Nguyên nhân gây ra lỗi này chủ yếu là do đánh máy, viết câu lệnh, nhãn, chú thích.. không

đúng. Để sửa lỗi này ta nháy đúp vào thông báo lỗi đó để sửa với nguyên tắc sửa từ lỗi từ trên xuống. Khi máy tính không còn thông báo lỗi nữa thì lúc đó chương trình mới có thể chạy ( vì có thể mắc phải lỗi giải thuật - lỗi này máy tính không biết được ) Bước 5: Mô phỏng hoạt động của chương trình vừa viết.

- Để mô phỏng chương trình vừa viết ta có thể mô phỏng ngay trên Pinnacle hoặc phần mÒm Proteus.

Lưu ý: Trình tự các bước trên được áp dụng cho một dự án, một bài thực hành hay quá

trình tự luyện tập.

Ví dụ 2: Viết chương trình cho VĐK điều khiển 8 led đơn nối với Port 2 có một điểm sáng chạy

Bước 1: Vẽ sơ đồ nguyên lý.

- Dùng phần mềm Proteus để vẽ sơ nguyên lý như ví dụ 1.

Bước 2: Vẽ lưu đồ giải thuật.

- Lưu đồ giả thuật có thể tham khảo như sau:

Hình 6.7 Lưu đồ giải thuật

điều khiển led sáng chạy

Bắt đầu

- Tắt các led đầu ra - Xoá thanh ghi A - Đặt cờ C lên 1

KiÓm tra cê C

KÕt thóc - Xoay thanh ghi A qua cê C

- §­a A ra Port - Gọi trễ

C=0

C=1

Bước 3: Soạn thảo chương trình trên trình biên dịch:

;chuong trinh dieu khien 8 led don noi voi P2 co mot diem sang chay

;--- org 0 ;dia chi bat dau viet chuong trinh

start:

mov p2,#00000000b ;tat cac led clr A ;xoa thanh ghi A

setb C ;dat co C=1 Lap_xoay:

rlc a ;xoay trai A qua co C mov p2,a ;dua A ra P2 call tao_tre

jnc Lap_xoay ;nhay den lap xoay neu co C=0 jmp start ;lap lai tu dau

;---

;cac chuong trinh con tao_tre:

mov r6,#255 lap:

mov r7,#255

djnz r7,$ ;$ la nhan cua chinh no djnz r6,lap

ret

end ;ket thuc ct hop ngu Bước 4: Biên dịch, sửa lỗi nếu mắc phải.

Sau khi soạn thảo song ta lưu lại bài viết rồi tiến hành biên dịch để chuyển file nguồn vừa soạn thảo sang mã máy bằng cách chọn: CTRL + F2.

Bước 5: Mô phỏng hoạt động của chương trình vừa viết.

Một phần của tài liệu Bài giảng Vi xử lý 1 - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 137 - 140)

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

(210 trang)