Tìm kiếm theo tiêu đề

Tin tức cộng đồng

[MỜI HỢP TÁC] Các kỳ thi Olympic Quốc tế 2026 (IMO - IEO - ISO)

Kính gửi Quý Lãnh đạo, Ban Giám hiệu và Quý Thầy/Cô, FermatTech (Đối tác Google tại VN) phối hợp cùng SCO Ấn Độ trân trọng kính mời tham gia 3 kỳ thi uy tín dành cho HS từ lớp 1 - 12: - IMO: Olympic Toán Quốc tế. - IEO: Olympic Tiếng Anh Quốc tế. - ISO: Olympic Khoa học...
Xem tiếp

Tin tức thư viện

Chức năng Dừng xem quảng cáo trên violet.vn

12087057 Kính chào các thầy, cô! Hiện tại, kinh phí duy trì hệ thống dựa chủ yếu vào việc đặt quảng cáo trên hệ thống. Tuy nhiên, đôi khi có gây một số trở ngại đối với thầy, cô khi truy cập. Vì vậy, để thuận tiện trong việc sử dụng thư viện hệ thống đã cung cấp chức năng...
Xem tiếp

Hỗ trợ kĩ thuật

  • (024) 62 930 536
  • 0919 124 899
  • hotro@violet.vn

Liên hệ quảng cáo

  • (024) 66 745 632
  • 096 181 2005
  • contact@bachkim.vn

vi điều khiển đồng hồ thời gian 8051

Wait
  • Begin_button
  • Prev_button
  • Play_button
  • Stop_button
  • Next_button
  • End_button
  • 0 / 0
  • Loading_status
Nhấn vào đây để tải về
Báo tài liệu có sai sót
Nhắn tin cho tác giả
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Đỗ Trường Giang
Ngày gửi: 21h:10' 24-02-2013
Dung lượng: 64.8 KB
Số lượt tải: 10
Số lượt thích: 0 người
Code đồng hồ thoi gian
;=============DINH NGHIA THANH GHI====================
ORG 0000H
LJMP MAIN

ORG 13h
LJMP CHON_CHE_DO

DATA_DS EQU 30H ;DU LIEU TU DS
ADD_LOW EQU 31H ;DIA CHI THANH GHI
SEC EQU 32H
MIN EQU 33H
HOUR EQU 34H
DAY EQU 35H
DATE EQU 36H
MONTH EQU 37H
YEAR EQU 38H
TAM EQU 39H
Q0_SEC EQU 40H
Q1_SEC EQU 41H
Q0_MIN EQU 42H
Q1_MIN EQU 43H
Q0_HOUR EQU 44H
Q1_HOUR EQU 45H
Q0_DATE EQU 46H
Q1_DATE EQU 47H
Q0_MONTH EQU 48H
Q1_MONTH EQU 49H
Q0_YEAR EQU 50H
Q1_YEAR EQU 51H
Q0_DAY EQU 52H
Q1_DAY EQU 53H
I EQU 54H
CHE_DO EQU 55H
BYTE_W EQU 0D0H ;CHO PHEP GHI
BYTE_R EQU 0D1H ;CHO PHEP DOC
SCL EQU P3.6
SDA EQU P3.7

