1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo tiểu luận môn giao tiếp Điều khiển thiết bị ngoại vi Đề tài Điều khiển 3 thiết bị làm việc tuần tự

71 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Điều khiển 3 thiết bị làm việc tuần tự
Tác giả Trương Hứa Hải Biên, Nguyễn Quang Đài, Hoàng Ngọc Anh
Người hướng dẫn Phạm Quang Trí
Trường học Trường Đại học Công nghiệp Thành phố Hồ Chí Minh
Chuyên ngành Giao tiếp Điều khiển Thiết bị Ngoại vi
Thể loại tiểu luận
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 71
Dung lượng 500,48 KB

Nội dung

BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ ĐIỆN TỬ BÁO CÁO TIỂU LUẬN MÔN: GIAO TIẾP ĐIỀU KHIỂN THIẾT BỊ NGOẠI VI Giảng viên: Phạm Quang Trí Lớp:DTVT1

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH

KHOA CÔNG NGHỆ ĐIỆN TỬ

BÁO CÁO TIỂU LUẬN

MÔN: GIAO TIẾP ĐIỀU KHIỂN THIẾT BỊ NGOẠI VI

Giảng viên: Phạm Quang Trí Lớp:DTVT17B

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2024

Trang 2

ĐỀ TÀI: ĐIỀU KHIỂN 3 THIẾT BỊ LÀM VIỆC TUẦN TỰ

Yêu cầu 1: Vẽ sơ đồ mô phỏng phần cứng của toàn hệ thống điều khiển

Yêu cầu vận hành:

Nhấn nút START(Khởi động) thì thiết bị 1 hoạt động, t1 giây sau đó thì thiết bị 2 hoạt động, t2 giây sau đó thì thiết bị 3 hoạt động

Nhấn nút STOP_1 (Tắt đèn) thì thiết bị 1 dừng hoạt động

Nhấn nút STOP_2 (Tắt quạt) thì thiết bị 2 dừng hoạt động

Nhấn nút STOP_3 (Tắt tivi) thì thiết bị 3 dừng hoạt động

Nhấn nút STOP_ALL (Tắt hết) thì cả 3 thiết bị dừng hoạt động

Yêu cầu trong thiết kế:

Giao diện trên máy tính có các nút nhấn điều khiển độc lập cho từng thiết bị START, STOP_1, STOP_2, STOP_3, STOP_ALL và hiển thị minh hoạ trạng thái hiện tại của từng thiết bị ( đang hoạt động, đang dừng hoạt động ) Cho phép người dùng thay đổi các khoảng thời gian t1 và t2 ( giới hạn trong khoảng từ 3 đến 20 giây, mặc định là 10 giây).Bóng đèn L1, L2 và L3 đại diện cho các thiết bị tương ứng

Sơ đồ nguyên lí:

Trang 3

Yêu cầu 2: Trình bày rõ, chi tiết lưu đồ giải thuật và mã nguồn của chương trình điều khiển (Firmware)

Lưu đồ giải thuật Firmware:

Trang 5

Code Firmware:

#define in_size 1

#define out_size 1

unsigned char readbuff[in_size] absolute 0x500; // chua du lieu doc duoc tu USB

unsigned char writebuff[out_size] absolute 0x540; // chua du lieu nhan duoc tu USBvoid interrupt(void)

// kich hoat nut ngat USB

USBIF_bit = 0; // xoa co ngat USB

USBIE_bit = 1; // cho phep ngat USB

GIE_bit = 1; // cho phep ngat toan cuc

PEIE_bit = 1; // cho phep ngat ngoai vi

while(1)

{

Trang 6

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); delay_ms(10000);

LATE2_bit = 0;

writebuff[0] = 'W';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

Trang 7

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

Trang 8

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

else if(readbuff[0] == '%')

{

Trang 9

LATE0_bit = 0;

writebuff[0] = 'F';

HID_Write(&writebuff,out_size); delay_ms(15000);

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

else if(readbuff[0] == '&')

{

LATE0_bit = 0;

writebuff[0] = 'F';

HID_Write(&writebuff,out_size); delay_ms(17000);

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

Trang 10

HID_Write(&writebuff,out_size); }

LATE1_bit = 0;

writebuff[0] = 'U';

HID_Write(&writebuff,out_size); }

else if(readbuff[0] == 'E')

else if(readbuff[0] == 'e')

Trang 11

else if(readbuff[0] == 'Y')

else if(readbuff[0] == 'y')

else if(readbuff[0] == 'I')

else if(readbuff[0] == 'i')

else if(readbuff[0] == 'P')

{

delay_ms(14000);

Trang 12

LATE2_bit = 0;

writebuff[0] = 'W';

HID_Write(&writebuff,out_size); }

