1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập kỹ thuật vi điều khiển potx

21 980 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 0,9 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Ghép nối vi điều khiển với led đơn:+ Kết nối trực tiếp LED được kết nối trực tiếp với AT89C51 theo hai chế độ là hút dòng và xả dòng.. Ở chế độ xả dòng thì LED sẽ không sáng được hết c

Trang 1

-Ghép nối với bàn phím:

Trang 2

- Ghép nối vi điều khiển với led đơn:

+ Kết nối trực tiếp

LED được kết nối trực tiếp với AT89C51 theo hai chế độ là hút dòng và xả dòng Nguyên lý kết nối như sau :

Trang 3

Ở chế độ xả dòng thì LED sẽ không sáng được hết công suất vì đầu ra dòng của chân vi xử lý thường thấp

Ở chế độ hút dòng thì LED sẽ sáng được hết công suất nhưng sẽ làm hại vi xử lý nếu LED có công suất lớn vì dòng qua vi xử lý quá mức cho phép Trong các mạch ghép nối với LED có dòng tiêu thụ thấp thì người

ta sẽ dùng kiểu ghép hút dòng này.

Trang 4

+ Kết nối thông qua IC đệm

Đối với kiểu này thì LED được kết nối thông qua các

IC đệm như transitor, các IC đệm dòng chuyên dụng như ULN2803 Đối với kiểu này thì LED được mắc như sau :

Trang 5

Đối với kiểu ghép này đảm bảo cho vi xử lý không

bị quá tải và cho LED sáng nhất Với kiểu ghép này thì có thể chạy được LED công suất lớn Ngoài

transitor còn có các loại IC đệm dòng tương đối như (500mA ULN2803)

Trang 6

-Ghép nối vi điều khiển với led 7 đoạn:

Để ghép nối với LED7 có thể có nhiều

cách, nhưng phải đảm bảo sao có thể điều

khiển tắt mở riêng từng LED đơn trong đó để tạo ra các số và các ký tự mong muốn.Các

ICs điều khiển đều khó khả năng sinh dòng

kém tức là dòng đầu ra của các chân ICs nhỏ hơn khả năng nuốt dòng Do vậy, nếu ghép nối trực tiếp các net với các chân cổng IC thì loại Anode chung là thích hợp hơn cả Cần

phải chú ý dòng dồn về ICs quá mức chịu

được thì cũng không được vì làm nóng và dei ICs điều khiển

Trang 7

* 2 cách ghép nối thường dùng:

+ Cách 1 : Dùng trực tiếp các chân điều khiển (vi

xử lý)

Trang 8

Đối với cách này thì nhìn thì rất tốn chân của vi xử lý Và dòng của LED sẽ dồn tất cả về vi xử lý Nếu một hệ thống lớn thì cách này không ổn vì ảnh hưởng đến vi xử lý và nhiều

dòng dồn về vi xử lý sẽ làm vi xử lý nóng và dẫn tới chết

( chúng ta tưởng tượng xem nếu mà hệ thống nhiều phần điều khiển từ các chân vi xử lý mà tất cả các tải điều khiển dồn trực tiếp dòng về vi xử lý thì lúc đó dòng trong 1 thời điểm khá lớn vượt quá ngưỡng cho phép của vi xử lý.

Dòng mà vi xử lý chịu đựng được cũng khá nhỏ đâu dưới 100mA ) Các này chỉ dùng được hệ thống điều khiển ít, mạch dùng vi xử lý khá đơn giản như hiện thị LED, đếm số từ 0 đến

9 chả hạn

Trang 9

+ Cách 2 : Dùng IC giải mã BCD sang LED 7 thanh

Trang 10

Sử dụng IC giải mã 7447 để giả mã từ mã BCD sang mã LED7 Đối với cách này thì trông rất ổn Vừa tiếp kiệm

được chân vi xử lý và tránh được dòng dồn về vi xử lý

(dòng ở đây được dồn về 7447) Đây là cách mà người thiết kế thường dùng trong các hệ thống cần đến hiện thị Thông thường các thiết kế, LED 7 thanh được dùng để hiện thị các giá trị các giá trị số từ 0 đến 9 và đôi khi cần phải hiện thị các kí tự đơn giản như A đến F trong hệ

thống để báo trạng thái của hệ thống Các giá trị hiện thị bao gồm nhiều chữ số tức là chúng ta phải dùng đến

nhiều LED7 ghép lại thì mới hiện thị được nhiều số Ví dụ như muốn hiện thị số 123 chả hạn thì chúng ta phải dùng đến 3 LED 7 thanh ghép lại.

Trang 11

ORG 000H ; khai bao dia chi de bat

