Thông báo

Collapse
No announcement yet.

Điều khiển LED 7đoạn thông qua 595

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

  • Điều khiển LED 7đoạn thông qua 595

    Em đang tìm hiểu con ghi dịch 595.Em vẽ sơ đồ như sau:
    Click image for larger version

Name:	dh 595.jpg
Views:	1
Size:	107.1 KB
ID:	1416674

    em muốn khi nhấn 1 nút thì led tăng lên 1 đơn vị (nút nào cũng đc,sơ đồ này e dùng để làm đồng hồ,e chưa viết code đc nên tìm hiểu từ từ),e dự định sẽ tìm hiểu như sau:
    - xuất dữ liệu ra led 7 thông qua ghi dịch
    - giao tiếp nút nhấn
    - giao tiếp I2C

    đầu tiên là e muốn biết cách xuất dữ liệu ra 595,các bác giúp e code ASM khi nhấn nút thì tăng 1 đơn vị với.Thanks các bác nhiều.File mô phỏng e có đính kèm,các bác gợi ý cho e trước cũng được.
    Không biết thì hỏi,muốn giỏi phải học.
    E-mail:

  • #2
    bác nào giúp e với,làm sao truyền 32 bit ra 4 con 595.
    Không biết thì hỏi,muốn giỏi phải học.
    E-mail:

    Comment


    • #3
      hi mọi người.E tham khảo phần cứng của 1 bác trên diễn đàn nên bây giờ phần cứng của e như thế này.
      Click image for larger version

