Thông báo

Collapse
No announcement yet.

Đồng hồ kỹ thuật số dùng vi xử lý đếm led 7 đoạn

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Đồng hồ kỹ thuật số dùng vi xử lý đếm led 7 đoạn

    Mình đang làm một đồ án về mạch đồng hồ số với led 7 đoạn mình chỉ viết được chương trình đếm giờ phút giây và mô phỏng chạy trên protues rồi nhưng bị gặp khó khăn về mấy cái nút nhấn để tăng phút và giờ bạn nào giỏi về 89C51 giúp mình với hoặc ai có đoạn code nào thì cho mình xin nhé code viết bằng Assembler ấy .
    Nếu ai có thì gửi cho mình theo địa chỉ nay nhé : tuanvupro1989@gmail.com
    Mong các huynh đệ trong giang hồ ra tay tương trợ .
    Mình vẽ trên orcad có các linh kiện như sau:
    Port 0 giao tiếp với IC giải mã 74247
    Led 7 đoạn là loại katot
    Transistor là loại npn
    Nút nhấn port 3.0 tang giờ
    Nút nhấn port 3,1 tăng phút
    Nút nhấn port 3.2 vào chương trình tăng thời gian
    Nút nhấn port 3.3 thoát chương trình tăng thời gian
    Nút reset thiết lập lại trang thái ban đầu


    Chương trình đếm giờ phút giây chưa có nút nhấn để ngắt:

    ;O NHO R5 CHUA GIO
    ;O NHO R6 CHUA PHUT
    ;O NHO R7 CHUA GIAY
    ;40 = DON VI GIAY
    ;41 = CHUC GIAY
    ;42 = DON VI PHUT
    ;43 = CHUC PHUT
    ;44 = DON VI GIO
    ;45 = CHUC GIO
    $MOD51
    ORG 0000H
    MAIN:
    MOV R5,#0
    MOV R6,#0
    MOV R7,#0


    HIENTHILAI:
    CALL DOIBCD
    MOV R0,#50
    LAP:
    CALL HIENTHI
    DJNZ R0,LAP
    INC R7
    CJNE R7,#60,HIENTHILAI
    MOV R7,#0
    INC R6
    CJNE R6,#60,HIENTHILAI
    MOV R6,#0
    INC R5
    CJNE R5,#24,HIENTHILAI
    JMP MAIN

    DOIBCD:
    MOV A,R5
    MOV B,#10
    DIV AB
    MOV 44H,B
    MOV 45H,A

    MOV A,R6
    MOV B,#10
    DIV AB
    MOV 42H,B
    MOV 43H,A

    MOV A,R7
    MOV B,#10
    DIV AB
    MOV 40H,B
    MOV 41H,A

    RET

    HIENTHI:

    MOV P1,#01H
    MOV P0,40H
    CALL DELAY
    MOV P1,#02H
    MOV P0,41H
    CALL DELAY
    MOV P1,#04H
    MOV P0,42H
    CALL DELAY
    MOV P1,#08H
    MOV P0,43H
    CALL DELAY
    MOV P1,#10H
    MOV P0,44H
    CALL DELAY
    MOV P1,#20H
    MOV P0,45H
    CALL DELAY
    RET
    DELAY:
    MOV TMOD,01H
    MOV TH0,#HIGH(-50000)
    MOV TL0,#LOW(-50000)
    SETB TR0
    JNB TF0,$
    CLR TR0
    CLR TF0
    RET
    END




    Chân thành cám ơn các bạn

  • #2
    Bạn nên sử dụng 2 nút nhấn trên chân ngắt ngoài int0 và int1 và lập trình 2 chương trình phục vụ ngắt để chỉnh tăng giờ và tăng phút.

    Comment


    • #3
      ;************************************************* **

      ;CHUONG TRINH DIEU KHIEN HIEN THI DEM GIO - PHUT - GIAY

      ;(LED1,2 DEM GIAY, LED3,4 DEM PHUT, LED5,6 DEM GIO)

      ;************************************************* **

      ;CAC DOAN (A-G) -> PORT0. CHON LED 7 DOAN (8 LED) -> PORT1

      ;NUT MODE -> P3.0, UP -> P3.1, DOWN -> P3.2

      ;************************************************* **

      $MOD51

      GIAY EQU R2

      PHUT EQU R3

      GIO EQU R4

      B_GIAY EQU R7

      B_MODE EQU R6

      MODE BIT P3.0

      UP BIT P3.1

      D0WN BIT P3.2

      ORG 000H

      LJMP MAIN

      ORG 00BH

      LJMP ISR_T0

      MAIN:

      MOV TMOD,#01H ;CHE DO TIMER - MODE 1

      MOV TH0,#3CH ;THOI GIAN TIMER - 50MS

      MOV TL0,#0B0H

      CLR TF0 ;XOA CO TRAN

      SETB TR0 ;CHAY TIMER

      MOV IE,#82H ;CHO PHEP NGAT TIMER0

      MOV B_MODE,#0

      TD:

      MOV GIO,#0 ;NAP GIA TRI GIO BAN DAU

      X4:

      MOV PHUT,#0 ;NAP GIA TRI PHUT BAN DAU

      X3:

      MOV GIAY,#0 ;NAP GIA TRI GIAY BAN DAU

      MOV B_MODE,#0

      X2:

      MOV B_GIAY,#0 ;NAP GIA TRI BAN DAU CHO BIEN DEM SO LAN NGAT TIMER

      LCALL HEX_BCD ;DOI GIA TRI THOI GIAN -> BCD -> MA 7 DOAN

      LCALL BCD_7DOAN

      X1:

      LCALL HIENTHI ;HIEN THI THOI GIAN

      JNB MODE,ADJ ;KIEM TRA NUT MODE - DUNG -> PHAN CHINH THOI GIAN ADJ

      CJNE B_GIAY,#20,X1 ;KIEM TRA SO LAN NGAT TIMER - 20 LAN x 50MS = 1S

      INC GIAY ;TANG GIAY

      CJNE GIAY,#60,X2 ;SO SANH DU 60 GIAY - CHUA DU -> QUAY LAI HIEN THI

      INC PHUT ;TANG PHUT

      CJNE PHUT,#60,X3 ;SO SANH DU 60 PHUT - CHUA DU -> QUAY LAI HIEN THI

      INC GIO ;TANG GIO

      CJNE GIO,#24,X4 ;SO SANH DU 60 GI0 - CHUA DU -> QUAY LAI HIEN THI

      SJMP TD ;DU -> QUAY LAI TU DAU

      ;************************************************* **

      ;CHUONG TRINH CON DOI HEX -> BCD (TACH SO HEX)

      ;************************************************* **

      ;R2 -> 11H & 10H, R3 -> 13H & 12H, R4 -> 15H & 14H

      ;************************************************* **

      HEX_BCD:

      MOV R0,#02 ;NAP DIA CHI DAU CUA VUNG NHO CHUA SO HEX

      MOV R1,#10H ;NAP DIA CHI DAU CUA VUNG NHO CHUA SO BCD

      H1:

      MOV B,#10 ;

      MOV A,@R0 ;LAY SO HEX CAN CHUYEN DOI

      DIV AB ;CHIA 10 DE TACH RIENG BYTE THAP VA BYTE CAO

      MOV @R1,B ;CAT BYTE THAP

      INC R1 ;TANG DIA CHI VUNG NHO CHUA SO BCD

      MOV @R1,A ;CAT BYTE CAO

      INC R0 ;TANG DIA CHI VUNG NHO CHUA SO HEX

      INC R1 ;TANG DIA CHI VUNG NHO CHUA SO BCD

      CJNE R0,#05H,H1 ;KIEM TRA HOAN TAT VIEC CHUYEN DOI

      RET

      ;************************************************* **

      ;CHUONG TRINH CON DOI SO BCD -> MA 7 DOAN

      ;************************************************* **

      ;SO BCD (10H - 15H) -> MA 7 DOAN (20H - 25H)

      ;************************************************* **

      BCD_7DOAN:

      MOV DPTR,#200H ;NAP DIA CHI VUNG CHUA MA 7 DOAN

      MOV R0,#10H ;NAP DIA CHI DAU TIEN CUA VUNG NHO CHUA SO BCD

      MOV R1,#20H ;NAP DIA CHI DAU TIEN CUA VUNG NHO CHUA MA 7 DOAN

      B1:

      MOV A,@R0 ;GIAI MA

      MOVC A,@A+DPTR

      MOV @R1,A

      INC R0 ;TANG DIA CHI VUNG NHO CHUA SO BCD

      INC R1 ;TANG DIA CHI VUNG NHO CHAU MA 7 DOAN

      CJNE R0,#16H,B1 ;KEM TRA HOAN TAT VIEC GIAI MA

      RET

      ;************************************************* **

      ;CHUONG TRINH CON HIEN THI (20H - 25H)

      ;************************************************* **

      HIENTHI:

      MOV R0,#20H ;DIA CHI DAU TIEN CUA VUNG CHUA DU LIEU CAN HIEN THI

      MOV A,#0FEH ;MA QUET DAU TIEN

      HT1:

      MOV P0,@R0 ;LAY DU LIEU CAN HIEN THI

      MOV P1,A ;XUAT MA QUET

      LCALL DELAY

      MOV P1,#0FFH ;TAT LED DE CHONG LEM

      LCALL DELAY

      INC R0 ;CHUYEN SANG DIA DIA KE TIEP

      RL A ;THAY DOI MA QUET

      CJNE A,#0BFH,HT1 ;KIEM TRA QUET XONG CHUA - CHUA XONG -> QUAY VE LAM TIEP

      RET ;TRO LAI KHI DA QUET VA HIEN THI XONG

      ;************************************************* **

      ISR_T0: ;ISR TIMER0 - 50MS

      CLR TR0

      CLR TF0

      MOV TH0,#3CH

      MOV TL0,#0B0H

      INC B_GIAY ;TANG BIEN DEM SO LAN NGAT - 1 LAN = 50MS

      SETB TR0

      RETI

      ;************************************************* **

      ADJ: ;CHUONG TRINH CON XU LY NUT MODE

      LCALL HIENTHI

      JNB MODE,ADJ ;KIEM TRA NHU MODE DA DUOC THA RA HAY CHUA

      INC B_MODE ;TANG SO LAN NHAN NUT MODE

      CJNE B_MODE,#4,ADJ_GPG ;KIEM TRA SO LAN NHAT NUT MODE

      MOV B_MODE,#0 ;DU 3 LAN -> TRO LAI TU DAU

      MOV B_GIAY,#0

      SJMP X2

      ;************************************************* **

      ADJ_GPG:

      LOOP1:

      MOV 76H,#10 ;SO LAN CHOP TAT CAP LED DANG DUOC CHINH

      LOOP2:

      MOV 77H,#0FFH ;SO LAN KIEM TRA NUT NHAN

      LCALL HEX_BCD

      LCALL BCD_7DOAN

      LOOP:

      LCALL HIENTHI

      CJNE B_GIAY,#20,Z1 ;KIEM TRA SO LAN NGAT - CHUA DU THI KIEM TRA NUT NHAN

      LJMP TANGGIAY ;DU 20 LAN NGAT -> TANG GIAY

      Z1:

      JNB UP,TANG ;KIEM TRA NUT UP

      JNB D0WN,GIAM ;KIEM TRA NUT DOWN

      JNB MODE,ADJ ;KIEM TRA NUT MODE

      DJNZ 77H,LOOP ;GIAM SO LAN KIEM TRA NUT NHAN

      MOV 77H,#0FFH ;NAP SO LAN TAT (THOI GIAN TAT)

      CJNE B_MODE,#1,SS11 ;KIEM TRA NHAN MODE 1 LAN - SAI -> KIEM TRA TIEP SS11

      MOV 24H,#0FFH ;DUNG - NHAN MODE 1 LAN -> NAP GIA TRI TAT LED...

      MOV 25H,#0FFH ;CHO PHAN "GIO"

      SJMP TAT ;HIEN THI TRANG THAI LED

      SS11:

      CJNE B_MODE,#2,SS12 ;KIEM TRA NHAN MODE 2 LAN - SAI -> KIEM TRA TIEP SS12

      MOV 22H,#0FFH ;DUNG - NHAN MODE 2 LAN -> NAP GIA TRI TAT LED...

      MOV 23H,#0FFH ;CHO PHAN "PHUT"

      SJMP TAT ;HIEN THI TRANG THAI LED

      SS12: ;NHAN MODE 3 LAN -> NAP GIA TRI TAT LED...

      MOV 20H,#0FFH ;CHO PHAN "GIAY"

      MOV 21H,#0FFH

      TAT:

      LCALL HIENTHI ;HIEN THI

      CJNE B_GIAY,#20,Z2 ;KIEM TRA SO LAN NGAT - CHUA DU THI KIEM TRA NUT NHAN

      LJMP TANGGIAY ;DU 20 LAN NGAT -> TANG GIAY

      Z2:

      JNB UP,TANG ;KIEM TRA NUT UP

      JNB D0WN,GIAM ;KIEM TRA NUT DOWN

      JNB MODE,ADJ ;KIEM TRA NUT MODE

      DJNZ 77H,TAT ;GIAM SO LAN TAT (THOI GIAN TAT)

      DJNZ 76H,LOOP2 ;GIAM SO LAN CHOP TAT CAP LED

      MOV B_MODE,#0 ;XOA SO LAN NHAN NUT MODE

      LJMP X2 ;QUAY LAI

      TANG:

      LCALL HIENTHI

      CJNE B_GIAY,#20,Z3 ;KIEM TRA SO LAN NGAT - CHUA DU THI KIEM TRA NHU NHAN

      LJMP TANGGIAY ;DU 20 LAN NGAT -> TANG GIAY

      Z3:

      JNB UP,TANG

      CJNE B_MODE,#1,SS1

      INC GIO

      CJNE GIO,#24,LOOP1

      MOV GIO,#0

      LOOP11:

      LJMP LOOP1

      SS1:

      CJNE B_MODE,#2,SS2

      INC PHUT

      CJNE PHUT,#60,LOOP1

      MOV PHUT,#0

      SJMP LOOP1

      SS2:

      INC GIAY

      CJNE GIAY,#60,Z5

      MOV GIAY,#0

      Z5:

      LJMP LOOP1



      GIAM:

      LCALL HIENTHI

      CJNE B_GIAY,#20,Z4 ;KIEM TRA SO LAN NGAT - CHUA DU THI KIEM TRA NUT NHAN

      LJMP TANGGIAY ;DU 20 LAN NGAT -> TANG GIAY

      Z4:

      JNB D0WN,GIAM

      CJNE B_MODE,#01,SS3

      DEC GIO

      CJNE GIO,#0FFH,K1

      MOV GIO,#23

      K1:

      LJMP LOOP1

      SS3:

      CJNE B_MODE,#02,SS4

      DEC PHUT

      CJNE PHUT,#0FFH,K2

      MOV PHUT,#59

      K2:

      LJMP LOOP1

      SS4:

      DEC GIAY

      CJNE GIAY,#0FFH,K3

      MOV GIAY,#59

      K3:

      LJMP LOOP1

      ;************************************************* **

      TANGGIAY:

      MOV B_GIAY,#0

      INC GIAY

      CJNE GIAY,#60,EXIT

      MOV GIAY,#0

      INC PHUT

      CJNE PHUT,#60,EXIT

      MOV PHUT,#0

      EXIT:

      LJMP LOOP

      ;************************************************* **

      DELAY: ;CHUONG TRINH CON TAO THOI GIAN TRE 150US

      MOV 7FH,#50H

      DJNZ 7FH,$

      RET

      ;************************************************* **

      ORG 200H ;VUNG MA 7 DOAN

      DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

      END
      Nhận làm mạch vi điều khiển, ghép nối máy tính, mạch xung số
      mail:
      dd: 0973423905

      Thương trường là chiến trường. tiến lên để kiếm tiền

      Comment


      • #4
        Chao ban.minh rat an tuong ve ban.ban gioi that.gio minh dang mo man tung ty mot ve cai nay.minh cung dang co y dinh lam 1 cai dong ho de xem gio cho vui,ma minh chua mo dc.ban co the huong dan minh chi tiet dc khong?
        thank ban nhieu

        Comment


        • #5
          ban oi cho minh hoi? ban dung bo giai ma gi vay?neu dung bo giai ma thi led hien thi la sang lien tuc chu khong pai sang kieu dang quet pai ko?
          tra loi minh nhanh nka.thank ban truoc

          Comment


          • #6
            Code của cdt dài kinh mà mình thấy hình như chỉ có hiển thị thôi phải hok bạn. Mạch có thêm chức năng gì nữa hok.

            Sửa lại code của chủ thớt cho dễ đọc nè thêm vào cái chỉnh giờ phút (bấm nút thì sau mỗi giây mới tăng nhé, muốn nhanh hơn thì viết ra sợ bạn khó hiểu nên viết dễ hiểu thì nó như vậy). Không biết chủ thớt học thầy Tống Thành Nhân môn VDK 89 này phải hok.
            Code:
            ;O NHO R5 CHUA GIO
            ;O NHO R6 CHUA PHUT 
            ;O NHO R7 CHUA GIAY
            ;40 = DON VI GIAY
            ;41 = CHUC GIAY
            ;42 = DON VI PHUT 
            ;43 = CHUC PHUT
            ;44 = DON VI GIO
            ;45 = CHUC GIO
            GIO	EQU	R5
            PHUT	EQU	R6
            GIAY	EQU	R7
            DVGIAY	EQU	40H
            CGIAY	EQU	41H
            DVPHUT	EQU	42H
            CPHUT	EQU	43H
            DVGIO	EQU	44H
            CGIO	EQU	45H
            TANG_PHUT	EQU	P3.0
            TANG_GIO	EQU	P3.1
            ORG 0000H
            MAIN:
            	MOV 	GIAY,#0
            	MOV 	PHUT,#59
            	MOV 	GIO,#23
            HIENTHILAI:
            	CALL	TANG_THOI_GIAN
            	CALL 	DOIBCD
            	MOV 	R0,#50
            LAP:	
            	CALL 	HIENTHI
            	DJNZ 	R0,LAP
            	INC 	GIAY
            	CJNE 	GIAY,#60,HIENTHILAI
            	MOV 	GIAY,#0
            	INC 	PHUT
            	CJNE 	PHUT,#60,HIENTHILAI
            	MOV 	PHUT,#0
            	INC 	GIO
            	CJNE 	GIO,#24,HIENTHILAI
            JMP MAIN
            
            DOIBCD:
            	MOV 	A,GIO
            	MOV 	B,#10
            	DIV 	AB
            	MOV 	DVGIO,B
            	MOV 	CGIO,A
            
            	MOV 	A,PHUT
            	MOV 	B,#10
            	DIV 	AB
            	MOV 	DVPHUT,B
            	MOV 	CPHUT,A
            
            	MOV 	A,GIAY
            	MOV 	B,#10
            	DIV 	AB
            	MOV 	DVGIAY,B
            	MOV 	CGIAY,A
            
            RET
            
            HIENTHI:
            
            	MOV 	P1,#01H
            	MOV 	P0,DVGIAY
            	CALL 	DELAY
            	MOV 	P1,#02H
            	MOV 	P0,CGIAY
            	CALL 	DELAY
            	MOV 	P1,#04H
            	MOV 	P0,DVPHUT
            	CALL 	DELAY
            	MOV 	P1,#08H
            	MOV 	P0,CPHUT
            	CALL 	DELAY
            	MOV 	P1,#10H
            	MOV 	P0,DVGIO
            	CALL 	DELAY
            	MOV 	P1,#20H
            	MOV 	P0,CGIO
            	CALL 	DELAY
            RET
            DELAY:
            	MOV 	TMOD,#01H
            	MOV 	TH0,#HIGH(-3333)
            	MOV 	TL0,#LOW(-3333)
            	SETB 	TR0
            	JNB 	TF0,$
            	CLR 	TR0
            	CLR 	TF0
            RET
            TANG_THOI_GIAN:
            	JB	TANG_PHUT,NEXT0
            	INC	PHUT
            	CJNE	PHUT,#60,NEXT0
            	MOV	PHUT,#0
            NEXT0:	JB	TANG_GIO,OUT
            	INC	GIO
            	CJNE	GIO,#24,OUT
            	MOV	GIO,#0
            OUT:
            RET
            	
            	
            END
            mạch này không dùng RTC mà dùng xung 1hz từ mạch đồng hồ cơ,

            http://www.dientuvietnam.net/forums/...89c2051-39714/

            còn mạch này là từ cái đồ án (làm dùm người ta @@) nếu ai có hướng thú với cái này thì mình có thể chỉnh lại phần cứng tùy ý ( phần mềm của cái này viết khá linh động nên dễ sửa)

            http://www.dientuvietnam.net/forums/...ode-asm-67249/

            À còn điều lưu ý ACE là nếu post code mà ko chèn vào đính kèm thì bỏ code vào đây cho dễ đọc
            Last edited by chung1608; 28-08-2011, 09:23.

            Comment

            Về tác giả

            Collapse

            vovanhai Tìm hiểu thêm về vovanhai

            Bài viết mới nhất

            Collapse

            Đang tải...
            X