dau chuong trinh tren Rom

Tudau:

Mov P1,#1B ;==>>lam 1 led noi P1 sang

LCall Delay ;===>>>> goi chuong

trinh con Delay

Mov P1,#0 ;===>>>> lam 1 led

Trang 12

Delay: ;>>>>chương trình con tạo độ trễ 1s PUSH 00H

Trang 13

;/////>>>>>Chữ “HELLO” chạy từ phải sang trái:

LCALL DISP7SEGMUL ;hiển thị chuỗi lý tự

DJNZ r0,STATICDISP ;giảm biến lặp

INC DPTR ;dịch chuỗi đi 1 mã ký tự

Mov A,DPL

CJNE A,#LOW(CODEDISP+16),Mp1 ; kiểm tra hiển thị xong

chuỗi

SJMP MAIN

Trang 14

Mov A,@A+DPTR ;lấy mã hiện thị

Mov P0,A ;Xuất mã hiển thị

MOV P1, R0 ;xuất mã quét

LCALL DELAYLED

Trang 15

MOV P1,#0FFH

INC R1 ;lấy mã hiển thị kế tiếp

MOV A,R0 ;Lấy mã quyets kế tiếp

RRC A ;quay phải A qua cờ C

CODEDISP: ;vùng chứa mã chữ hiển thị

DB 089H,086H,0A7H,0A7H,0A0H ;mã chuỗi HELLO end

Trang 16

 ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom

Trang 17

Xuat: ;**>>>>>>>>>>>>>>>>>>> lam led P0 sang

<<<<<<<<<<<<<<<<<<<<<<<<<<

Mov P0,#00000001B ;===>>>> lam led 1 sang LCall Delay ;===>>>>goi chuong trinh con Delay Mov P0,#00000011B ;===>>>> lam led 2 sang LCall Delay

Mov P0,#00000111B ;===>>>> lam led 3 sang LCall Delay

Mov P0,#00001111B ;===>>>> lam led 4 sang LCall Delay

Mov P0,#00011111B ;===>>>> lam led 5 sang LCall Delay

Mov P0,#00111111B ;===>>>> lam led 6 sang LCall Delay

Mov P0,#01111111B ;===>>>> lam led 7 sang LCall Delay

Mov P0,#11111111B ;===>>>> lam led 8 sang LCall Delay

Trang 18

;**>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>lam led P1 sang

Trang 19

:>>>>>>>>>>>>>>>>>>>>>>>>>lam led p1 tat dan

Mov P1,#01111111B ;===>>>> lam led 1 sang LCall Delay

Mov P1,#00111111B ;===>>>> lam led 2 sang LCall Delay

Mov P1,#00011111B ;===>>>> lam led 3 sang LCall Delay

Mov P1,#00001111B ;===>>>> lam led 4 sang LCall Delay

Mov P1,#00000111B ;===>>>> lam led 5 sang LCall Delay

Mov P1,#00000011B ;===>>>> lam led 6 sang LCall Delay

Mov P1,#00000001B ;===>>>> lam led 7 sang LCall Delay

Mov P1,#00000000B ;===>>>> lam led 8 sang

Trang 20

:>>>>>>>>>>>>>>>>Lam led p0 tat dan

Mov P1,#01111111B ;===>>>> lam led 1 sang

Mov P1,#00000000B ;===>>>> lam led 8 sang

Ljmp Xuat ; ===>>>> nhay ve thuc hien tu dau

Delay:

Mov R7,#0FFH ;===>>>> gan R7=#0FFH, 1 chu ki may

Kt2: Mov R6,#0FFH ;===>>>> gan R6=#0FFH, 1 chu ki may

Kt1: Djnz R6,Kt1 ;===>>>> giam R6 xuong 1, R6 khac 0-> giam tiep Djnz R7,Kt2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2 Ret ;===>>>> ket thuc chuong trinh con

End ;>>>>>>>kết thúc trương trình<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Trang 21

Chú thích: Lệnh Kt1: Djnz R6,Kt1

Lệnh Djnz R6,Kt1 này giảm R6 đi một đơn vị, nếu R6 chưa bằng 0, chương trình lại nhảy về nhãn Kt1, mà nhãn Kt1 lại gọi lại lệnh này,

do đó toàn câu lệnh thực hiện giảm R6 cho đến khi R6

về 0 thì thực hiện lệnh kế tiếp Câu lệnh này thực hiện, không ảnh hưởng hay thay đổi giá trị của các ô nhớ

khác, vì vậy ngõ ra từ các Port cũng không thay đổi

trạng thái.

Ngày đăng: 12/08/2014, 21:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w