MAIN:
SETB EA
SETB EX1
;===========================================
MOV A,CHE_DO
LCALL READ_DATA_DS1307
LCALL HIEN_THI_LED
CJNE A,#0,CAI_DAT
JMP MAIN
CAI_DAT:
LCALL KIEM_TRA_KEY
LJMP MAIN
CHON_CHE_DO:
INC CHE_DO
MOV A,CHE_DO
CJNE A,#8,THOAT
mov CHE_DO,#0
THOAT:
LCALL HIEN_THI_LED
JNB INT1,THOAT
RETI
;======================= CTC DOC DU LIEU ==================
READ_DATA_DS1307:
LCALL DOC_SEC
LCALL DOC_MIN
LCALL DOC_HOUR
LCALL DOC_DAY
LCALL DOC_DATE
LCALL DOC_MONTH
LCALL DOC_YEAR
RET
DOC_SEC:
MOV ADD_LOW,#00H
LCALL READ_BYTE
MOV A,DATA_DS
LCALL BCD_HEX
MOV SEC,A
LCALL I2C_STOP
RET
DOC_MIN:
MOV ADD_LOW,#01H
LCALL READ_BYTE
MOV A,DATA_DS
LCALL BCD_HEX
MOV MIN,A
LCALL I2C_STOP
RET
DOC_HOUR:
MOV ADD_LOW,#02H
LCALL READ_BYTE
MOV A,DATA_DS
LCALL BCD_HEX
MOV HOUR,A
LCALL I2C_STOP
RET
DOC_DAY:
MOV ADD_LOW,#03H
LCALL READ_BYTE
MOV A,DATA_DS
CALL BCD_HEX
MOV DAY,A
LCALL I2C_STOP
RET
DOC_DATE:
MOV ADD_LOW,#04H
LCALL READ_BYTE
MOV A,DATA_DS
CALL BCD_HEX
MOV DATE,A
LCALL I2C_STOP
RET
DOC_MONTH:
MOV ADD_LOW,#05H
LCALL READ_BYTE ; CHUONG TRINH DOC BYTE
MOV A,DATA_DS
CALL BCD_HEX
MOV MONTH,A ;DU LIEU DAY
LCALL I2C_STOP
RET
DOC_YEAR:
MOV ADD_LOW,#06H
LCALL READ_BYTE
MOV A,DATA_DS
CALL BCD_HEX
MOV YEAR,A
LCALL I2C_STOP
RET

;=================== CHUONG TRINH CON GIAO TIEP I2C VOI DS1307==============
;===================== CHUONG TRINH CON TAO " STOP AND START " TRONG I2C =============
I2C_STOP:
CLR SDA
SETB SCL
NOP
SETB SDA
RET
;================== CHUONG TRINH CON DE GHI DATA TRONG I2C ==============
WRITE_BYTE:

CLR SCL
SETB SDA
SETB SCL
CLR SDA
MOV A,#BYTE_W ;GUI TIN HIEU DK
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE; KIEM TRA SDA
CLR SCL
MOV A,ADD_LOW ;GUI DIA CHI
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE
CLR SCL
MOV A,DATA_DS ;GUI DU LIEU
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,WRITE_BYTE
CLR SDA
CLR SCL
SETB SCL ;DUNG BIT
SETB SDA
RET
;========================= CHUONG TRINH CON DE GUI 1 BYTE TRONG I2C===============
LOOP_WRITE_BYTE:

MOV R2,#08H

LOOP_SEND:

CLR SCL
RLC A
MOV SDA,C
SETB SCL
DJNZ R2,LOOP_SEND
CLR SCL
SETB SDA
RET

;======================== CHUONG TRINH CON DE DOC DATA TRONG I2C==============
READ_BYTE:
CLR SCL
SETB SDA
SETB SCL
CLR SDA
MOV A,#BYTE_W
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE ;KIEM TRA SDA CO BAN
CLR SCL
MOV A,ADD_LOW
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE ;KIEM TRA SDA CO BAN
CLR SCL
SETB SCL
SETB SDA

