cách ứng dụng vi điều khiển - Pdf 11

Rất vui khi thấy Bạn
vào xem
Phần dẫn nhập.

Có một Bạn viết e-mail cho tôi với câu hỏi như sau:
Kinh chao thay Hung !
Em la giao sinh moi ra truong, hien dang di day hoc cho cac em hoc sinh Tieu
hoc, trong qua trinh day hoc em rat thich cho cac em choi tro choi do em co
su dung mach nhan chuong uu tien nhung mach chuong hien tai chi co the su
dung duoc cho toi da la 4 doi nhung lop hoc cua em lai can den 8 doi hoac
nhieu hon nua. Thay co the tang em chuong trình hoac huong dan em cach
viet chuong trinh nay duoc khong ? Em dang su dung bi vi dieu khien
AT89C2951. Cam on thay rat nhieu !Đặc tính của một mạch điện “Đố vui để học”, là:

* Theo giả định của tôi là: Trên mỗi bàn có một nút nhấn (có thể mắc song
song 3 nút nhấn cho 3 người cùng bàn).

* Khi nghe xong câu hỏi thì người điều khiển chương trình sẽ nhấn nút “Bắt
đầu”.

* Lúc này, các em sẽ suy nghĩ và khi ai có câu trả lời thì nhấn nút “Trả lời”.

* Ở đây có 8 nút nhấn chính. Khi một nút đã nhấn thì tất cả các nút còn lại sẽ
không còn tác dụng.


báo nguồn. mạch làm việc với mức nguồn ngả vào là 12V. Nguồn 12V còn
được dùng để cấp điện cho các relay. Chúng ta dùng 3 relay và dùng các tiếp
điểm lá kim K1, K2, K3 của các relay này để điều khiển các bóng đèn điện
hay chuông báo.

* Phần mạch Reset. Tác dụng Reset khi chân số 1 ở mức áp cao. Khi mạch
được cấp nguồn, tụ C5 (10uF) sẽ nạp điện, dòng nạo chảy qua điện trở R1
(10K), nó kéo chân số 1 lên mức áp cao và chương trình sẽ quay về thanh
nhớ 0000h (đó là vị trí khỏi đầu của tác dụng reset). Chỉ sau một lúc tụ C5 sẽ
nạp đầy mức nguồn, chân 1 được trả về mức áp thấp và ic vi điều khiển bắt
đầu chạy chương trình có trong bộ nhớ EEP-ROM. Trong mạch chúng ta
dùng nút nhấn reset để đưa chương trình trở lại trạng thái khởi đầu.

* Phần định tần cho mạch dao động tạo xung nhịp. Xung nhịp được định tần
theo thạch anh gắn trên chân 4 và chân 5. Với thạch anh 12MHz, tần số xung
nhịp sẽ là 1MHz và chu kỳ lệnh sẽ là 1us. Các tụ nhỏ C6, C7 có tác dụng bù
nhiệt ổn tần.

* 8 Nút nhấn gắn trên port 1 và chúng ta dùng chân p3.0 điều khiển relay 3,
chân p3.1 điều khiển relay 2 và chân p3.2 điều khiển relay 1. Cách viết chương trình nguồn:

org 0000h

mov p3, #00000001b ; Đặt 7 chân của p3 xuống mức áp thấp, chân
p3.0 ở mức 1, relay 3 đóng.
call del ; Chờ một lúc cho ổn định.


q6: ; Viết cho phím S6
jb p1.5, q7
call del
jb p1.5, $
jmp ctr_1

q7: ; Viết cho phím S7
jb p1.6, q8
call del
jb p1.6, $
jmp ctr_1

q8: ; Viết cho phím S8
jb p1.7, q1
call del
jb p1.7, $
jmp ctr_1

ctr_1:
mov p3, #00000110b ; Tắt relay 3, mở relay 2 và mở relay 1
call delay ; Chương trình làm chậm
mov p3, #00000100b ; Tắt relay 3, tắt relay 2 và mở relay 1
call delay ; Chương trình làm chậm
jmp ctr_1 ; Tiếp tục chương trình 1

del: ; Chương trình trể dùng tánh hiện tượng
rung phím.
mov r7, #30
v6: mov r6, #100
djnz r6, $

là .hex và dùng hộp nạp cho nạp vào ic AT89C2051 cũng được).
:1000000075B0011200742090091200742090FD0256
:1000100000662091091200742091FD020066209272
:10002000091200742092FD020066209309120074E8
:100030002093FD0200662094091200742094FD02B2
:1000400000662095091200742095FD020066209636
:10005000091200742096FD0200662097A912007410
:100060002097FD02006675B00612007D75B004127F
:10007000007D80F27F1E7E64DEFEDFFA227DFA11B3
:0400800074DDFC220D
:00000001FF
Về cách dùng hộp nạp các file .hex cho các bộ nhớ EEP-
ROM trong các ic vi điều khiển, Bạn tham khảo bài viết
sau: />

