Thiết kế timer dùng 8051

Dùng IC8051 mô phỏng bằng proteus

Cài dặt được thời gian bằng nút nhấn

Hiện thị thời gian giờ phút giây đếm ngược lên LCD

Có thể stop thời gian và có thể reset lại ban đầu

Khi hết thời gian thì đóng một relay

 

docx12 trang | Chuyên mục: Mạch Điện Tử | Chia sẻ: tuando | Lượt xem: 713 | Lượt tải: 0download
Tóm tắt nội dung Thiết kế timer dùng 8051, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH 
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ
------*------
BÁO CÁO
BÀI TẬP LỚN
GVHD: BÙI QUỐC BẢO
Đề tài số 10:
Thiết kế timer dùng 8051. Timer sẽ đếm ngược đến hết thời gian cài đặt thì đóng 1 relay. Cài đặt sử dụng switch, hiển thị dùng LCD.
Danh sách nhóm:
Hồ Đắc Thuận 
4120 3697
Võ Đình Thịnh
4120 3640
Nguyễn Trọng Tuấn 
4120 4295
Nguyễn Duy Vĩnh
4120 4579
Tên đề tài 
Thiết kế timer dùng 8051. Timer sẽ đếm ngược đến hết thời gian cài đặt thì đóng 1 relay. Cài đặt sử dụng switch, hiển thị dùng LCD.
Yêu cầu:
Dùng IC8051 mô phỏng bằng proteus
Cài dặt được thời gian bằng nút nhấn
Hiện thị thời gian giờ phút giây đếm ngược lên LCD
Có thể stop thời gian và có thể reset lại ban đầu 
Khi hết thời gian thì đóng một relay 
Sơ đồ khối phần cứng :
Khối IC 8051
Khối quan trọng nhất 
Bao gồm bộ dao động thạch anh, nút reset hệ thống và IC
Ngoài ra các port của 8051 được nối với các khối khác thông qua các label
Khối LCD
Các chân VSS, VDD, VEE của LCD được nối như hình vẽ
Chân RS, RW, E được nối tới các port của 8051
Các chân DATA được nối tới port P1 của 8051
Khối Button
Các nút nhấn SET, UP ,DOWN, START, STOP lần lượt nối tới các port P2.0, P2.1, P2.2, P2.3 của 8051
Khối relay
Có một relay và đèn LED hiển thị
Giới thiệu linh kiên mới:
LCD LM020L
Relay
III. SƠ ĐỒ KẾT NỐI
IV. Lưu đồ giải thuật
V. Code 
EN EQU P3.7 
RS EQU P3.6 
RW EQU P3.5 
ORG 030H
MOV P2,00H
MOV P3,00H
LCALL INIT_LCD 
RESE:
MOV P2,00H
	CLR RS 	;VIET CHU SETTIME
	MOV P1,#80h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#'S' 
	LCALL WRITE_TEXT 
	MOV A,#'E' 
	LCALL WRITE_TEXT 
	MOV A,#'T' 
	LCALL WRITE_TEXT 
	MOV A,#'T' 
	LCALL WRITE_TEXT 
	MOV A,#'I' 
	LCALL WRITE_TEXT 
	MOV A,#'M' 
	LCALL WRITE_TEXT
	MOV A,#'E' 
	LCALL WRITE_TEXT 
	MOV 10H,#48	;TAO GIA TRI DAU 000000
	MOV 11H,#48
	MOV 12H,#48
	MOV 13H,#48
	MOV 14H,#48
	MOV 15H,#48
	SETGIO:	;CAI DAT GIO
	LCALL DISPLAY
	LCALL DELAY
	LCALL DISPLAYGIO
	LCALL DELAY
	JB P2.1,UPGIO
	JB P2.2,DOWNGIO
	JB P2.0,SETPHUT
	JB P2.3,MAINB
	SJMP SETGIO
	MAINB:
	LJMP MAINA
	UPGIO:
	INC 14H
	MOV A,14H
	CJNE A,#58,SETGIO
	INC 15H
	MOV 14H,#48
	MOV A,15H
	CJNE A,#58,SETGIO
	MOV 14H,#48
	MOV 15H,#48
	SJMP SETGIO
	DOWNGIO:
	DEC 14H
	MOV A,14H
	CJNE A,#47,SETGIO
	DEC 15H
	MOV 14H,#57
	MOV A,15H
	CJNE A,#47,SETGIO
	MOV 14H,#57
	MOV 15H,#57
	SJMP SETGIO
	DISPLAYGIO:
	CLR RS 
	MOV P1,#88h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#32
	LCALL WRITE_TEXT
	LCALL WRITE_TEXT
	RET
	SETGIOA:
	LJMP SETGIO
	SETPHUT:	;CAI DAT PHUT
	LCALL DISPLAY
	LCALL DELAY
	LCALL DISPLAYPHUT
	LCALL DELAY
	JB P2.1,UPPHUT
	JB P2.2,DOWNPHUT
	JB P2.0,SETGIOA
	JB P2.3,MAINA
	SJMP SETPHUT
	UPPHUT:
	INC 12H
	MOV A,12H
	CJNE A,#58,SETPHUT
	INC 13H
	MOV 12H,#48
	MOV A,13H
	CJNE A,#54,SETPHUT
	MOV 12H,#48
	MOV 13H,#48
	SJMP SETPHUT
	DOWNPHUT:
	DEC 12H
	MOV A,12H
	CJNE A,#47,SETPHUT
	DEC 13H
	MOV 12H,#57
	MOV A,13H
	CJNE A,#47,SETPHUT
	MOV 13H,#53
	MOV 12H,#57
	SJMP SETPHUT
	DISPLAYPHUT:
	CLR RS 
	MOV P1,#8Bh 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#32
	LCALL WRITE_TEXT
	LCALL WRITE_TEXT
	RET
