Phần I :Khái quát chung về cách thực hiện
1.Thảo luận để đưa ra ý tưởng cuối cùng
2.Hỏi để biết cách sử dụng thạo các phần mềm như Read51,proteus.Đây là 2 
phần mềm rất hay dùng để lập trình và mô phỏng cho mạch.Phần mềm thiết kế 
mạch in như Ocad 9.2,sưu tầm các phần mềm phục vụ cho việc nạp mạch.
3.Mô phỏng mạch trên Proteus, viết phần lập trình trên Read51 để tính toán mua 
linh kiện
4.Các linh kiện sủ dụng và đặc điểm:
a)AT89S52
-Là sản phẩm của hãng Atmel có 256 bytes Ram,8 
Kbyte Rom ,32 chân vào ra ,3 bộ định thời,8 nguồn 
ngắt,1 cổng nối tiếp
-Kiểu bộ nhớ NV-RAM là kiểu bộ nhớ mà có khả năng 
nạp chương trình vào ROM trên chip trong khi nó vẫn ở 
trong hệ thống mà không phải lấy ra,ngoài ra kiểu bộ 
nhớ này còn có ưu việt cho phép thay đổi nội dung Rom 
theo từng byte trong khi bộ nhớ kiểu Flash và EPROM 
phải được xóa hết trước khi lập trình lại.
-các chân của AT89S52 được miêu tả như hình bên 
cạnh
                
              
                                            
                                
            
 
            
                 20 trang
20 trang | 
Chia sẻ: lvcdongnoi | Lượt xem: 3095 | Lượt tải: 1 
              
            Bạn đang xem nội dung tài liệu Báo cáo Bài tập lớn kỹ thuật vi xử lý máy bán hàng tự động, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI 
KHOA ĐIỆN TỬ - VIỄN THÔNG 
BÁO CÁO BÀI TẬP LỚN 
KỸ THUẬT VI XỬ LÝ 
Máy bán hàng tự động 
Giáo viên hướng dẫn: 
 TH.S Hàn Huy Dũng 
 Nhóm sinh viên thực hiện: 
