MỤC LỤC
Chương I : Tổng quan
I. Phân tích yêu cầu : ……………………………………
1. Chế độ hoạt động ………………………………………….
2. Các linh kiện sử dụng …………………
II. Ứng dụng ………………………………
Chương II : Khảo sát các linh kiện sử dụng
I. Bộ vi xử lý 8051…………………
II. Transistor điều khiển ………………
III. Led 7 đoạn………………………
Chương III : Thiết kế hệ thống
I. Mạch nguyên lý……………………………
II. Mạch in…………………
Chương IV : Chương trình điều khiển hệ thống
1
1
CHƯƠNG I : TỔNG QUAN
I/ Phân tích yêu cầu:
Thiết kế mạch điều khiển đèn giao thông sử dụng IC họ 8051, cụ thể là
dùng AT89c51
1/ Chế độ hoạt động:
Đèn giao thông tại ngã 4 :
- Các đèn xanh, vàng, đỏ hoạt động theo thời gian đã xác định trước
- Bộ phận hiển thị thời gian chờ của cá đèn led 7 đoạn, gồm có 4 led 7 đoạn: ở
mỗi ngã đường sử dụng 2 led 7 đoạn để hiển thị thời gian đếm ngược.
- Hệ thống led đơn hiển thị cho các đèn xanh, đèn vàng, đèn đỏ tại các ngã tư
thực.
2/ Các linh kiện sử dụng:
- Vi xử lý AT89C51.
- IC thời gian thực DS1307.
thể dùng như RAM, DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân như
trong hình
II. TRANSISTOR ĐIỀU KHIỂN A1015
Hình ảnh thực tế:
+ Transistor được sử dụng ở chế độ bão hòa
+ Ta sử dụng cực B của transistor để điều khiển các linh kiện
+ Nếu dòng I
B
=0 thì V
BE
bị phân cực thuận dẫn đến transistor mở.
III. LED 7 ĐOẠN
1. Cấu tạo
4
4
Led 7 đoạn là sự kết hợp của 7 led đơn ghép lại với nhau theo 2 cách
đất chung hoạc nguồn chung. Nhưng trong thực tế hay sử dụng nguồn chung
vì khi đó sẽ làm led sáng đều và rõ,bởi vì các led nối chung một áp thay vì
phải lấy áp từ chân của IC sẽ không ổn định và đôi khi có thể gây ra chạm
Led 7 đoạn là sự kết hợp của các led đơn, do đó cần các điện trở hạn
dòng cho led không bị quá dòng. Cần mắc điện trở tới từng chân của led,
không nên mắc chung một trở ở dây nguồn chung hoặc đất chung. Điện trở
cho 1 led khoảng từ 220 đến 330 ohm là vừa. Trong mạch sử dụng led 7 đoạn
dương chung.
5
5
CHƯƠNG III : THIẾT KẾ HỆ THỐNG
I. MẠCH NGUYÊN LÝ:
II. MẠCH IN:
LED_C_GIO BIT P0.0
9
9
; I2C
SCL BIT P3.0
SDA BIT P3.1
SW_1 BIT P3.2
SW_2 BIT P3.3
SW_3 BIT P3.4
SW_4 BIT P3.5
LED_DATA EQU P2
BYTE_W EQU 11010000B
BYTE_R EQU 11010001B
ADD_LOW EQU 4BH
DATA_DS EQU 4CH
;=====================================
ORG 00H
LJMP MAIN
;===========================
ORG 0BH
LJMP NGAT_TIME
;===========================
ORG 1BH
INC DEM
MOV TH1,#3CH
MOV TL1,#0B0H
RETI
;===========================
ORG 030H
MAIN: ;reset tat ca cac bien
LOOP_HIEN_THI: ; chuong trinh chinh chay tai day
;==========================================
MOV A,FLAG_SET
11
11
CJNE A,#0,L_HT
CALL INIT_PORT
L_HT:
LCALL HIEN_THI
LCALL SCAN_KEY
JB SW_4,L_HT1
LCALL GIAOTHONG
L_HT1:
SJMP LOOP_HIEN_THI
;==========================================
GIAOTHONG:
SETB TR1
mov dem1,#26
mov dem2,#30
mov p1,#11011110b
lap1:mov dem,#0
lcall giaima
CJNE A,#22,LAP2 ; kiem tra 22h
;====***====
LAP_B_DEM0:
MOV DEM,#0
MOV P0,#0FFH
B_DEM00:
MOV P1,#11101101B
CJNE DEM,#19,B_DEM00
LCALL INIT_PORT
MOV A,GIO
CJNE A,#5,LAP_B_DEM1
LJMP GIAOTHONG
lap4:lcall hienthiGT1
13
13
cjne dem,#20,lap4
dec dem1
dec dem2
cjne dem2,#9,lap3
lap5:mov dem,#0
lcall giaima
CJNE A,#22,LAP6
;====***====
LAP_B_DEM2:
MOV DEM,#0
MOV P0,#0FFH
BAN_DEM20:
MOV P1,#11101101B
CJNE DEM,#19,BAN_DEM20
MOV DEM,#0
BAN_DEM21:
MOV P1,#0FFH
CJNE DEM,#20,BAN_DEM21
LCALL INIT_PORT
MOV A,GIO
CJNE A,#5,LAP_B_DEM2
LJMP GIAOTHONG
lap6:
CJNE A,#5,LAP_B_DEM3
LJMP GIAOTHONG
lap8:lcall hienthiGT
cjne dem,#20,lap8
dec dem1
dec dem2
cjne dem2,#9,lap7
15
15
lap9:mov dem,#0
lcall giaima
CJNE A,#22,LAP10
;====***====
LAP_B_DEM4:
MOV DEM,#0
MOV P0,#0FFH
B_DEM40:
MOV P1,#11101101B
CJNE DEM,#19,B_DEM40
MOV DEM,#0
B_DEM41:
MOV P1,#0FFH
CJNE DEM,#20,B_DEM41
LCALL INIT_PORT
MOV A,GIO
CJNE A,#5,LAP_B_DEM4
LJMP GIAOTHONG
lap10:lcall hienthiGT3
cjne dem,#20,lap10
dec dem1
ljmp GIAOTHONG
giaima:mov a,dem1
mov b,#10
div ab
movc a,@a+dptr
mov 50h,a
mov a,b
movc a,@a+dptr
mov 51h,a
17
17
mov a,dem2
mov b,#10
div ab
movc a,@a+dptr
mov 52h,a
mov a,b
movc a,@a+dptr
mov 53h,a
;=====***=====
LCALL INIT_PORT
MOV A,GIO
ret
hienthiGT:mov p2,51h
CLR LED_PHUT
lcall dL
SETB LED_PHUT
mov p2,50h
CLR LED_C_PHUT
lcall dL
lcall dL
SETB LED_PHUT
mov p2,53h
CLR LED_GIO
lcall dL
SETB LED_GIO
ret
hienthiGT3:
mov p2,51h
CLR LED_PHUT
lcall dL
19
19
SETB LED_PHUT
mov p2,50h
CLR LED_C_PHUT
lcall dL
SETB LED_C_PHUT
mov p2,53h
CLR LED_GIO
lcall dL
SETB LED_GIO
ret
;=======***========
INIT_PORT:
;=================================================
=READS SECONDS
;=================================================
;READ_SEC:
;=================================================
;* WRITE DATA_DS TO DS1307 1 BYTE *
;* INPUT : ADD_LOW *
;* : DATA_DS *
;************************************************* ****
WRITE_BYTE:
CLR SDA ;start bit
CLR SCL
MOV A,#BYTE_W ;send control byte
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE ;loop until busy
CLR SCL
21
21
MOV A,ADD_LOW ;send address low
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE ;loop until busy
CLR SCL
MOV A,DATA_DS ;send DATA
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE ;loop until busy
CLR SDA
CLR SCL
SETB SCL ;stop bit
SETB SDA
READ_BYTE:
CLR SDA ;start bit
CLR SCL
MOV A,#BYTE_W ;send control byte
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE ;loop until busy
CLR SCL
MOV A,ADD_LOW ;send address low
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE ;loop until busy
CLR SCL
23
23
SETB SCL
SETB SDA
CLR SDA ;start bit
CLR SCL
MOV A,#BYTE_R ;send control byte
LCALL LOOP_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE ;loop until busy
CLR SCL
LCALL LOOP_READ
SETB SDA
SETB SCL
MOV C,SDA
CLR SCL
RLC A
DJNZ R2,LOOP_READ1
MOV DATA_DS,A
POP 02H
RET
;==========================================
TACHSO: ; tach rieng hang chuc va hang don vi bang cach chia cho 10
;==========================================
;==========
MOV A,PHUT
MOV B,#10
DIV AB
MOV CHUC_PHUT,A
MOV DONVI_PHUT,B
25
25