STOP:
	JB P2.3,MAIN
	JB P2.0,RESEB
	SJMP STOP
	RESEB:
	LJMP RESE
DISPLAYHAICHAM:	;XOA DAU HAI CHAM
	CLR RS 
	MOV P1,#8Ah 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#32
	LCALL WRITE_TEXT
	CLR RS 
	MOV P1,#8Dh 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#32
	LCALL WRITE_TEXT
	RET
MAINA:
	CLR RS 	;CHIET CHU RUNNING
	MOV P1,#80h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#'R' 
	LCALL WRITE_TEXT 
	MOV A,#'U' 
	LCALL WRITE_TEXT 
	MOV A,#'N' 
	LCALL WRITE_TEXT 
	MOV A,#'N' 
	LCALL WRITE_TEXT 
	MOV A,#'I' 
	LCALL WRITE_TEXT 
	MOV A,#'N' 
	LCALL WRITE_TEXT 
	MOV A,#'G' 
	LCALL WRITE_TEXT 
	MAIN:	;MAIN -CHUONG TRINH CHINH
	JB P2.4,STOP
	JB P2.0,RESEB
	ACALL DISPLAY	
	ACALL DELAY1S
	LCALL DISPLAYHAICHAM
	ACALL DELAY1S
	DEC 10H
	MOV A,10H
	CJNE A,#47,MAIN
	MOV 10H,#57
	DEC 11H	
	MOV A,11H
	CJNE A,#47,MAIN
	MOV 10H,#57
	MOV 11H,#53
	DEC 12H	
	MOV A,12H
	CJNE A,#47,MAIN
	MOV 10H,#57
	MOV 11H,#53
	MOV 12H,#57
	DEC 13H	
	MOV A,13H
	CJNE A,#47,MAIN
	MOV 10H,#57
	MOV 11H,#53
	MOV 12H,#57
	MOV 13H,#53
	DEC 14H	
	MOV A,14H
	CJNE A,#47,MAIN
	MOV 10H,#57
	MOV 11H,#53
	MOV 12H,#57
	MOV 13H,#53
	MOV 14H,#57
	DEC 15H	
	MOV A,15H
	CJNE A,#47,MAIN