1.Lê Văn Nguyên - ĐT2-K48 
2.Trần Lê Vinh - ĐT3-K48 
Hà Nội tháng 5 năm 2006 
LỜI GIỚI THIỆU 
Sự ra đời của các máy rút tiền tự động,các bảng quảng cáo sử dụng quang 
báo,hệ thống hẹn giờ tắt mở trong các hệ thống giao thông… gần đây tại Việt 
Nam đã càng khẳng đinh sự ứng dụng mạnh mẽ của kỹ thuật vi xử lý.Nó thực sự 
đã đi vào đời sống và phục vụ nhu cầu của chúng ta. 
Ban đầu bọn em có ý tưởng sẽ thiêt kế đồng hồ điện tử và chúng em đã mô 
phỏng thành công bằng Proteus lắp mô phỏng trên Panel mạch chạy tốt.Càng 
làm càng thấy sự thú vị thực sự của nó,chúng em lại có ý tưởng mở rộng sản 
phẩm của mình .Kết hợp nó với LCD,viết phần lập trình trên READ51 sau đó cho 
chạy trên phần mềm mô phỏng và đã thành công.Tiếp tuc mở rộng chúng em đã 
nghĩ ra sẽ thiết kế phần hiển thị của máy bán hàng tự động. 
Hiện nay có rất nhiều bộ vi điều khiển như PIC,PSOC,… nhưng do đây là lần 
đầu tiên bọn em tiếp xúc với vi điều khiển cho nên bọn em lựa chọn vi điều khiển 
8051 là họ vi đièu khiển có nhiều tài liệu để nghiên cứu nhất (theo chúng em). 
QUI TRÌNH THỰC HIỆN 
Phần I :Khái quát chung về cách thực hiện 
1.Thảo luận để đưa ra ý tưởng cuối cùng 
2.Hỏi để biết cách sử dụng thạo các phần mềm như Read51,proteus.Đây là 2 
phần mềm rất hay dùng để lập trình và mô phỏng cho mạch.Phần mềm thiết kế 
mạch in như Ocad 9.2,sưu tầm các phần mềm phục vụ cho việc nạp mạch. 
3.Mô phỏng mạch trên Proteus, viết phần lập trình trên Read51 để tính toán mua 
linh kiện 
4.Các linh kiện sủ dụng và đặc điểm: 
a)AT89S52 
-Là sản phẩm của hãng Atmel có 256 bytes Ram,8 
Kbyte Rom ,32 chân vào ra ,3 bộ định thời,8 nguồn 
ngắt,1 cổng nối tiếp 
-Kiểu bộ nhớ NV-RAM là kiểu bộ nhớ mà có khả năng 
nạp chương trình vào ROM trên chip trong khi nó vẫn ở 
trong hệ thống mà không phải lấy ra,ngoài ra kiểu bộ 
nhớ này còn có ưu việt cho phép thay đổi nội dung Rom 
theo từng byte trong khi bộ nhớ kiểu Flash và EPROM 
phải được xóa hết trước khi lập trình lại. 
-các chân của AT89S52 được miêu tả như hình bên 
cạnh 
-Một số điều quan trọng đối với AT89S52: 
+Để tạo được thời gian trễ thì AT89S52 phải được nối 
với thạch anh có tần số từ 10 đến 12 MHZ .Để tránh sai 
số cho bit thì chúng ta thường chọn tần số thạch anh là 11.0592 MHZ. 
+Một chu kỳ máy bằng 12 chu kỳ dao động của thạch anh . 
+ Do AT89S52 có ROM trên chip nên chân 31 của nó được nối với nguồn VCC 
Sơ đồ nối các chân cần thiết của AT89S52 
+Cổng P0 phải được nối với các điện trở kéo để thiết lập nó làm cổng vào,do 
cổng P0 được thiết kế không có điện trở kéo không giống như cổng P1,P2,P3 
(cấu tạo của cổng P0 có dạng cực máng) 
a) LCD 16X2 
-Các chân của LCD 16x2 được biểu diễn như hình vẽ. 
-Các chân của LCD được nối với vi điều khiển như hình sau: 
b) IC 74LS47 
-Trên hình vẽ các chân 7,1,2,6 tương ứng với 
A,B,C,D là các chân vào. Các chân 
13,12,11,10,9,15,14 tương ứng với 
QA,QB,QC,QD,QE,QF,QG là các cổng được nối với 
các chân của LED 7 thanh. 
-Sơ đồ nối 74LS47 với AT89S52 như sau. 
c) LED 7 Thanh ( Anode chung ) 
Tóm lại ,sơ đồ nguyên lý của mạch: 
Phần II : Phần lập trình : Ta có sơ đồ thuật toán 
BEGIN 
HIỂN THỊ 
CHỮ CHẠY 
2 
1 
HIỂN THỊ 
MENU 
CÓ 
 BỎ TIỀN? 