CLR SDA
CLR SCL
MOV A,#BYTE_R ;GUI TIN HIEU DK DOC 1 BYTE
LCALL LOOP_WRITE_BYTE
SETB SDA
SETB SCL
JB SDA,READ_BYTE
CLR SCL
LCALL LOOP_READ
SETB SDA
SETB SCL
CLR SCL
SETB SCL ;DUNG DOC BIT
SETB SDA
RET
;============CHUONG TRINH CON DE DOC 1 BYTE TRONG I2C==============
LOOP_READ:
MOV R2,#08H
LOOP_READ1:
CLR SCL
SETB SCL
MOV C,SDA
RLC A
DJNZ R2,LOOP_READ1
CLR SCL
SETB SDA
MOV DATA_DS,A
RET
;=============================CHUONG TRINH DOI MA====================
BCD_HEX:
MOV B,#10H
DIV AB ; SO DU LUU TAI B
MOV TAM,B ;LUU HANG DON VI VAO TAM
MOV B,#10
MUL AB ; BYTE THAP VAO A, BYTE CAO VAO B
ADD A,TAM
RET
;===========================================
HEX_BCD:
MOV B,#10
DIV AB
MOV TAM,B
MOV B,#10H
MUL AB
ADD A,TAM
RET
;============================================
HIEN_THI_LED:

HIEN_THI_SEC:
MOV B,#10
MOV A,SEC
DIV AB
MOV Q0_SEC,B
MOV Q1_SEC,A
LCALL HIEN_LED
HIEN_THI_MIN:
MOV B,#10
MOV A,MIN
DIV AB
MOV Q0_MIN,B
MOV Q1_MIN,A
LCALL HIEN_LED
HIEN_THI_HOUR:
MOV B,#10
MOV A,HOUR
DIV AB
MOV Q0_HOUR,B
MOV Q1_HOUR,A
LCALL HIEN_LED
HIEN_THI_DAY:
MOV B,#10
MOV A,DAY
DIV AB
MOV Q0_DAY,B
MOV Q1_DAY,A
HIEN_THI_DATE:
MOV B,#10
MOV A,DATE
DIV AB
MOV Q0_DATE,B
MOV Q1_DATE,A
LCALL HIEN_LED
HIEN_THI_MONTH:
MOV B,#10
MOV A,MONTH
DIV AB
MOV Q0_MONTH,B
MOV Q1_MONTH,A
LCALL HIEN_LED
HIEN_THI_YEAR:
MOV B,#10
MOV A,YEAR
DIV AB
MOV Q0_YEAR,B
MOV Q1_YEAR,A
LCALL HIEN_LED
RET
;=========================================
DELAY:
LCALL DELAY_5MS
DJNZ I,DELAY
MOV I,#20
RET

DELAY_5MS:
MOV TMOD,#01h
MOV TH0,#high(-2000)
MOV TL0,#low(-2000)
SETB TR0
JNB TF0,$
CLR TF0
RET
////////////////000000////////////////////////////////////



KIEM_TRA_KEY:
KIEM_TRA_SEC:
MOV A,CHE_DO
CJNE A,#1,KIEM_TRA_MIN
LCALL CHINH_SEC
KIEM_TRA_MIN:
MOV A,CHE_DO
CJNE A,#2,KIEM_TRA_HOUR
LCALL CHINH_MIN
KIEM_TRA_HOUR:
MOV A,CHE_DO
CJNE A,#3,KIEM_TRA_DAY
LCALL CHINH_HOUR
KIEM_TRA_DAY:
MOV A,CHE_DO
CJNE A,#4,KIEM_TRA_DATE
LCALL CHINH_DAY
KIEM_TRA_DATE:
MOV A,CHE_DO
CJNE A,#5,KIEM_TRA_MONTH
LCALL CHINH_DATE
KIEM_TRA_MONTH:
MOV A,CHE_DO
CJNE A,#6,KIEM_TRA_YEAR
LCALL CHINH_MONTH
KIEM_TRA_YEAR:
MOV A,CHE_DO
CJNE A,#7,RA
LCALL CHINH_YEAR
RA:
RET
///////////////////0000000000000000////////////////////////