Name:	dh 595.jpg
Views:	2
Size:	105.3 KB
ID:	1376801
      e thử viết chương trình nhấn nút tăng giảm như sau,chạy tạm ổn:
      Code:
      SCL		BIT P1.0
      SDA		BIT P1.1
      DA_TA 	BIT P3.0
      SH		BIT P3.1
      ST		BIT P3.2
      MODE	BIT P3.3
      UP		BIT P3.4
      DOWN	BIT P3.5
      
      DV_M	EQU	60H
      CH_M	EQU	61H
      DV_H	EQU	62H
      CH_H	EQU 63H
      
      	ORG 00H
      	
      	LJMP MAIN
      MAIN:
      	CLR SH
      	CLR ST
      	MOV DV_M,#0
      	MOV CH_M,#0
      	MOV DV_H,#0
      	MOV CH_H,#0
      	CALL SERIAL
      SCAN:
      	JNB UP,TANG1
      	JNB DOWN,GIAM1
      	JMP SCAN
      TANG1:
      	JNB UP,$
      	INC DV_M
      	MOV A,DV_M
      	CJNE A,#9,SKIP
      	MOV DV_M,#0
      	INC CH_M
      	MOV A,CH_M
      	CJNE A,#9,SKIP
      	MOV CH_M,#0
      	INC DV_H
      	MOV A,DV_H
      	CJNE A,#9,SKIP
      	MOV DV_H,#0
      	INC CH_H
      	MOV A,CH_H
      	CJNE A,#9,SKIP
      	MOV CH_H,#0
      	JMP SCAN
      SKIP:
      	CALL SERIAL
      	JMP SCAN
      GIAM1:	
      	JNB DOWN,$
      	DEC DV_M
      	MOV A,DV_M
      	CJNE A,#-1,SKIP1
      	MOV DV_M,#9
      	DEC CH_M
      	MOV A,CH_M
      	CJNE A,#-1,SKIP1
      	MOV CH_M,#9
      	DEC DV_H
      	MOV A,DV_H
      	CJNE A,#-1,SKIP1
      	MOV DV_H,#9
      	DEC CH_H
      	MOV A,CH_H
      	CJNE A,#-1,SKIP1
      	MOV CH_H,#9
      	JMP SCAN
      SKIP1:
      	CALL SERIAL
      	JMP SCAN
      ;************************************************    	
      SERIAL:
      		PUSH ACC
      		MOV DPTR,#DU_LIEU
          	MOV A,DV_M
      		MOVC A,@a+dptr
      		CALL DICH
      		MOV	A,CH_M
      		MOVC A,@A+DPTR
      		CALL DICH
      		MOV A,DV_H
      		MOVC A,@A+DPTR
      		CALL DICH
      		MOV A,CH_H
      		MOVC A,@A+DPTR
      		CALL DICH
      		SETB ST
      		CLR ST
      		;CALL DELAY
      		POP ACC
      		RET
      ;**************************************************
      DICH:
      		MOV R5,#8
      LOOP:
      	 	CLR C
      		RLC A
      		MOV DA_TA,C
      		SETB SH
      		CLR SH
      		DJNZ R5,LOOP
      		RET
      ;***************************************************
      DELAY:
      	MOV TMOD,#01
      	MOV R6,#100
      LOOPDL:
      	MOV TH0,#HIGH(-10000)
      	MOV TL0,#LOW(-10000)
      	SETB TR0
      	JNB TF0,$
      	CLR TR0
      	CLR TF0
      	DJNZ R6,LOOPDL
      	RET
      DU_LIEU:
      	DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H 
      END

      và e viết thử chương trình đồng hồ đơn giản như sau,cũng chạy ổn ạ
      Code:
      SCL		BIT P1.0
      SDA		BIT P1.1
      DA_TA 	BIT P3.0
      SH		BIT P3.1
      ST		BIT P3.2
      MODE	BIT P3.3
      UP		BIT P3.4
      DOWN	BIT P3.5
      
      DV_M	EQU	60H
      CH_M	EQU	61H
      DV_H	EQU	62H
      CH_H	EQU 63H
      
      	ORG 00H
      	CLR SH
      	CLR ST
      	MOV DV_M,#0
      	MOV CH_M,#0
      	MOV DV_H,#0
      	MOV CH_H,#0	
      	LJMP MAIN
      MAIN:
      	CALL SERIAL
      	INC DV_M
      	MOV A,CH_M
      	CJNE A,#5,SKIP
      	MOV A,DV_M
      	CJNE A,#10,MAIN
      	MOV CH_M,#0
      	MOV DV_M,#0
      	INC DV_H
      	MOV A,CH_H
      	CJNE A,#2,SKIP1
      	MOV A,DV_H
      	CJNE A,#4,MAIN
      	MOV DV_H,#0
      	MOV CH_H,#0
      	JMP MAIN
      SKIP:
      	MOV A,DV_M
      	CJNE A,#10,MAIN
      	MOV DV_M,#0
      	INC CH_M
      	JMP MAIN
      SKIP1:
      	MOV A,DV_H
      	CJNE A,#10,MAIN
      	MOV DV_H,#0
      	INC CH_H
      	JMP MAIN
      ;************************************************    	
      SERIAL:
      		PUSH ACC
      		MOV DPTR,#DU_LIEU
          	MOV A,DV_M
      		MOVC A,@a+dptr
      		CALL DICH
      		MOV	A,CH_M
      		MOVC A,@A+DPTR
      		CALL DICH
      		MOV A,DV_H
      		MOVC A,@A+DPTR
      		CALL DICH
      		MOV A,CH_H
      		MOVC A,@A+DPTR
      		CALL DICH
      		SETB ST
      		CLR ST
      		CALL DELAY
      		POP ACC
      		RET
      ;**************************************************
      DICH:
      		MOV R5,#8
      LOOP:
      	 	CLR C
      		RLC A
      		MOV DA_TA,C
      		SETB SH
      		CLR SH
      		DJNZ R5,LOOP
      		RET
      ;***************************************************
      DELAY:
      	MOV TMOD,#01
      	MOV R6,#100
      LOOPDL:
      	MOV TH0,#HIGH(-10000)
      	MOV TL0,#LOW(-10000)
      	SETB TR0
      	JNB TF0,$
      	CLR TR0
      	CLR TF0
      	DJNZ R6,LOOPDL
      	RET
      DU_LIEU:
      	DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H 
      END
      Giờ e muốn giao tiếp với DS1307 nhưng chưa biết cách,bác nào gợi hướng giải quyết cho e với,e chưa đc học ngắt,mấy cái này e đọc thêm trong diễn đàn rồi tự viết,mò mãi mới viết đc như vậy,các bác thông cảm.
      Không biết thì hỏi,muốn giỏi phải học.
      E-mail:

      Comment


      • #4
        Đây là file mô phỏng ạ.
        Attached Files
        Không biết thì hỏi,muốn giỏi phải học.
        E-mail:

        Comment


        • #5
          cảm ơn các bác đã quan tâm,cuối cùng e cũng làm xong
          Không biết thì hỏi,muốn giỏi phải học.
          E-mail:

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X