Trang 13

else if(readbuff[0] == 'A')

Trang 20

byte[] readbuff = newbyte[2];

byte[] writebuff = newbyte[2];

public Form2()

{

InitializeComponent();

Trang 22

}

elseif (domainUpDown2.Text == "10")

{

writebuff[1] = (byte)'m';

Trang 23

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "18")

Trang 24

{

writebuff[1] = (byte)'D';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 25

}

elseif (domainUpDown2.Text == "14")

{

writebuff[1] = (byte)'P';

Trang 26

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

Trang 27

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 28

}

elseif (domainUpDown2.Text == "18")

{

writebuff[1] = (byte)'D';

Trang 29

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "7")

Trang 30

{

writebuff[1] = (byte)'T';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 31

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

Trang 32

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "11")

Trang 33

{

writebuff[1] = (byte)'y';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 34

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "7")

{

writebuff[1] = (byte)'T';

Trang 35

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "15")

Trang 36

{

writebuff[1] = (byte)'p';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 38

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "19")

Trang 39

{

writebuff[1] = (byte)'d';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 40

}

elseif (domainUpDown2.Text == "15")

{

writebuff[1] = (byte)'p';

Trang 41

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "4")

Trang 42

{

writebuff[1] = (byte)'e';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 43

}

elseif (domainUpDown2.Text == "19")

{

writebuff[1] = (byte)'d';

Trang 44

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "8")

Trang 45

{

writebuff[1] = (byte)'t';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 46

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 47

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "12")

Trang 48

{

writebuff[1] = (byte)'I';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 49

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "8")

{

writebuff[1] = (byte)'t';

Trang 50

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "16")

Trang 51

{

writebuff[1] = (byte)'S';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 53

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "20")

Trang 54

{

writebuff[1] = (byte)'G';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 55

}

elseif (domainUpDown2.Text == "16")

{

writebuff[1] = (byte)'S';

Trang 56

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "5")

Trang 57

{

writebuff[1] = (byte)'R';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 58

}

elseif (domainUpDown2.Text == "20")

{

writebuff[1] = (byte)'G';

Trang 59

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

elseif (domainUpDown2.Text == "9")

Trang 60

{

writebuff[1] = (byte)'Y';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

elseif (domainUpDown2.Text == "12")

{

writebuff[1] = (byte)'I';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

Trang 61

elseif (domainUpDown2.Text == "17")

{

writebuff[1] = (byte)'s';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 62

}

elseif (domainUpDown2.Text == "13")

{

Trang 63

writebuff[1] = (byte)'i';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

}

Trang 64

if (domainUpDown2.Text == "3")

{

writebuff[1] = (byte)'E';

usbHidPort1.SpecifiedDevice.SendData(writebuff); domainUpDown2.Enabled = false;

Trang 65

}

elseif (domainUpDown2.Text == "17")

{

Trang 66

MessageBox.Show("Vui lòng chọn thời gian ", "Thông báo",

MessageBoxButtons.OK, MessageBoxIcon.Information);

Trang 67

DialogResult answer = MessageBox.Show("Bạn có muốn đóng chương trình không ?",

"Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (answer == DialogResult.No)

{

e.Cancel = true;

}

}

// xử lý nhận dữ liệu từ thiết bị thông qua thiết bị

privatevoid usbHidPort1_OnDataRecieved(object sender, DataRecievedEventArgs args) {

Trang 68

pictureBox1.Image = USB.Properties.Resources.of;

pictureBox2.Image = USB.Properties.Resources.of;

pictureBox3.Image = USB.Properties.Resources.of;

Trang 69

privatevoid usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs e)

// xử lý khi một thiết bị khi HID-USB gỡ ra khỏi bus USB

privatevoid usbHidPort1_OnSpecifiedDeviceRemoved(object sender, EventArgs e) {

textBox2.BackColor = Color.Red;

pictureBox1.Image = USB.Properties.Resources.of;

pictureBox2.Image = USB.Properties.Resources.of;

pictureBox3.Image = USB.Properties.Resources.of;

// xử lý phát hiện thiết bị HID-USB xuất hiện

protectedoverridevoid OnHandleCreated (EventArgs e)

{

Trang 71

privatevoid domainUpDown2_SelectedItemChanged(object sender, EventArgs e)

Kết quả mô phỏng bằng video link Youtube ở yêu cầu 5

Yêu cầu 5: Quay video clip chứng minh kết quả thực hiện, tải lên Youtube và ghi liên kết báo cáo

https://youtu.be/2qXVsElyrPU

Ngày đăng: 14/11/2024, 10:14

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w