Thông báo

Collapse
No announcement yet.

Các Đề Tài VDK 8051

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

  • Nguyên văn bởi hoangphat Xem bài viết
    để góp bài với mục đích giúp đỡ như chủ topic HoangPhat góp 3 bài dùng led 7 seg
    mạch đồng hồ đơn giản dùng 89sxx


    đây là code
    Code:
    ;************************************************* **
    
    ;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
    
    ;************************************************* **
    
    
    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
    chúc các pác công thành
    Code này mình đã thử, chạy OK. Nhưng giờ mình muốn xuất P0 ra số BCD để dùng 6 con 4543 để giải mã cho LED 7. Bạn hoangphat có thể sửa code lại giúp mình được ko, cám ơn bạn nhiều lắm

    Comment


    • Có bạn nào có tài liệu về VĐK file.doc không cho mình xin với, mình đang viết phần giới thiệu VĐK 89 cho ĐATN lười viết quá nên ai có cho mình xin nhé, mình làm về 89S52! thanks các bạn nhiều

      Comment


      • các bác ơi!!! ai có thể dúp em, viết code assembly cho đề tài này được không ạ....
        Thiết kế hệ thống rơ le số để bảo vệ khóa dòng cho thiết bị điện
        hiển thị dòng làm việc trên LCD, đọc được dòng cắt trên LCD, lưu giá trị dòng cắt cho lần bật rơ le sau,
        +) các thiết bị sử dụng trong bài ADC 0808, LCD 1602,rơ le, contactor
        ai có thể dúp em được không ạ!!!! thank các bác nhiều

        Comment


        • các anh ơi! em mới vào làng! cho em hỏi chút! nếu em có 1 bính acquy 12v muốn cho ổn áp xuống còn 5v để mắc 100con led sáng k thui! k cần hiệu ứng thì phải làm như thế nào ạ>?

          Comment


          • Click image for larger version

Name:	Capture.PNG
Views:	3
Size:	26.6 KB
ID:	1370841
            mình muốn đặt trước 4 cấp tốc độ rùi đk DC bằng PWM
            ai biết pm mìh với
            thank mọi người

            Comment


            • Click image for larger version

Name:	Capture.PNG
Views:	3
Size:	26.6 KB
ID:	1370842
              mình muốn đk động cơ với 4 cấp tốc độ đặt trước bằng PWM
              ai biết chỉ mình với

              Comment


              • anh có thể góp ý giùm em đoạn code này được không. e làm đề tài lấy điện áp thực trên biến trở hiển thị lên LCD dùng ADC và đầu ra của ADC là ngõ vào của DAC. sử dụng VOM để đo ngõ ra của DAC nhằm so sanh giá trị hiện lên LCD và VOM có giông nhau không
                ORG 2000H
                RS BIT P3.5
                EN BIT P3.4
                NCS BIT P1.0
                SCK BIT P1.1
                SDI BIT P1.2
                NLD BIT P1.3
                MOV DPTR,#8000H
                ACALL LCD_INIT
                LAP: MOV DPTR,#4000H
                MOV A,#0
                MOVX @DPTR,A
                ACALL DELAY_100US
                MOVX A,@DPTR
                MOV DPTR,#8000H
                ACALL CHIA
                MOV A, #80H
                ACALL WRITE_CMD
                SJMP LAP
                ACALL DAC

                LCD_INIT: MOV A, #38H
                ACALL WRITE_CMD
                MOV A, #0CH
                ACALL WRITE_CMD
                MOV A, #04H
                ACALL WRITE_CMD
                MOV A, #01H
                ACALL WRITE_CMD
                RET

                WAIT_LCD: MOV R7,#100
                LOOP: MOV R6, #250
                DJNZ R6,$
                DJNZ R7, LOOP
                RET

                WRITE_CHAR: SETB RS
                MOVX @DPTR,A
                SETB EN
                CLR EN
                ACALL WAIT_LCD
                RET

                WRITE_CMD: CLR RS
                MOVX @DPTR,A
                SETB EN
                CLR EN
                ACALL WAIT_LCD
                RET

                DELAY_100US: MOV R6,#200
                DJNZ R6,$
                RET

                CHIA: PUSH ACC
                PUSH B
                MOV B,#51
                DIV AB
                ORL A,#30H
                ACALL WRITE_CHAR
                MOV A,#0A5H
                ACALL WRITE_CHAR
                MOV A,B
                MOV B,#5
                DIV AB
                ORL A,#30H
                ACALL WRITE_CHAR
                MOV A,B
                MOV B,#2
                MUL AB
                ORL A,#30H
                ACALL WRITE_CHAR
                POP B
                POP ACC
                RET
                DAC: MOV B,#16
                MUL AB
                XCH A,B
                DAC_WRITE_16B: PUSH ACC
                PUSH B
                PUSH 01H
                CLR NCS
                SETB NLD
                ACALL WRITE_8B
                ACALL WRITE_8B
                SETB NCS
                NOP
                CLR NLD
                NOP
                SETB NLD
                POP 01H
                POP B
                POP ACC
                RET

                WRITE_8B: MOV R1,#8
                CLR C
                DAC_LOOP: RLC A
                CLR SCK
                MOV SDI,C
                SETB SCK
                DJNZ R1,DAC_LOOP
                XCH A,B
                RET

                END
                thanks anh trước

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X