Giới thiệu về phương pháp hiển thị dữ liệu trên Led 7 đoạn theo phương pháp quét

Một phần của tài liệu Giáo trình Thực hành vi xử lý - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 105 - 110)

Bài 5: Lập trình 8051 ghép nối với các bộ chỉ thị

2. Lập trình ghép nối Led 7 đoạn

2.1. Giới thiệu về phương pháp hiển thị dữ liệu trên Led 7 đoạn theo phương pháp quét

Có nhiều linh kiện làm nhiệm vụ hiển thị như LCD, led đơn, led 7 đoạn v.v. Led 7 đoạn đang được sử dụng phổ biến do hiển thị hiệu quả số đếm, một số ký tự, chữ cái và có tuổi thọ cao, giá thành thấp.

Để cho VĐK hiển thị dữ liệu trên led 7 đoạn ta có nhiều phương pháp và sơ đồ khác nhau (tuỳ vào số lượng led, kích thước led, loại led Anode chung hay Cathode chung...).

Phương pháp quét led sử dụng hiện tượng lưu ảnh và độ nhạy kém của mắt. ở phương pháp này tại một thời điểm chỉ có một led sáng. Thời gian mỗi led sáng khoảng từ 50 đến 100uS. Phương pháp này hiệu quả với số lượng led không quá

lớn. Sơ đồ giao tiếp VĐK 8051 với 2 led 7 đoạn theo phương pháp quét.

Các đoạn tương ứng của các led lần lượt nối với nhau. Hai transistor PNP làm nhiệm vụ cấp nguồn cho LED. Như vậy dữ liệu đưa ra các đoạn và tín hiệu quét led đều tích cực mức thấp.

Ta lập được bảng trạng thái sau:

thËp Sè ph©n

Mã 7 đoạn ( dạng nhị phân ) Mã 7 đoạn (dạng hexa) h g f e d c b a

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

p0.0 = a a

p0.6 = g g

8051

p2.1 p2.0

+Vcc

Port0

Port2

L1 L2

Để định nghĩa mã 7 đoạn trong ROM trong của VĐK, ta sử dụng chỉ dẫn DB để

định nghĩa các byte mã 7 đoạn lưu trong bộ nhớ ROM của VĐK và thường để cuối của chương trình.

Ví dụ: khai báo đoạn mã led 7 đoạn

Ma_7doan: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H Giải mã led 7 đoạn là quá trình chuyển số thập phân cần hiển thị sang mã led 7

đoạn trước khi đưa ra led 7 đoạn. Ta thường sử dụng lệnh MOVC A,@A+DPTR hoặc MOVC A, @A+PC để giải mã. Với DPTR chứa địa chỉ đầu tiên của bảng mã ( mov dptr,#ma_7doan), A chứa số thập phân cần chuyển mã.

Ví dụ 1: Viết chương trình cho VĐK họ 8051 hiển thị giá trị số từ 00-90 trên 2 led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quét led.

Phân tích yêu cầu:

Để chỉ thị được số đếm 0-90 ta sẽ phải sử dụng 2 led 7 đoạn. Có thể sử dụng led anode chung hoặc cathode chung, trong ví dụ này ta sử dụng led 7 đoạn có anode chung. Sử dụng transistor thuận để điều khiển chọn led 7 đoạn. Trước khi đưa ra hiển thị, số đếm đó cần được tách ra thành hàng chục và hàng đơn vị bằng phép chia ( DIV) sau đó phải được chuyển sang mã 7 đoạn.

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

p0.0 = a

p0.6 = g

8051

p2.1 p2.0 + 5V

VĐK chọn: AT89C51

Led 7 đoạn: loại Anode chung

Các transistor chon: PNP (ở đây ta nên thay bằng cổng NOT để chương trình mô

phỏng không bị chậm).

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

- Lưu đồ giả thuật :

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

;chuong trinh viet cho VDK 8051 hien thi so tu 0 den 90 tren led hai 7 doan

;--- org 0

main:

mov R0,#0 ;bien dem bat dau =0 lap:

call tach_giai_ma

Bắt đầu

Biến đếm bắt đầu =0

So sánh số

đếm với 91

≥ 91

<91 Tách giải mã hàng chục,

hàng đơn vị Hiển thị Tăng biến đếm

call hien_thi inc r0

cjne R0,#91,lap ;so sanh so dem dem duoc voi 91 jmp main

;---

;chuong trinh con tach va giai ma tach_giai_ma:

mov dptr,#bang_ma ;nap dia chi ma 7 doan vao dptr mov a,r0 ;nap so dem can tach vao A

mov b,#10 ;nap B=10 ( de chia A cho 10) vi co hai so dem div ab ;chia A cho B

movc a,@a+dptr ;lay ma 7 doan cua hang chuc

mov 30h,a ;cat ma 7 doan hang chuc vao ram nhap tai dia chi 30H mov a,b ;chuyen so du( la hang don vi) sang A

movc a,@a+dptr ;lay ma 7 doan hang don vi

mov 31h,a ;cat ma 7 doan hang don vi vao ram nhap ret

;---

;chuong trinh con hien thi hien_thi:

mov r6,#200 ; bien dem tao so vong lap lap2:

mov p0,31h ;hien thi hang don vi mov p2,#11111110b ;chon led don vi sang

call delay ;goi tre de mat quan sat duoc mov p2,#0ffh ;chong lem

mov p0,30h ;hien thi hang chuc

mov p2,#11111101b ;chon led hang chuc sang call delay ;goi tre de mat quan sat duoc mov p2,#0ffh ;chong lem

djnz r6,lap2 ret

;---

;chuong trinh con tao tre de mat quan sat duoc

delay: ;tao tre khoang 100ms mov r7,#50

djnz r7,$

ret ;---

;dinh nghia ma 7 doan bang_ma:

db 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h end

Bước 4: Hợp dịch, sửa lỗi

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

Bước 5: Mô phỏng hoạt động của chương trình Bài tập:

Bài tập 1: Viết chương trình cho VĐK họ 8051 đếm xuống từ 60-10 hiển thị giá

trị số đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quÐt led.

Bài tập 2: Viết chương trình cho VĐK họ 8051 đếm lên 0-245 hiển thị giá trị số

đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quÐt led.

Bài tập 2: Viết chương trình cho VĐK họ 8051 đếm lên 0-345 hiển thị giá trị số

đếm trên led 7 đoạn. Biết Port0 nối với các đoạn a,b,c..h của led 7 đoạn, Port 2 quÐt led.

Một phần của tài liệu Giáo trình Thực hành vi xử lý - ĐH Sư Phạm Kỹ Thuật Nam Định (Trang 105 - 110)

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

(207 trang)