• Webdien.com - Cầu nối dân điện


    1. [HOT] - Webdien đang tuyển các vị trí quản lý cao cấp


  • Trang 1 của 3 123 CuốiCuối
    Kết quả 1 đến 10 của 27
    1. #1
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định ĐỀ SỐ 4: Mạch Đếm

      Chào các bạn khoa Điện
      Sau khi học xong môn vi xử lý mình có làm được mấy mạch nên mình Share cho các bạn tham khảo
      Đề Bài: Ứng dụng họ vi điều khiển 8051 ghép nối 4 LED bảy thanh để hiện thị số lần ấn phím
      Hoạt Động: Khi ấn một trong các nút ấn thì 4 LED bảy thanh sẽ hiện thị số lần ấn phím
      1 cảm biến hồng ngoại dùng để RESET và 1 cảm biến hồng ngoại dùng để ĐẢO CHIỀU ĐẾM

      Mạch và chương trình có thể download TẠI ĐÂY
      Sơ đồ
      Code
      Code:
      ;*******************************************************************;
      ;*/////////////////////////////////////////////////////////////////*;
      ;*/		TRUONG DAI HOC CONG NGHIEP HA NOI		  /*;	
      ;*/		   	   KHOA - DIEN				  /*;
      ;*/	CHUONG TRINH HIEN THI SO LAN AN PHIM TREN LED 7 THANH	  /*;
      ;*/	CHUONG TRINH BOI: PHAN VAN HA				  /*;
      ;*/	TUC LA		: HAPROHAUI				  /*;
      ;*/	DUOC UP LEN FORUM	: WEBDIEN.COM		  /*;
      ;*/////////////////////////////////////////////////////////////////*;
      ;*******************************************************************
      ;=======================================================
      ;	BAM PHIM TANG, GIAM, RESET VA HIEN THI
      ;=======================================================
      ORG 	0000H
      LJMP	INIT
      ORG	0003H	
      RETI
      ORG	000BH	
      RETI
      ORG	0013H	
      RETI
      ORG	0023H	
      RETI
      ORG	002BH	
      LJMP	INT_T2
      ;=============================
      ;KHAI BAO BIEN
      ;=============================
      NUM	EQU	50H
      D0	EQU	51H
      D1	EQU	52H
      D2	EQU	53H
      D3	EQU	54H
      NUM1	EQU	55H
      ZOV	EQU	05H
      CHIEU	EQU	60H
      INCF	EQU	00H
      DECF	EQU	01H
      CHF	EQU	03H
      ;=============================
      ;KET THUC KHAI BAO BIEN
      ;=============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;=============================
      ;	KHOI TAO CHUONG TRINH
      ;=============================
      ORG	100
      INIT:
      CLR	EA		
      MOV	SP,#2FH		
      MOV	T2CON,#04H	
      MOV	RCAP2H,#0D8H	
      MOV	RCAP2L,#0F0H	
      MOV	NUM,#00
      MOV	NUM1,#00
      MOV	INCF,#0
      MOV	CHIEU,#0
      MOV	CHF,#0
      MOV	R7,#0
      SETB	IE.5
      SETB	EA
      HERE:
      SJMP	HERE
      ;===============================
      ;	KET THUC CHUONG TRINH
      ;===============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===============================
      ;SUBROUTINE KT_DEM
      ;	CHUONG TRINH KIEM TRA CHIEU DEM
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===============================
      KT_DEM:
      MOV	A,CHF
      CJNE	A,#0,XLY
      JB	P1.3,GA
      MOV	CHF,#1
      INC	CHIEU	
      GA:
      MOV	A,CHIEU
      CJNE	A,#1,TA
      LCALL	GIAM
      SJMP	XLY1
      TA:
      MOV	A,CHIEU	
      CJNE	A,#0,RA1
      LCALL	TANG
      XLY:
      JNB	P1.3,RA1
      MOV	A,CHF
      MOV	A,#0
      MOV	CHF,A
      XLY1:
      MOV	A,CHIEU
      CJNE	A,#2,RA1
      MOV	CHIEU,#0	
      RA1:	
      RET
      ;===============================
      ;	KET THUC CHUONG TRINH
      ;===============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===============================
      ;SUBROUTINE KT_RESET
      ;	CHUONG TRINH KIEM TRA RESET
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===============================
      KT_RESET:
      MOV	A,P1
      ANL	A,#1FH
      CJNE	A,#0FH,RA
      MOV	NUM,#00
      MOV	NUM1,#00
      RA:
      RET
      ;===============================
      ;	KET THUC CHUONG TRINH
      ;===============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===============================
      ;SUBROUTINE TANG
      ;	CHUONG TRINH TANG
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===============================	
      TANG:
      MOV	A,INCF
      CJNE	A,#0,XOA
      MOV	INCF,A
      MOV	A,P1
      ANL	A,#1FH
      CJNE	A,#1EH,M1
      INC	NUM
      MOV	INCF,#1
      SJMP	NHAY
      M1:
      CJNE	A,#1DH,M2
      INC	NUM
      MOV	INCF,#1
      SJMP	NHAY
      M2:
      CJNE	A,#1CH,M3
      INC	NUM
      MOV	INCF,#1
      SJMP	NHAY
      M3:
      CJNE	A,#1BH,KT1
      INC	NUM
      MOV	INCF,#1
      SJMP	NHAY
      NHAY:
      MOV	A,NUM
      CJNE	A,#100,KT1
      MOV	NUM,#0
      INC	NUM1
      MOV	A,NUM1
      CJNE	A,#100,KT1
      MOV	NUM1,#0
      XOA:
      JNB	P3.2,KT1
      MOV	INCF,#0
      KT1:
      RET
      ;===============================
      ;	KET THUC CHUONG TRINH
      ;===============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===============================
      ;SUBROUTINE GIAM
      ;	CHUONG TRINH GIAM
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===============================
      GIAM:
      MOV	A,DECF
      CJNE	A,#0,XOA1
      MOV	DECF,A
      MOV	A,P1
      ANL	A,#1FH
      CJNE	A,#1EH,K1
      DEC	NUM
      MOV	DECF,#1
      SJMP	NHAY1
      K1:
      CJNE	A,#1DH,K2
      DEC	NUM
      MOV	DECF,#1
      SJMP	NHAY1
      K2:
      CJNE	A,#1CH,K3
      DEC	NUM
      MOV	DECF,#1
      SJMP	NHAY1
      K3:
      CJNE	A,#1BH,KT2
      DEC	NUM
      MOV	DECF,#1
      SJMP	NHAY1
      NHAY1:
      MOV	A,NUM
      CJNE	A,#0FFH,KT2
      MOV	NUM,#99
      DEC	NUM1
      MOV	A,NUM1
      CJNE	A,#0FFH,KT2
      MOV	NUM1,#99
      XOA1:
      JNB	P3.2,KT2
      MOV	DECF,#0
      KT2:
      RET
      ;===============================
      ;	KET THUC CHUONG TRINH
      ;===============================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===============================
      ;SUBROUTINE HEXTOBCD
      ;	HEX TO BCD
      ;INPUT: NUM
      ;OUTPUT: D1,D0
      ;===============================
      HEXTOBCD:
      MOV	A,NUM
      MOV	B,#10
      DIV	AB
      MOV	D0,B
      MOV	D1,A
      MOV	A,NUM1
      MOV	B,#10
      DIV	AB
      MOV	D2,B
      MOV	D3,A
      RET
      ;=================================
      ;	KET THUC CHUYEN TRINH CON
      ;=================================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;==================================
      ;INT	INT_T2
      ; CHUONG TRINH HIEN THI SO LAN  AN PHIM VA HIEN THI
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===================================
      INT_T2:
      CLR	TF2		
      LCALL	HEXTOBCD	
      LCALL	BCDTO7T		
      LCALL	DISPLAY
      LCALL	KT_DEM
      LCALL	KT_RESET
      RETI
      ;===================================
      ;	KET THUC CHUONG TRINH
      ;===================================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===================================
      ;SUBROUTNI BCDTO7T
      ;INPUT: NONE
      ;OUTPUT: NONE
      ;===================================
      BCDTO7T:
      MOV	DPTR,#SEGMENT	
      MOV	A,D0		
      MOVC	A,@A+DPTR	
      MOV	D0,A		
      MOV	A,D1		
      MOVC	A,@A+DPTR	
      MOV	D1,A		
      MOV	A,D2
      MOVC	A,@A+DPTR
      MOV	D2,A
      MOV	A,D3
      MOVC	A,@A+DPTR
      MOV	D3,A
      RET
      ;===================================
      ;	KET THUC CHUONG TRINH
      ;===================================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===================================
      ;SUBROUTINE DISPLAY
      ; HIEN THI LEN LED 7 THANH
      ;INPUT:
      ;OUTPUT:
      ;===================================
      DISPLAY: 
      CJNE	R7,#0,LED1
      MOV	P2,#8
      MOV	P0,D0
      SJMP	XLR7
      LED1:
      CJNE	R7,#1,LED2	
      MOV	P2,#4
      MOV	P0,D1
      SJMP	XLR7
      LED2:
      CJNE	R7,#2,LED3
      MOV	P2,#2
      MOV	P0,D2
      SJMP	XLR7
      LED3:
      CJNE	R7,#3,KT
      MOV	P2,#1
      MOV	P0,D3
      SJMP	XLR7
      XLR7:	
      INC	R7
      CJNE	R7,#4,KT	
      MOV	R7,#00H
      KT:
      RET
      ;===================================
      ;	KET THUC CHUONG TRINH
      ;===================================
      ;************************************************
      ;	NGAN CACH GIUA CAC CHUONG TRINH
      ;************************************************
      ;===================================
      ;	MA 7 THANH
      ;===================================
      SEGMENT:	
      DB	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
      ;SO THAP PHAN	 0    1     2    3   4   5   6   7    8  9
      ;====================================
      ;	KET THUC CHUONG TRINH
      ;====================================
      Lưu Ý: Em dùng proteus 6.9 để vẽ mạch nếu muốn mở được file thì phải có bản Proteus phiên bản lớn hơn

      ps: Thấy hay thanks cái

      --------------------------------------------------------------------------------
      Xem bài viết cùng chuyên mục:

      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    2. The Following 10 Users Say Thank You to haprohaui For This Useful Post:


    3. #2
      Tham gia
      08-12-2010
      Bài viết
      1
      Cảm ơn
      0
      Được cảm ơn 0 lần, trong 0 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      bạn giải thích rõ hơn đi. Tại sao lại có 4 cái nút? Mình thử mô phỏng trên Protues thì chỉ thấy LED nháy 1 cái thôi.

    4. #3
      Tham gia
      18-05-2010
      Địa chỉ
      Long Hải
      Bài viết
      1,565
      Cảm ơn
      226
      Được cảm ơn 905 lần, trong 605 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi dr_top Xem bài viết
      bạn giải thích rõ hơn đi. Tại sao lại có 4 cái nút? Mình thử mô phỏng trên Protues thì chỉ thấy LED nháy 1 cái thôi.
      mô phỏng trong Proteus nó thế đấy bạn ạ. nhưng ngoài thực tết thì nó chạy. khi dùng Proteus để mô phỏng quet led thì hiện tượng thường xảy với led 7 đoạn là không sáng hoạc bị đứt đoạn, nhưng mô phỏng led matrix thì không vấn đề gì.
      Cao Văn Hưởng
      Email: vanhuongcao@gmail.com

    5. #4
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi dr_top Xem bài viết
      bạn giải thích rõ hơn đi. Tại sao lại có 4 cái nút? Mình thử mô phỏng trên Protues thì chỉ thấy LED nháy 1 cái thôi.
      4 nút bấm hay là bao nhiêu nút cũng được thôi chẳng qua là mình làm vậy thôi bạn có thể thêm max là 8 nút bấm
      Bạn mô phong trên Proteus bản 7.x phải không
      Minh không biết tại sao mạch này mô phong trên bản 7.x lại bị lỗi nhưng trên bản 6.9 lại không bị lỗi
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    6. #5
      Tham gia
      05-10-2009
      Bài viết
      154
      Cảm ơn
      10
      Được cảm ơn 43 lần, trong 30 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      chuối, nhìn mấy cái code ASM mà đau cả mắt. cả 4 nút đều giống nhau về chức năng thì làm 1 phím cho nhanh. bày ra 4 phím làm gì. ah quên, bạn cần chú ý đến vấn đề chống rung cho phím nhé, mô phòng là 1 chuyện còn thực tế sử dụng là chuyện khác đó.

    7. #6
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi ngoctoi789 Xem bài viết
      chuối, nhìn mấy cái code ASM mà đau cả mắt. cả 4 nút đều giống nhau về chức năng thì làm 1 phím cho nhanh. bày ra 4 phím làm gì. ah quên, bạn cần chú ý đến vấn đề chống rung cho phím nhé, mô phòng là 1 chuyện còn thực tế sử dụng là chuyện khác đó.
      4 Phím bấm là do đề bài yêu cầu
      Hiện tượng chống rung cho phím bấm e cũng đã xử lý rồi
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    8. #7
      Tham gia
      18-05-2010
      Địa chỉ
      Long Hải
      Bài viết
      1,565
      Cảm ơn
      226
      Được cảm ơn 905 lần, trong 605 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi haprohaui Xem bài viết
      4 Phím bấm là do đề bài yêu cầu
      Hiện tượng chống rung cho phím bấm e cũng đã xử lý rồi
      sử dụng thêm con IC 74148 thì phí quá. nếu mạch yêu cầu là 4 nút nhấn thì chỉ cần nối // 4 nút nhấn với nhau là được, và tín hiệu đưa vào chân ngắt ngoài INT0 để đếm số lần nhấn phím là được.
      Cao Văn Hưởng
      Email: vanhuongcao@gmail.com

    9. #8
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi caovanhuong Xem bài viết
      sử dụng thêm con IC 74148 thì phí quá. nếu mạch yêu cầu là 4 nút nhấn thì chỉ cần nối // 4 nút nhấn với nhau là được, và tín hiệu đưa vào chân ngắt ngoài INT0 để đếm số lần nhấn phím là được.
      Thực ra thì không cần con IC 74148 nhưng đề bài yêu cầu nên làm thui
      Chỉ cần nối mạch sao cho mức vào các chân trong cổng p1 là mức 0 là ok
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    10. #9
      Tham gia
      18-05-2010
      Địa chỉ
      Long Hải
      Bài viết
      1,565
      Cảm ơn
      226
      Được cảm ơn 905 lần, trong 605 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi haprohaui Xem bài viết
      Thực ra thì không cần con IC 74148 nhưng đề bài yêu cầu nên làm thui
      Chỉ cần nối mạch sao cho mức vào các chân trong cổng p1 là mức 0 là ok
      chưa thấy ai ra đề mà dở như vậy. ai lại bắt sử dụng thêm con IC số làm gì. là vdk thì phải làm sao để mình nó mà làm được nhiều việc, nếu không được nữa thì mới sử dụng thêm IC bên ngoài. mà đàng này lại bắt sử dụng thêm con 74148 vô ích này.
      Cao Văn Hưởng
      Email: vanhuongcao@gmail.com

    11. #10
      Tham gia
      25-10-2010
      Bài viết
      64
      Cảm ơn
      0
      Được cảm ơn 36 lần, trong 15 bài

      Mặc định Ðề: ĐỀ SỐ 4: Mạch Đếm

      Trích dẫn Gửi bởi caovanhuong Xem bài viết
      chưa thấy ai ra đề mà dở như vậy. ai lại bắt sử dụng thêm con IC số làm gì. là vdk thì phải làm sao để mình nó mà làm được nhiều việc, nếu không được nữa thì mới sử dụng thêm IC bên ngoài. mà đàng này lại bắt sử dụng thêm con 74148 vô ích này.
      Thì đề yêu cầu là vậy chứ em có biết họ ra đề thế nào đâu
      Mình là học sinh phải làm theo thầy giáo rồi
      [FLASH]http://fc03.deviantart.net/fs10/f/2006/127/5/e/Dragon.swf[/FLASH]

    Trang 1 của 3 123 CuốiCuối

    Trả lời với tài khoản Facebook