Ứng dụng vi điều khiển AT89S52 đếm và đặt trước vòng quay từ 0-99 cho máy quấn băng keo máy biến áp xung

Ứng dụng vi điều khiển AT89S52 đếm và đặt trước vòng quay từ 0-99 cho máy quấn băng keo máy biến áp xung

Tác giả: Trọng Nhân


Bài mô phỏng này được viết ra để ứng dụng cho điều khiển máy quấn băng keo vỏ cho biến áp xung Chiếc máy quấn này chỉ có một motor quay để cố định sản phẩm và 1 trục quấn để cố định cuộn băng keo.

 

Đây là panel điều khiển

Còn đây là sơ đồ mô phỏng Proteus

Như sơ đồ trên máy có 2 phần: phần hiển thị và phần nút nhấn cài đặt
+ Phần hiển thị gồm có:
- 4 led 7 đoạn (1 cặp hiển thị cho số vòng thực tế, 1 cặp hiển thị vòng cài đặt)
- 4 led hiển thị (1 led báo RUN, 2 led báo đang đặt chế độ chạy 1 vòng hoặc 2 vòng, led tùy ý)
+ Phần cài đặt nút nhấn gồm có:
- 4 nút nhấn (1 nút START, 1 nút STOP, 1 nút tăng, 1nút giảm dành cho chế độ tùy ý)
- 1 công tắc 3 nấc (có 3 nấc cho 2 chế độ cố định là 1 vòng hoặc 2 vòng và 1 nấc cho chế độ tùy ý)
Về nguyên tăc hoạt động tóm tắt như sau:
Bình thường vừa mới cấp nguồn cho máy thì:
Hai cặp led 7 đoạn sẽ hiển thị giá trị 00 – 00
Led RUN tắt, motor không quay
Còn khi cho máy hoạt đông sẽ như sau:
Chọn chế độ 1 vòng: bật núm vặn sang nấc “1 vòng” sau đó đèn báo “1 vòng” sáng lên. Nhấn nút START sau đó đèn RUN sáng lên motor quay. Trên cặp led hiển thị “số vòng thực tế” giá trị vòng quay được sẽ tăng lên, khi tăng lên 1 thì motor dừng quay đèn RUN tắt
Chọn chế độ 2 vòng: bật núm vặn sang nấc “2 vòng” sau đó đèn báo “2 vòng” sáng lên. Nhấn nút START sau đó đèn RUN sáng lên motor quay. Trên cặp led hiển thị “số vòng thực tế” giá trị vòng quay được sẽ tăng lên, khi tăng lên 2 thì motor dừng quay đèn RUN tắt
Chọn chế độ tùy ý: bật núm vặn sang nấc “tùy ý” sau đó đèn báo “tùy ý” sáng lên. Chọn giá trị số vòng cho trước từ 00-99 bằng 2 nút tăng hoặc giảm thì cặp led 7 đoạn hiển thị “giá trị cài đặt” sẽ thay đổi theo ý mình . Nhấn nút START sau đó đèn RUN sáng lên motor quay. Trên cặp led hiển thị “số vòng thực tế” giá trị vòng quay được sẽ tăng lên, khi tăng lên giá trị cài đặt trước đó trên cặp led 7 đoạn hiển thị “giá trị cài đặt” thì motor dừng quay đèn RUN tắt.
Khi đang chạy thì nhấn stop đèn RUN tắt motor dừng quay
+ Chương trình điều khiển cho vi xử lí AT89S52:
- Mình sử dụng các chức năng counter0 (T0), ngắt ngoài 0 (INT0), ngắt ngoài 1(INT1) của vi điều khiển

donvi equ 20h
chuc equ 21h
donvi_7seg equ 22h
chuc_7seg equ 23h
donvi2 equ 24h
chuc2 equ 25h
donvi_7seg2 equ 26h
chuc_7seg2 equ 27h
sovong_manu equ 28h
//=====khai bao den hien thi========
den_start bit p2.0
den_tuyy bit p2.1
den_2vong bit p2.2
den_1vong bit P2.3
//====khai bao nut nhan==============
nut_2vong bit p3.0
nut_1vong bit p3.1
nut_tang bit p3.2
nut_giam bit p3.3
nut_start bit p3.6
nut_stop bit p3.7

org 0000h
ljmp main1
org 0003h
ljmp ngat_ngoai0
org 0013h
ljmp ngat_ngoai1
//============================
main1: mov ie,#10000101b
setb it0
setb it1
mov TMOD,#00000101b
setb tr0
mov p0,#00h
mov P2,#00
mov sovong_manu,#00
mov TL0,#00h
mov TH0,#00h
main:

lcall giaima_tp
lcall gaima_7seg
lcall hienthi
//-------------------------------------
//***********khoi kiem tra nut start _ stop
jb nut_start,kt_nutstop
jb den_start,kt_nutstop
mov TL0,#00
setb den_start
kt_nutstop: jb nut_stop,kt_nut2vong
clr den_start
//***********khoi kiem tra nut start _ stop
//-------------------------------------
// ----***khoi kiem tra che do 1 vong _ 2 vong***---
kt_nut2vong:jb nut_2vong,kt_nut1vong
clr den_tuyy
setb den_2vong
clr den_1vong
mov a,TL0
cjne a,#2,main
clr den_start
kt_nut1vong: jb nut_1vong,kt_tuyy
clr den_tuyy
setb den_1vong
clr den_2vong
mov a,TL0
cjne a,#1,main
clr den_start
kt_tuyy:
jnb nut_2vong,main
jnb nut_1vong,main
setb den_tuyy
clr den_2vong
clr den_1vong
mov a,TL0
subb a,sovong_manu
cjne a,#0,main
clr den_start