CHINH_SEC:
LCALL DOC_SEC
SEC1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_SEC
JNB P3.5,GIAM_SEC
MOV A,CHE_DO
CJNE A,#1,THOAT_SEC
LJMP SEC1
THOAT_SEC:
RET
TANG_SEC:
INC SEC
MOV A,SEC
CJNE A,#60,SEC2
MOV SEC,#0
INC MIN
SEC2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#00H
LCALL WRITE_BYTE
SEC3:
LCALL HIEN_THI_LED
JNB P3.4,SEC3
LJMP SEC1
GIAM_SEC:
DEC SEC
MOV A,SEC
CJNE A,#255,SEC4
MOV SEC,#59
DEC MIN
SEC4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#00H
LCALL WRITE_BYTE
SEC5:
LCALL HIEN_THI_LED
JNB P3.5,SEC5
LJMP SEC1
/////////////////////000000000000////////////////////
CHINH_MIN:
LCALL DOC_MIN
MIN1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_MIN
JNB P3.5,GIAM_MIN
MOV A,CHE_DO
CJNE A,#2,THOAT_MIN
LJMP MIN1
THOAT_MIN:
RET
TANG_MIN:
INC MIN
MOV A,MIN
CJNE A,#60,MIN2
MOV MIN,#0
INC HOUR
MIN2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#01H
LCALL WRITE_BYTE
MIN3:
LCALL HIEN_THI_LED
JNB P3.4,MIN3
LJMP MIN1
GIAM_MIN:
DEC MIN
MOV A,MIN
CJNE A,#255,MIN4
MOV MIN,#59
DEC HOUR
MIN4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#00H
LCALL WRITE_BYTE
MIN5:
LCALL HIEN_THI_LED
JNB P3.5,MIN5
LJMP MIN1
//////////////////00000000000000000////////////////////
CHINH_HOUR:
LCALL DOC_HOUR
HOUR1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_HOUR
JNB P3.5,GIAM_HOUR
MOV A,CHE_DO
CJNE A,#3,THOAT_HOUR
LJMP HOUR1
THOAT_HOUR:
RET
TANG_HOUR:
INC HOUR
MOV A,HOUR
CJNE A,#24,HOUR2
MOV HOUR,#0
HOUR2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#02H
LCALL WRITE_BYTE
HOUR3:
LCALL HIEN_THI_LED
JNB P3.4,HOUR3
LJMP HOUR1
GIAM_HOUR:
DEC HOUR
MOV A,HOUR
CJNE A,#255,HOUR4
MOV HOUR,#23
HOUR4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#02H
LCALL WRITE_BYTE
HOUR5:
LCALL HIEN_THI_LED
JNB P3.5,HOUR5
LJMP HOUR1
//////////////000000000000000////////////////////
CHINH_DAY:
LCALL DOC_DAY
DAY1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_DAY
JNB P3.5,GIAM_DAY
MOV A,CHE_DO
CJNE A,#4,THOAT_DAY
LJMP DAY1
THOAT_DAY:
RET
TANG_DAY:
INC DAY
MOV A,DAY
CJNE A,#8,DAY2
MOV DAY,#1
DAY2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#03H
LCALL WRITE_BYTE
DAY3:
LCALL HIEN_THI_LED
JNB P3.4,DAY3
LJMP DAY1
GIAM_DAY:
DEC DAY
MOV A,DAY
CJNE A,#255,DAY4
MOV DAY,#1
DAY4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#03H
LCALL WRITE_BYTE
DAY5:
LCALL HIEN_THI_LED
JNB P3.5,DAY5
LJMP DAY1
////////////////////000000000000000///////////////////////
CHINH_DATE:
LCALL DOC_DATE
DATE1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_DATE
JNB P3.5,GIAM_DATE
MOV A,CHE_DO
CJNE A,#5,THOAT_DATE
LJMP DATE1
THOAT_DATE:
RET
TANG_DATE:
INC DATE
MOV A,DATE
CJNE A,#32,DATE2
MOV DATE,#1
INC MONTH
DATE2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#04H
LCALL WRITE_BYTE
DATE3:
LCALL HIEN_THI_LED
JNB P3.4,DATE3
LJMP DATE1
GIAM_DATE:
DEC DATE
MOV A,DATE
CJNE A,#255,DATE4
MOV DATE,#1
DEC MONTH
DATE4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#04H
LCALL WRITE_BYTE
DATE5:
LCALL HIEN_THI_LED
JNB P3.5,DATE5
LJMP DATE1
//////////////0000000000000///////////////////////
CHINH_MONTH:
LCALL DOC_MONTH
MONTH1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_MONTH
JNB P3.5,GIAM_MONTH
MOV A,CHE_DO
CJNE A,#6,THOAT_MONTH
LJMP MONTH1
THOAT_MONTH:
RET
TANG_MONTH:
INC MONTH
MOV A,MONTH
CJNE A,#13,MONTH2
MOV MONTH,#1
INC YEAR
MONTH2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#05H
LCALL WRITE_BYTE
MONTH3:
LCALL HIEN_THI_LED
JNB P3.4,MONTH3
LJMP MONTH1
GIAM_MONTH:
DEC MONTH
MOV A,MONTH
CJNE A,#255,MONTH4
MOV MONTH,#1
DEC YEAR
MONTH4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#05H
LCALL WRITE_BYTE
MONTH5:
LCALL HIEN_THI_LED
JNB P3.5,MONTH5
LJMP MONTH1
/////////////////00000000000000000//////////////////////
CHINH_YEAR:
LCALL DOC_YEAR
YEAR1:
LCALL HIEN_THI_LED
JNB P3.4,TANG_YEAR
JNB P3.5,GIAM_YEAR
MOV A,CHE_DO
CJNE A,#7,THOAT_YEAR
LJMP YEAR1
THOAT_YEAR:
RET
TANG_YEAR:
INC YEAR
MOV A,YEAR
CJNE A,#100,YEAR2
MOV YEAR,#1
YEAR2:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#06H
LCALL WRITE_BYTE
YEAR3:
LCALL HIEN_THI_LED
JNB P3.4,YEAR3
LJMP YEAR1
GIAM_YEAR:
DEC YEAR
MOV A,YEAR
CJNE A,#255,YEAR4
MOV YEAR,#1
YEAR4:
LCALL HEX_BCD
MOV DATA_DS,A
MOV ADD_LOW,#06H
LCALL WRITE_BYTE
YEAR5:
LCALL HIEN_THI_LED
JNB P3.5,YEAR5
LJMP YEAR1
////////////0000000000000000000////////////////////////////
;==========================================================
HIEN_LED:

HIEN_SEC:
MOV A,Q0_SEC
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.5

LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS

;=========================
MOV A,Q1_SEC
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.0

LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENMIN:
MOV A,Q0_MIN
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.1
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
;============================
MOV A,Q1_MIN
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.2
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENHOUR:
MOV A,Q0_HOUR
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.3
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
;=================================
MOV A,Q1_HOUR
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.4
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENDAY:
MOV A,Q0_DAY
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.5
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENDATE:
MOV A,Q0_DATE
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P1.6
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
;=============================
MOV A,Q1_DATE
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.0
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENMONTH:
MOV A,Q0_MONTH
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.1
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
;=================================
MOV A,Q1_MONTH
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.2
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
HIENYEAR:
MOV A,Q0_YEAR
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.3
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
;==========================
MOV A,Q1_YEAR
MOV DPTR,#MALED
MOVC A,@A+DPTR
MOV P0,A
SETB P2.4
LCALL DELAY_5MS
MOV P1,#00H
MOV P2,#00H
LCALL DELAY_5MS
RET
MALED:
DB 00111111b,00000110b,01011011b,01001111b,01100110b,01101101b,01111101b,00000111b,01111111b,01101111b
END
;========= NGUYEN VAN KY HUNG VA DO TRUONG GIANG ============

 
Gửi ý kiến

↓ CHÚ Ý: Bài giảng này được nén lại dưới dạng RAR và có thể chứa nhiều file. Hệ thống chỉ hiển thị 1 file trong số đó, đề nghị các thầy cô KIỂM TRA KỸ TRƯỚC KHI NHẬN XÉT  ↓