1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

hỏi gấp về giao tiếp 8051 với led 7 đoạn

Thảo luận trong 'Vi điều khiển - Mạch Số' bắt đầu bởi cuocdoi, 24 Tháng hai 2010.

  1. cuocdoi New Member

    Số bài viết: 6
    Đã được thích: 0
    Điểm thành tích: 0
    dưới đây là đoạn code của một bài tập lớn:
    mạch đồng hồ số sử dụng vđk 89V51 điều khiển thời gian từ ic DS12C887 hiển thị bằng led 7 đoạn.(hình vẽ bên dưới)
    mình kiếm được trên mạng

    Mính đọc chỗ này chưa hiểu lắm, mong các bạn giải thích
    ------------
    REGA EQU 0AH
    REGB EQU 0BH
    REGSEC EQU 00H
    REGMIN EQU 02H
    REGHOUR EQU 04H
    HOUR EQU 50H
    MIN EQU 51H
    SEC EQU 52H
    ----------
    EQU là lệnh gì là vậy? Hình như chỗ này là khai báo địa chỉ phải không?
    0Ah, 0bh, 00h, 02h,04h,50h,51h,52h: ở đâu mà có các địa chỉ này? làm sao xác định được các địa chỉ này?
    Mã:
    $MOD51
     ; MA CAC THONG SO **********************************
    REGA  EQU 0AH
     REGB  EQU 0BH
     REGSEC EQU 00H
     REGMIN EQU 02H
     REGHOUR EQU 04H
     HOUR  EQU 50H
     MIN  EQU 51H
     SEC  EQU 52H
     MENU_SW BIT P3.0
     SW_TANG BIT P3.1
     SW_GIAM BIT P3.2
       ORG 00H
       SJMP MAIN
       ORG 30H
     ;*****************************************************  **
    MAIN:
     MOV SP,#6FH ; TAO NGAN NHO SP
     ACALL THIETLAP_DS ;  KHOI DONG DS12C887
    HIENTHI:
     ACALL READ_TIMER_DS ; DOC THOI GIAN  TU DS12C887
     ACALL GM_BCD_7DOAN ; GOI CTC GIAI MA 7 DOAN - BCD
     ACALL QUET6  ;  QUET HIEN THI
     JB MENU_SW,THOAT ; KIEM TRA NUT MEMU CO DUOC NHAN  CHUA
     ACALL XULINUTNHAN ; GOI CTC XULINUTNHAN NEU NUT DUOC NHAN
    THOAT:
     SJMP HIENTHI ;  TIEP TUC HIEN THI NEU KHONG NHAN NUT
    ;///*********************************///********************  ********///*************************** 
    THIETLAP_DS: ;CHUONG TRINH  CON THIET LAP CHE DO BAN DAU CHO RTC
     PUSH 00H ; CAT TAM GIAI TRI VAO  NGAN XEP
     PUSH ACC
     MOV R0,#REGA ;DIA CHI THANH GHI A 
     MOV A,#0A0H ;KHOI  DONG OSC, TAC SQW OUT
     MOVX @R0,A  ; GHI VAO DS
     MOV R0,#REGB 
     MOV A,#02H  ;  GIA TRI TOI DA CUA GIO LA 24H, VA CAC NUT LA 9
     MOVX @R0,A 
     POP ACC  ;PHUC  HOI GIA TRI THANH GHI
     POP 00H
    RET
    ;///*******************************///
    NAP: ;CHUONG  TRINH CON NAP THOI GIAN VAO RTC
     PUSH 00H
     PUSH ACC
     MOV R0,#REGSEC ;DIA  CHI THANH GHI GIAY 
     MOV A,SEC  ;LAY GIA TRI DA QUY DINH
     MOVX @R0,A  ;  NAP VAO DS
     MOV R0,#REGMIN ; DIA CHI THANH GHI PHUT
     MOV A,MIN  
     MOVX @R0,A
     MOV R0,#REGHOUR ;  DIA CHI THANH GHI GIO
     MOV A,HOUR
     MOV @R0,A
     POP ACC
     POP 00H
    RET
    ;///**********************************///
    READ_TIMER_DS:  ;CHUONG  TRINH CON DOC GIA TRI THOI GIAN TU RTC
     PUSH 00H
     PUSH ACC
     MOV R0,#REGSEC ;  DIA CHI THANH GHI GIAY
     MOVX A,@R0  ; DOC TU DS
     MOV R4,A  ; NAP  GIA TRI TREN VAO VUNG NHO R4 DE HIEN THI
     MOV R0,#REGMIN ; DIA CHI  THANH GHI PHUT
     MOVX A,@R0  
     MOV R5,A  
     MOV R0,#REGHOUR ; DIA  CHI THANH GHI GIO
     MOVX A,@R0  
     MOV R6,A  
     
     POP ACC
     POP 00H
    RET
    ;///*********************************///
    XULINUTNHAN:   ;CHUONG  TRINH CON XU LI CAC NUT MODE, INC DEC
     PUSH 00H
     ACALL DELAYPU ;TOI  GIAN NHAN BIET KHI NHAN NUT
     JNB MENU_SW,XULINUTNHAN ;KIEM TRA NUT  NHAN
     ACALL DELAYPU
     MOV R0,#04H  ; DUA GHIA TRI CUA GIAY (R4) VAO  XU LI
     ACALL KHINHANNUT   
     MOV R0,#05H  ; DUA GIA TRI CUA PHUT  (R5) VAO XU LI
     ACALL KHINHANNUT   
     MOV R0,#06H  ; DUA GIA TRI  CUA GIO (R6) VAO DE XU LI
     ACALL KHINHANNUT  
     POP 00H
    RET
    ;///********************************///
    KHINHANNUT:    
     PUSH 07H   
     PUSH 06H   
     PUSH 50H   
     MOV R7,#200  ;  GIA TRI LAP LAI THOI GIAN O TRANG THAI SANG OR TAT
     MOV R6,#10   ;GIA  TRI LAP LAI QUA TRINH SANG_TAC CAC LED 
    LOOP_ONOFF:    ;VONG LAP CUA  MOT TRANG THAI SANG_TAT
     MOV 50H,@R0  
     MOV @R0,#12H  
    LOOP_OFF:    ;VONG  LAP CUA THOI GIAN LAM TAT LED DANG DIEU CHINH
     ACALL GM_BCD_7DOAN 
     ACALL QUET6   
     DJNZ R7,LOOP_OFF  
     MOV R7,#200  
     MOV @R0,50H  
    LOOP_ON:    ;VONG  LAP CUA THOI GIAN LAM SANG LED DANG DIEU CHINH
     ACALL GM_BCD_7DOAN 
     ACALL QUET6
     JNB SW_TANG,TANG_PRESS
     JNB SW_GIAM,GIAM_PRESS
     JNB MENU_SW,MENU_PRESS
     SJMP NO_kEY   
    TANG_PRESS:  
     INC @R0   ;  TANG GIA TRI THOI GIAN
    PU_TANG:    ;NHAN BIET KHI NHAN NUT SW+
     ACALL DELAYPU  
     JNB SW_TANG,PU_TANG
     ACALL DELAYPU  
     MOV R7,#200   
     MOV R6,#10   
     SJMP LOOP_ON   
    GIAM_PRESS:
     DEC @R0   ;GIAM  GIA TRI THOI GIAN
    PU_GIAM:    ;NHAN BIET KHI NHAN NUT SW-
     ACALL DELAYPU  
     JNB SW_GIAM,PU_GIAM 
     ACALL DELAYPU
     MOV R7,#200
     MOV R6,10
     SJMP LOOP_ON
    MENU_PRESS:    ;NHAN  BIET KHI NHAN NUT MENU
     ACALL DELAYPU
     JNB MENU_SW,MENU_PRESS
     ACALL DELAYPU
     SJMP EXIT_PROCESS
    NO_KEY:   ;KIEM  TRA KHI KHONG CO NUT NAO DUOC NHAN
     DJNZ R7,LOOP_ON  
     DJNZ R6,LOOP_ONOFF 
    EXIT_PROCESS:   ;THOAT  XU LI NUT DE QUAY VE HIEN THI
     POP 50H
     POP 06H
     POP 07H
    RET
    ;///*******************************************///
    ;LED  ANOT CHUNG: DP(MSB)-A(LSB), GIA TRI GIAI MA : 0-9
    ;INPUT: R6=BCD NEN  GIO
    ;  R5=BCD NEN PHUT
    ;  R4=BCD NEN GIAY
    ;OUTPUT: 65H,64H=MA 7  DOAN GIO
    ;  63H,62H=MA 7 DOAN PHUT
    ;  61H,60H=MA 7 DOAN GIAY
    GM_BCD_7DOAN:  ;CTC  GIA MA 7 DOAN
     PUSH DPH 
     PUSH DPL
     PUSH ACC
     
     MOV DPTR,#CODE7SEG  
     MOV R7,#0AAH  
     MOV A,R4   
     ANL A,#0FH  
     MOVC A,@A+DPTR  
     MOV 60H,A   
     
     MOV A,R4   
     ANL A,#0F0H  
     SWAP A   
     MOVC A,@A+DPTR  
     MOV 61H,A
     
     MOV A,R5
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV 62H,A
     
     MOV A,R5
     ANL A,#0F0H
     SWAP A   
     MOVC A,@A+DPTR  
     MOV 63H,A
     
     MOV A,R6
     ANL A,#0FH
     MOVC A,@A+DPTR
     MOV 64H,A
     
     MOV A,R6
     ANL A,#0F0H
     SWAP A   
     MOVC A,@A+DPTR  
     MOV 65H,A
     
     POP ACC
     POP DPL
     POP DPH
    RET
     CODE7SEG:        &am p;am p;nb sp;;VUNG CHUA MA 7 DOAN(0-9)
       DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H&a mp;a mp;n bsp;;SO  0-9
     DB 0FFH         ;MA LAM TAT CAC LED
    ;///***********************************************///
    ;INPUT: 65H,64H=TR  NGAN-CH NGAN
    ;  63H,62H=NGAN-TRAM
    ;  61H,60H=CHUC-DONVI
    ;OUTPUT: P1=7  DOAN-DP(MSB)-A(LSB)
    ;  P2=CHONLED LEFT(MSD)-RIGHT(LSD)
    QUET6:   ;CTC  QUET HIEN THI 6 LED 7 DOAN
     PUSH ACC
     PUSH 00H
     MOV A,#0DFH 
     MOV R0,#65H 
    DISP:
     MOV P0,@R0 
     MOV P1,A  
     LCALL DELAYLED
     MOV P1,#0FFH 
     DEC R0  
     RR A  
     CJNE R0,#5FH,DISP 
     POP 00H
     POP ACC
    RET
    ;///*************************************************///
    DELAYLED: ;  CTC TAO THOI GIAN TRE 2.5MS KO DUNG TMOD
     PUSH 00H
     PUSH 01H
     MOV R1,#5
    DEL:
     MOV R0,#250
     DJNZ R0,$
     DJNZ R1,DEL
     POP 01H
     POP 00H
    RET
    ;///**************************************************///
    DELAYPU: ;  CTC TAO THOI GIAN TRE 1MS PHAN UNG KHI NHAN HOAC NHA NUT KO DUNG TMOD
     PUSH 00H
     PUSH 01H
     MOV R1,#10
    DEL1:
     MOV R0,#50
    DEL2:
     ACALL GM_BCD_7DOAN
     LCALL QUET6
     DJNZ R0,DEL2
     DJNZ R1,DEL1
     POP 01H
     POP 00H
    RET
    END
    [IMG]

  2. papapipinhom New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
  3. 24h_newload New Member

    Số bài viết: 194
    Đã được thích: 0
    Điểm thành tích: 0
  4. quocbao_haui New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    equ : là cú pháp khai báo hằng trong bộ lệnh lập trình,Bạn xem lại cuốn lập trình bằng ngôn ngữ ASM
  5. stucdt2972 New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này