1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế Vending Machine- Máy bán hàng tự động

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Vending Machine
Tác giả SVTH: 1970668
Trường học Trường Đại Học Bách Khoa TPHCM
Chuyên ngành Khoa Điện – Điện Tử
Thể loại graduation project
Năm xuất bản 2022
Thành phố TP. HCM
Định dạng
Số trang 5
Dung lượng 311,94 KB

Nội dung

S0: 0 dong cho vào vending machine () Nếu ko add thêm vào : sẽ ở state 0 ,output = 0 , change =0 Nếu 5 dong được thêm vào : chuyển tới state 1, output =0 ,change =0 Nếu 10 dong được thêm vào : chuyển tới state 2 , output = 0 , change = 0 S1:5 dong cho vào Vending machine Nếu ko add thêm vào : giao dich không hoàn thành , chuyển tới state 0, output =0 , change Rs 10 (10 dong) If 5 dong được cho vào , chuyển tới state 0 , Output =1 , change = Rs 0 Nếu 10 dong được cho vào : Khách hàng trả quá tiền , vì vậy , hàng được trả ra với tiền thối 5 dong (CHANGE 5 Rs)

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM

KHOA ĐIỆN – ĐIỆN TỬ

Thiết kế vi xử lý

LAB 3 : Thiết kế Vending Machine

Tp HCM, tháng 5 năm 2022

Trang 2

I – Lý thuy t ho t đ ng c a m ch ết hoạt động của mạch ạt động của mạch ộng của mạch ủa mạch ạt động của mạch

Máy trạng thái áp dụng cho vending machine

S0: 0 dong cho vào vending machine ()

Nếu ko add thêm vào : sẽ ở state 0 ,output = 0 , change =0

Nếu 5 dong được thêm vào : chuyển tới state 1, output =0 ,change =0

Nếu 10 dong được thêm vào : chuyển tới state 2 , output = 0 , change = 0

S1:5 dong cho vào Vending machine

Nếu ko add thêm vào : giao dich không hoàn thành , chuyển tới state 0, output =0 , change Rs 10 (10 dong)

If 5 dong được cho vào , chuyển tới state 0 , Output =1 , change = Rs 0

Nếu 10 dong được cho vào : Khách hàng trả quá tiền , vì vậy , hàng được trả ra với tiền thối 5 dong (CHANGE 5 Rs)

III – Code design

module vending_machine_18105070(

input clk, input rst, input [1:0]in, // 01 = 5 rs, 10 = 10 rs

Trang 3

output reg out, output reg[1:0] change

);

parameter s0 = 2'b00;

parameter s1 = 2'b01;

parameter s2 = 2'b10;

reg[1:0] c_state,n_state;

always@ (posedge clk)

begin

if(rst == 1)

begin

c_state = 0;

n_state = 0;

change = 2'b00;

end

else

c_state = n_state;

case(c_state)

s0: //state 0 : 0 rs

if(in == 0)

begin

n_state = s0;

out = 0;

change = 2'b00;

end

else if(in == 2'b01)

begin

n_state = s1;

out = 0;

change = 2'b00;

end

else if(in == 2'b10)

begin

n_state = s2;

out = 0;

change = 2'b00;

end

s1: //state 1 : 5 rs

if(in == 0)

begin

n_state = s0;

out = 0;

change = 2'b01; //change returned 5 rs

end

else if(in == 2'b01)

Trang 4

begin

n_state = s0;

out = 1;

change = 2'b00;

end

s2: //state 2 : 10 rs

if(in == 0)

begin

n_state = s0;

out = 0;

change = 2'b10;

end

else if(in == 2'b01)

begin

n_state = s0;

out = 1;

change = 2'b00;

end

else if(in == 2'b10)

begin

n_state = s0;

out = 1;

change = 2'b01; //change returned 5 rs and 1 bottle

end

endcase

end

endmodule

//testbench

module vending_machine_tb;

//inputs

reg clk;

reg[1:0] in;

reg rst;

//output

wire out;

wire[1:0] change;

vending_machine_18105070 uut(

.clk(clk),

.rst(rst),

.in(in),

.out(out),

.change(change)

);

initial begin

//initialise inputs

Trang 5

$dumpvars(0,vending_machine_tb);

rst = 1;

clk = 0;

#6 rst = 0;

in = 2;

#19 in = 2;

#25 $finish;

end

always #5 clk = ~clk;

endmodule

IV – Test ch ương trình và dạng sóng ngõ ra ng trình và d ng sóng ngõ ra ạt động của mạch

Chạy đúng với kết quả

Ngày đăng: 23/05/2024, 11:04

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w