RELAY:	;//////////////////RELAY///////////////////////////
SETB P2.5
	HETGIO:	 ;HET GIO
	CLR RS ;
	MOV P1,#80h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'T' 
	LCALL WRITE_TEXT 
	MOV A,#'I' 
	LCALL WRITE_TEXT 
	MOV A,#'M' 
	LCALL WRITE_TEXT 
	MOV A,#'E' 
	LCALL WRITE_TEXT 
	MOV A,#'-' 
	LCALL WRITE_TEXT 
	MOV A,#'O' 
	LCALL WRITE_TEXT 
	MOV A,#'U' 
	LCALL WRITE_TEXT 
	MOV A,#'T' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT 
	MOV A,#'_' 
	LCALL WRITE_TEXT
	LCALL DELAY1S
	CLR RS 
	MOV P1,#01h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD
	LCALL DELAY1S
	JB P2.0,RESEA
	SJMP HETGIO
	RESEA:
	LJMP RESE
DISPLAY:	;DISPLAY
	CLR RS 
	MOV P1,#88h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	MOV A,15H
	LCALL WRITE_TEXT
	MOV A,14H
	LCALL WRITE_TEXT
	MOV A,#':' 
	LCALL WRITE_TEXT 
	MOV A,13H
	LCALL WRITE_TEXT
	MOV A,12H
	LCALL WRITE_TEXT
	MOV A,#':' 
	LCALL WRITE_TEXT 
	MOV A,11H
	LCALL WRITE_TEXT
	MOV A,10H
	LCALL WRITE_TEXT
	RET
WAIT_LCD:
	MOV R7,#250
	DJNZ R7,$
	CLR RW
	RET 
WRITE_TEXT: 
	SETB RS 
	MOV P1,A 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD
	RET 
INIT_LCD: 
	CLR RS 
	MOV P1,#38h 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	CLR RS 
	MOV P1,#0Ch 
	SETB EN 
	CLR EN 
	LCALL WAIT_LCD 
	RET
DELAY1S:	;DELAY 0.5 GIAY 2LAN
	MOV R7,#3
	LAP5:MOV R6,#250
	LAP2:MOV R5,#250
	DJNZ R5,$
	DJNZ R6,LAP2
	DJNZ R7,LAP5
RET
DELAY:	;DELAY
	MOV R7,#1
	LAP4:MOV R6,#200
	LAP3:MOV R5,#250
	DJNZ R5,$
	DJNZ R6,LAP3
	DJNZ R7,LAP3
RET
END
Làm được gì, chưa làm được gì 
* Làm được:
- Sử dụng được các switch để xác định thời gian để đóng relay kể từ khi nhấn nút start
- Có thể dừng thời gian đếm lại trong quá trình đếm bằng nút stop
*Chưa làm được:
- Thời gian đáp ứng khi nhấn switch chưa tức thời.
- Chưa có nhiều chế độ điều khiển nâng cao.
Hướng phát triển
Phát triển thêm nhiều chế độ điều khiển khác như:
	Tạo hệ thống đóng ngắt tự động khi đến giờ quy định.
	Tạo hệ thống hoạt động luân phiên giữa hai máy sau một khoảng thời gian nhất định.
	Tạo hệ thống tự động thông minh khi có ngoại cảnh tác động vào.
	Có thể kết hợp thêm với các hệ thống khuếch đại công suất, ghép nối với những hệ thống khác để tạo thêm nhiều chức năng gia tăng khác

File đính kèm:

  • docxthiet_ke_timer_dung_8051.docx
  • pptxBao cao VXL.pptx