(BẤM NÚT) 
KHÔNG 
CHỌN 1 
HAY LÀ 2 
KHÔNG 
CHỌN 
(SAU 10S) 
LẤY 2 ( ĐÈN 
ĐỎ SÁNG) 
LẤY 1 ( ĐÈN 
XANH SÁNG) 
END 
ĐỢI 10S
Phần code này như sau: 
ORG 0000H ;Nơi bắt đầu 
LJMP MAIN1 ;Nhảy khỏi bảng vector ngắt 
ORG 0013H ;địa chỉ của ngắt INT1 
SETB P3.6 ;đèn đỏ sáng báo hiệu đã chon 2 
ACALL LED1 
RETI 
ORG 0030H ;bắt đầu chương trình chính 
MAIN1: 
MOV A,#01H ;XOA MAN HINH HIEN THI 
ACALL COMMAND ;GUI LENH DEN LCD 
MOV A,#38H ;ma trận 2 dòng 5x7 
ACALL COMMAND 
ACALL DELAY 
CLR P3.6 
CLR P3.7 
MOV P0,#00H ;ban đầu Led 7 thanh hiển thị 00 
MOV P1,#00H ; 
MAIN: 
MOV A,#0CH ;BAT HIEN THI , TAT CON TRO 
ACALL COMMAND ;GUI LENH DEN LCD 
MOV A,#01H ;XOA MAN HINH HIEN THI 
ACALL COMMAND ;GUI LENH DEN LCD 
ACALL DELAY 
STRING : DB ' WELCOME! WELCOME!' ;Hiển thị chữ “WELCOME” chạy 
MOV IE,#00H ;cấm ngắt 
MOV A,#38H 
ACALL COMMAND 
ACALL DELAY 
MOV A,#0CH ;BAT HIEN THI , TAT CON TRO 
ACALL COMMAND ;GUI LENH DEN LCD 
MOV A,#01H ;XOA MAN HINH HIEN THI 
ACALL COMMAND ;GUI LENH DEN LCD 
LCALL DELAY ;GOI TRE 
MOV A,#93H ;DUNG DE CHAY 
LCALL COMMAND 
ACALL DELAY 
MOV R0,#16 ;HIEN TOI DA 16 KI TU (LCD 16.2) 
MOV DPTR,#STRING 
CLR A 
MOVC A,@A+DPTR 
ACALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY 
TAO_VA_DICH :MOV A,#18H ;dich toan bo hien thi sang trai 
ACALL COMMAND 
MOV A,#93H 
ACALL COMMAND 
ACALL DELAY 
INC DPTR 
CLR A 
MOVC A,@A+DPTR 
ACALL DATA_DISPLAY 
ACALL DELAY1 
DJNZ R0,TAO_VA_DICH 
MOV R1,#19 
DICH : MOV A,#18H ; dich toan bo hien thi sang trai 
ACALL COMMAND 
ACALL DELAY 
DJNZ R1,DICH 
MOV A,#38H 
ACALL COMMAND 
ACALL DELAY 
MOV A,#0CH ;BAT HIEN THI , TAT CON TRO 
ACALL COMMAND ;GUI LENH DEN LCD 
ACALL DELAY 
MOV A,#01H ;XOA MAN HINH HIEN THI 
LCALL COMMAND ;GUI LENH DEN LCD 
ACALL DELAY 
LCALL COMMAND 
ACALL DELAY 
MOV A,#0EH ;bật hiển thị nhấp nháy con trỏ 
LCALL COMMAND 
MOV A,#01H ;xóa màn hình hiển thị 
LCALL COMMAND 
MOV A,#06H ;dịch con trỏ sang phải 
LCALL COMMAND 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI ;để chữ hiển thị vào giữa LCD 
ACALL COMMAND 
ACALL DELAY 
MOV A,#'M' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'Y' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'B' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'N' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'H' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'N' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'G' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
SETB P1.7 
JNB P1.7,LUACHON ; ;nhảy dến LUACHON khi bam nut 
MOV A,#0C0H ;đưa con trỏ về đầu dòng thứ 2 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#'T' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'U' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
ACALL DATA_DISPLAY 
ACALL DELAY1 
MOV A,#'D' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'O' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'N' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'G' 
LCALL DATA_DISPLAY ;HIEN THI 
JNB P1.7,LUACHON ;nhảy dến LUACHON khi bam nut 
LCALL DATA_DISPLAY ;HIEN THI 
MOV A,#01H ;XOA MAN HINH HIEN THI 
ACALL COMMAND ;GUI LENH DEN LCD 
ACALL DELAY 
LJMP MAIN 
RET 
;---------------------- 
;DOAN THU 2 
LUACHON: 
MOV A,#38H 
ACALL COMMAND 
ACALL DELAY 
MOV A,#01H ;XOA MAN HINH HIEN THI 
LCALL COMMAND ;GUI LENH DEN LCD 
ACALL DELAY 
LCALL COMMAND 
ACALL DELAY 
MOV A,#0EH 
LCALL COMMAND 
MOV A,#01H 
LCALL COMMAND 
MOV A,#06H 
LCALL COMMAND 
ACALL DELAY1 
MOV A,#'1' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'.' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'C' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'F' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'F' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'E' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'B' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'U' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'O' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'N' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'M' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'E' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#0C0H 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'2' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'.' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'C' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'O' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'C' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'C' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'O' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'L' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
HERE: MOV IE,#84H ;cho phép ngắt 
SETB p1.4 
JNB p1.4,led ;nhảy khi bấm nút 
MOV A,#00H ;đếm thời gian đợi (10s) 
MOV R5,#10 
MOV B,#00H 
LAP10:MOV IE,#84H 
SETB p1.4 
JNB p1.4,led 
MOV A,#00H 
MOV P1,B 
SETB p1.4 
ACALL DELAY2 
MOV IE,#84H 
JNB p1.4,led 
INC B 
DJNZ R5,LAP10 
JNB p1.4,led 
MOV P1,#00H 
SETB p1.4 
MOV P0,#01H 
ACALL DELAY2 
MOV IE,#84H 
JNB p1.4,led 
LJMP MAIN1 ;nếu không bấm nút hoặc 
;ngắt thì quay lại ban đầu 
SJMP HERE 
;---------------------------------------------- 
LED: SETB P3.7 ;đèn xanh sang báo hiệu đã chọn 1 
led1: 
MOV IE,#0000H 
MOV A,#01H ;XOA MAN HINH HIEN THI 
LCALL COMMAND ;GUI LENH DEN LCD 
MOV A,#38H 
LCALL COMMAND 
MOV A,#0EH 
LCALL COMMAND 
MOV A,#01H 
LCALL COMMAND 
MOV A,#06H 
LCALL COMMAND 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
ACALL DELAY1 
MOV A,#'P' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'L' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'E' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'S' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'E' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'W' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'I' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'T' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'!' 
LCALL DATA_DISPLAY ;HIEN THI 
MOV A,#00H ;đếm thời gian luc đợi lấy hàng 
MOV R6 ,#1 
MAIN2: 
MOV P0,A 
ACALL DEMDONVI 
INC A 
DJNZ R6, MAIN2 
MOV P1,#00H 
MOV P0,#01H 
ACALL DELAY2 
;DOAN KET THUC 
MOV A,#01H ;XOA MAN HINH HIEN THI 
LCALL COMMAND ;GUI LENH DEN LCD 
MOV A,#38H 
LCALL COMMAND 
MOV A,#0EH ;bật hiển thị nhấp nháy con trỏ 
LCALL COMMAND 
MOV A,#01H 
LCALL COMMAND 
MOV A,#06H 
LCALL COMMAND 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACA LL DELAY 
MOV A,#14H ;DICH VI TRI CON TRO SANG PHAI 
ACALL COMMAND 
ACALL DELAY1 
MOV A,#'T' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'H' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'A' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'N' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'K' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#' ' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'Y' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'O' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'U' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY1 
MOV A,#'!' 
LCALL DATA_DISPLAY ;HIEN THI 
ACALL DELAY2 
ACALL DELAY2 
MOV A,#01H ;XOA MAN HINH HIEN THI 
ACALL COMMAND ;GUI LENH DEN LCD 
SETB IE.2 
MOV IE,#84H 
LJMP MAIN1 
RET 
;------------------------------------------------------------------------- 
;THIET KE BO DEM 
;-------------------------------------------------------------------- 
DEMDONVI: 
MOV R5,#10 
MOV B,#00H 
LAP1: 
MOV P1,B 
ACALL DELAY2 
INC B 
DJNZ R5,LAP1 
RET 
COMMAND : 
MOV P2,A ;SAO A DEN CONG P2 ; 8chân của P2 nối với D0-D7 của LCD 
CLR P3.0 ;P3.0=0->RS=0 GUI LENH DEN LCD ;P3.0 nối với RS của LCD 
CLR P3.1 ;P3.1=0->R/W=0 DE GHI DU LIEU ;P3.1 nối với R/Ư của LCD 
SETB P3.2 ;P3.2=1->E=1 XUNG CAO ;P3.2 nối với chân E(cho phép) 
CLR P3.2 ;E-0 XUNG THAP ;có xung cao xuống thấp thì chốt dữ liệu(xung>450ns) 
RET 
DATA_DISPLAY : 
MOV P2,A ;SAO A DEN CONG P2 
SETB P3.0 ;P3.0=1->RS=1 GUI DU LIEU DEN LCD 
CLR P3.1 ;P3.1=0->R/W=0 DE GHI DU LIEU 
SETB P3.2 ;P3.2=1->E=1 CHO XUNG CAO 
CLR P3.2 ;E=0 CHO XUNG THAP 
RET 
DELAY : ;trễ dùng cho dòng chữ chạy 
MOV R7,#4 
LAP: MOV TMOD,#01H 
MOV TL0,#0FFH 
MOV TH0,#8FH 
SETB TCON.4 
AGAIN : JNB TF0,AGAIN 
CLR TR0 
CLR TF0 
DJNZ R7,LAP 
RET 
DELAY1: ;trễ mỗi khi 1 chữ được hiển thị Lcd 
MOV R7,#10 
LAP2: 
MOV TH0,#0F0H 
MOV TL0,#0FH 
SETB TR0 
LAP3: 
JNB TF0,LAP3 
CLR TF0 
CLR TR0 
DJNZ R7,LAP2 
RET 
DELAY2: ;trễ 1s dùng cho đồng hồ 
MOV R7,#15 
LAP8: 
MOV TH0,#10H 
MOV TL0,#00H 
SETB TR0 
LAP9: 
JNB TF0,LAP9 
CLR TF0 
CLR TR0 
DJNZ R7,LAP8 
RET 
;----------------------------------- 
END 
PHẦN III : QUÁ TRÌNH CHẠY CỦA MẠCH 
1.Khi bật nguồn màn hình sẽ xuất hiện 
2.Bạn muốn mua gì,hãy bỏ tiền vào (ở đây là bấm công tắc để chọn loại hàng) 
Máy sẽ đợi 10s nếu bạn không chọn gì thì nó sẽ tự động quay về thời điểm ban 
đầu. 
3.Khi bạn chọn mặt hàng mình mua ví dụ như caffe buôn mê bạn bấm công tắc 
lựa chọn,công tắc này được thiết kế sẵn,màn hình hiển thị sẽ có dạng sau: Khi 
đó LCD hiển thị Please wait và đồng hồ sẽ bắt đầu đếm đến 10 giây bạn sẽ có 
hàng cho mình đồng thời đén xanh bật sáng: 
4.Sau khi bạn có hàng cho mình máy sẽ hiển thị lời cảm ơn bạn đã sử dụng 
5.Nếu bạn không thích caffe buôn mê bạn có thể lựa chọn sản phẩm khác mà 
máy có phù hợp với sở thích của bạn chẳng hạn bạn chọn coca máy sẽ hiển thị 
tương tư như trên và lúc này đèn đỏ bật sáng. 
6.Sau khi bạn chọn được sản phẩm mình thích máy sẽ tự động quay lại trạng 
thái ban đầu. 
Mặt khác mạch được thiết kế công tắc RESET có tác dụng quay lại trạng thái 
ban đầu . 
Do đây là bài làm mẫu nên chúng tôi chỉ lựa chọn 2 sản phẩm tượng 
trưng.Trong thực tế chúng ta có thể cho nhiều loại hàng hóa khác cùng với giá 
cả của nó để khách hàng đưa tiền vào sau đó đợi khoảng 10 giây cho máy xử lý 
bạn sẽ có hàng .Đề tài trên đây chỉ là làm để chạy thử nên chúng giả thiết tiền 
mua 2 sản phấm với giá như nhau. 
TỔNG KẾT 
Chúng em đã biết sử dụng các phần mềm trong việc thiết kế mạch,kết hợp lý 
thuyết và thực hành.Theo chúng em đây sẽ là những điều hết sức quan trọng 
cho các nhà kỹ sư,để tránh khi ra thực tế vấp phải những lỗi sai tốt nhất bạn nên 
mô phỏng mạch trước khi làm. 
Nói riêng về đề tài bọn em thực hiện :Ban đầu bọn em chỉ có ý tưởng nhỏ là 
dùng vi xử lý để thiết kế bộ đếm ,sau khi thực hiện thành công bọn em tiếp tục 
phát triển đề tài của mình lên thành đề tài trên. 
Đây chỉ là mạch hoạt động theo một ý tưởng chưa thể áp dụng vào thực tế được 
muốn áp dụng vào được thực tế cần được bổ sung thêm. 
Bọn em sẽ tiếp tục nghiên cứu các họ vi điều khiển khác để ngày càng nâng cấp 
sản phẩm của mình.Xu hướng của bọn em sau này sẽ tiếp tục nghiên cứu 
PIC,PSOC,…để thấy được những mặt mạnh và mặt yếu của các họ vi điều 
khiển nhằm áp dụng chúng cho những ứng dụng có ích. 
Đây là lần đầu tiên nghiên cứu về vi xử lý nên còn rất nhiều mặt hạn chế về kiến 
thức cũng như cách nhìn nhận vấn đề về mặt thực tế nên chúng em mong nhận 
được sự phê bình cũng như góp ý của các thầy để sản phẩm ngày càng hoàn 
thiện hơn. 
Cuối cùng chúng em xin chân thành cảm ơn thầy HÀN HUY DŨNG đã nhiệt tình 
giúp đỡ chúng em trong quá trình thực hiện. 
            Các file đính kèm theo tài liệu này:
 bao_cao_thuc_tap_7572.pdf bao_cao_thuc_tap_7572.pdf