Ứ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


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: Vi điều khiển - Lập trình

Cơ sở công suất và năng lượng tiêu thụ trên MCU

29/07/2023 21:21:12 / Lượt xem: 387 / Người đăng: biendt

Công suất và năng lượng tiêu thụ của MCU ảnh hưởng đến các quyết định thiết kế về nguồn, thời gian sử dụng pin, và kể cả nhiệt độ hoạt động trong các ứng dụng nhúng. Nhất là khi đối mặt với các ứng dụng được cung cấp năng lượng từ nguồn pin,

Giải thích cơ chế các lệnh SET BIT, CLEAR BIT và TOGGLE trong lập trình vi điều khiển

15/09/2022 08:10:32 / Lượt xem: 970 / Người đăng: biendt

Giải thích các lệnh SET BIT, CLEAR BIT và TOGGLE thường được dùng trong lập trình vi điều khiển. Lệnh SET BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó có giá trị logic 1 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh CLEAR BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh TOGGLE BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 nếu trước đó nó có giá trị logic 1 và ngược lại, đồng thời không làm thay đổi giá trị các bit còn lại của thanh ghi đó.

Chia sẻ chương trình đọc ghi thẻ SD bằng MSP430 G2553 phục vụ lưu trữ

17/08/2022 06:20:30 / Lượt xem: 713 / Người đăng: biendt

Chương trình sử dụng vi điều khiển chính là MSP430G2553 (có thể sử dụng vi điều khiển khác cùng họ MSP430) kết nối với module đọc/ghi thẻ nhớ SD card là MODULE MICRO SD CARD để lưu trữ dữ liệu, đọc dữ liệu…Chuẩn bị : 1 KIT MSP430G2553, 1 Module SD Card, 1 Thẻ nhớ SD card : Micro SD <= 2GB hoặc Micro SDHC <= 32GB

Hướng dẫn thiết kế mạch vi điều khiển đơn giản

07/06/2022 06:18:47 / Lượt xem: 780 / Người đăng: biendt

Thiết kế mạch cho vi điều khiển là một việc làm không hề đơn giản đối với những người mới bắt đầu. Có thể bạn phải đọc hàng trăm trang datasheet và tài liệu thiết kế tham khảo, các sơ đồ mạch thiết kế mẫu, các chỉ dẫn layout để có thể hoàn thiện được thiết kế của mình một cách tốt nhất. Hướng dẫn này sẽ chỉ ra những điểm chung mà các bạn cần lưu ý khi thiết kế mạch vi điều khiển

Thiết kế mạch chống nhiễu cho Vi điều khiển (Chíp lập trình hoặc IC)

05/05/2022 06:05:35 / Lượt xem: 1961 / Người đăng: biendt

Có mấy phương pháp cho mạch chống nhiễu vi điều khiển : .Sử dụng cách ly quang: để cách ly giữa tín hiệu điều khiển từ VĐK xuất ra và mạch công suất 220v.Sử dụng mạch snubber khi điều khiển tải bằng relay.Sử dụng linh kiện điện tử chính hãng...Sử dụng mạch lọc nguồn AC 220v trước khi cấp cho bộ nguồn 5V nuôi VĐK...Chống nhiễu khi viết code