Phân tích các câu lệnh trong chường trình nguồn:

Mới vào Bạn phải dùng câu lệnh:

mov p3, #00000001b

Chúng ta đặt 8 nút nhấn thường hở trên port1. Vậy trạng thái áp cao trên các
chân của port1 là trạng thái chờ.

Để bảo đảm là bình thường lúc ở trạng thái chờ các chân của port1 đều ở
mức áp cao, chúng ta cho treo áp các chân của port1 bằng các điện trở 10K.

Vậy, mỗi khi nút reset đã được nhấn, chương trình khởi đầu từ thanh nhớ
0000h, sau khi qua các câu lệnh khởi đầu (phần trình bày trên), nó vào
chương trình dò phím. Ở đây chúng ta dùng lệnh nhẩy theo bit cao trên các
chân của port1. Các câu lệnh được viết như sau:

q1: ; Viết cho phím S1
jb p1.0, q2 ; Chờ phím S1 nhấn xuống, chưa nhấn thì qua kiểm tra phím S2
call del ; tránh hiện tượng rung phím làm kết quả sai
jb p1.0, $ ; kiểm tra lần nữa phím S1cho chắc chắn, nó phải ở
mức áp thấp.
jmp ctr_1 ; Vào chương trình điều khiển các đèn báoGiải thích các câu lệnh trên:

q1:
; Đây là tên nhãn của phím S1

jb p1.0, q2
; Nếu phím S1 trên chân p1.0 ở mức áp cao (chưa nhấn) thì nhẩy qua tên
nhãn q2 dò phím S2.


call delay ; Chương trình làm chậm
mov p3, #00000100b ; Tắt relay 3, tắt relay 2 và mở relay 1
call delay ; Chương trình làm chậm
jmp ctr_1 ; Tiếp tục chương trình 1

Bạn dùng câu lệnh:

mov p3, #00000110b
; Câu lệnh này đặt chân p3.0 ở mức áp thấp, các chân p3.1, p3.2 ở mức áp
cao. Vậy tắt đèn ở tiếp điểm lá kim K3, cho sáng đèn ở tiếp điểm lá kim K1
và K2.

call delay
; Cho gọi chương trình làm chậm.

mov p3, #00000100b
; Câu lệnh này đặt chân p3.0 ở mức áp thấp, chân p3.1 ở mức áp thấp , và
p3.2 ở mức áp cao. Vậy tắt đèn ở tiếp điểm lá kim K3 và K2, cho sáng đèn ở
tiếp điểm lá kim K1.

call delay
; Cho gọi chương trình làm chậm.

jmp ctr_1
; Tức cho quay lại tiếp tục thực hiện các câu lệnh trên. Kết quả, Bạn thấy:

Đèn trên tiếp điểm K3 đã tắt
Đèn trên tiếp điểm K1 sáng
Đèn trên tiếp điểm K2 sẽ nhấp nháy.



Chúng ta dùng các chân còn lại của port 2 để điều khiển các relay (relay 1 và
relay 2), các tiếp điểm lá kim của các realy dùng đóng mở các đèn, hay các
chuông báo.

Tóm lại:

Sau khi cho khởi động với nút Reset thì bảng đèn sẽ chuyển qua trạng thái
chờ để hiển thị con số thứ tự của phím nhấn. Lúc này Bạn có thể cho đèn báo
nhấp nháy để chỉ là đang ở trạng thái chờ. Khi có một phím nhấn xuống, trên
bảng đèn sẽ hiện ra con số thứ tự của phím đã được nhấn, đèn nhấp nháy sẽ
chuyển qua sáng liên tục, mạch chuông sẽ báo nhịp và bảng đèn Led 7 đoạn
chuyển qua làm công việc đếm thời gian.

Khi nào trả lời xong, muốn trở lại trạng thái khởi đầu thì nhấn nút Start.

Trên đây là một mạch điện gợi ý mà tôi phát thảo ra để các Bạn góp ý và nếu
thấy thích thì thử viết chương trình nguồn cho mạch điện này. Khi có thời gian
rảnh tôi sẽ trở lại chuyên đề này. Chào Bạn nhé!
Tạm kết.

Bạn biết môn điện tử phát triển với tốc độ phi mã, "Nhật tân, Nhật tân, Nhật
Nhật tân", nghĩa là mỗi ngày mỗi mới. Cho đến hôm nay thì các kiểu mạch
điện tử ráp theo cách xưa rất khó đáp ứng được với cách yêu cầu thực tế
luôn cần phải nâng cấp, do đó Bạn phải làm quen với các kiểu mạch điện vi
điều khiển, đặc điểm của loại mạch dùng ic vi điểu khiển là cấu trúc phần
cứng đơn giản, ít thay đổi, nhưng công năng của nó có thể thay đổi dễ dàng,


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status