// ----***khoi kiem tra che do 1 vong _ 2 vong***---
//-------------------------------------
ljmp main
giaima_tp:
mov a,TL0
mov b,#10
div ab
mov donvi,b
mov chuc,a
mov a,sovong_manu
mov b,#10
div ab
mov donvi2,b
mov chuc2,a
ret
gaima_7seg:
mov dptr,#dulieu
mov a,donvi
movc a,@a+dptr
mov donvi_7seg,a
mov a,chuc
movc a,@a+dptr
mov chuc_7seg,a
mov a,donvi2
movc a,@a+dptr
mov donvi_7seg2,a
mov a,chuc2
movc a,@a+dptr
mov chuc_7seg2,a
ret
hienthi:
mov p1,#0ffh
mov p0,donvi_7seg
mov p1,#11111110b
lcall delay
mov p1,#0ffh
mov p0,chuc_7seg
mov p1,#11111101b
lcall delay
mov p1,#0ffh
mov p0,donvi_7seg2
mov p1,#11111011b
lcall delay
mov p1,#0ffh
mov p0,chuc_7seg2
mov p1,#11110111b
lcall delay

ret
delay: mov r7,#255
de1: mov r6,#255
djnz r7,de1
ret

ngat_ngoai0:
inc sovong_manu
mov a,sovong_manu
cjne a,#99,thoat_ngat0
mov sovong_manu,#00
thoat_ngat0:reti
ngat_ngoai1:
dec sovong_manu
mov a,sovong_manu
cjne a,#-1,thoat_ngat0
mov sovong_manu,#00
reti


dulieu:
db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,080h,090h
end

Video mô phỏng

Bình Luận
Cùng danh mục: Cơ bản Vi điều khiển

Chia sẻ đèn giao thông ngã tư PIC16F877A CCS

24/09/2016 16:09:11 / Lượt xem: 2309 / Người đăng: lam3ngon

Chào các bạn trong bài đăng trước mình đã hướng dẫn các bạn về đèn giao thông ngã tư nhưng là chạy 1 cách tư động nên trong bài này hướng dẫn các bạn điều khiển bằng nút nhấn nha !

BÀI 4 : Mô phỏng PIC16F877A (XC8) giao tiếp với nút nhấn

25/05/2016 20:50:22 / Lượt xem: 2525 / Người đăng: lam3ngon

Nói về nút nhấn (button) thì có lẽ chúng ta đã quá quen với nó rồi thậm chí chúng ta chúng ta còn tiếp xúc với nó hằng ngày nữa, ví dụ như : bàn phím máy tính, các thiết bị điều khiển tivi, máy điều hòa…..

Mô phỏng hiệu ứng 8 LED đơn với PIC16F877A XC8 (P2)

18/05/2016 15:37:21 / Lượt xem: 2044 / Người đăng: lam3ngon

Chào các bạn trong bài đăng này mình sẽ hướng dẫn các bạn tăng mức độ khó của PORJECT lên khó hơn 1 tý so với bài đăng trước nếu như bài đăng trước chúng ta chỉ dùng lại ở việc chớp tắt LED và sáng xen kẻ thì trong bài đăng này mình sẽ giới thiệu với các bạn về Đuổi LED (Chaser LED), sáng dồn, dịch trái, dịch phải, sáng dần, tắt dần…

Giao tiếp SPI và mô phỏng trên AVR

18/05/2016 13:20:22 / Lượt xem: 2348 / Người đăng: biendt

Bài này giúp các bạn biết cách sử dụng cách truyền thông nối tiếp đồng bộ SPI. Công cụ chính cũng là 2 bộ phần mềm AVRStudio (+gcc-avr) và Proteus. Thực chất ngôn ngữ lập trình vẫn là gcc-avr nhưng tôi không dùng Programmer Notepad để biết code như thông thường, thay vào đó tôi dùng AVRStudio làm trình biên tập,

Bài 2 : Mô phỏng hiệu ứng 8 LED đơn với PIC16F877A XC8 (P1)

13/05/2016 14:48:16 / Lượt xem: 1648 / Người đăng: lam3ngon

Trong bài đăng này mình sẽ hướng dẫn các bạn chớp tắt nhiều LED cùng lúc cũng như 1 số hiệu ứng đơn giản như : Xen kẻ, nữa sáng nữa tắt,sáng hết tắt hết …. Để tạo được nhứng hiệu ứng đơn giản như vậy thì mình sẽ giới thiệu với các bạn bảng mã HEX để giúp chúng ta dễ dàng tạo ra nhưng hiệu ứng đơn giản trên.

Quảng cáo - Tài trợ

 -----------------------------

Hỗ trợ trực tuyến