Giúp em đếm từ 30->0 dùng pic16f877a
Giúp em đếm từ 30->0 dùng pic16f877a.thời gian là 1s giảm 1 đơn vị
em mới vô diễn đàng mấy anh giúp đỡ. |
PROCESSOR 16F877A
#INCLUDE <P16F877A.INC> __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF DEM1 EQU 20H DEM2 EQU 21H DEM EQU 22H ORG 0000H BCF STATUS,6 BCF STATUS,5 CLRF PORTB CLRF PORTA BSF STATUS,5 MOVLW B'00000000' MOVWF TRISB BCF TRISA,0 BCF TRISA,1 BCF STATUS,5 MAIN BCF PORTA,0 BSF PORTA,1 MOVLW B'10100100' MOVWF PORTB CALL DELAY1 BCF PORTA,1 BSF PORTA,0 MOVLW B'11111001' MOVWF PORTB CALL DELAY1 BCF PORTA,0 BSF PORTA,1 MOVLW B'10100100' MOVWF PORTB CALL DELAY1 BCF PORTA,1 BSF PORTA,0 MOVLW B'11000000' MOVWF PORTB CALL DELAY1 BCF PORTA,0 BSF PORTA,1 MOVLW B'11111001' MOVWF PORTB CALL DELAY1 BCF PORTA,1 BSF PORTA,0 MOVLW B'10010000' MOVWF PORTB CALL DELAY1 BCF PORTA,0 BSF PORTA,1 MOVLW B'11111001' MOVWF PORTB CALL DELAY1 BCF PORTA,1 BSF PORTA,0 MOVLW B'11000000' MOVWF PORTB CALL DELAY1 GOTO MAIN DELAY1 BCF STATUS,6 BSF STATUS,5 BCF OPTION_REG,3 BCF OPTION_REG,2 BSF OPTION_REG,1 BSF OPTION_REG,0 BCF STATUS,5 MOVLW D'250' MOVWF DEM LOOP MOVLW D'5' MOVWF TMR0 BSF STATUS,5 BCF OPTION_REG,5 BCF STATUS,5 LOOP1 BTFSS INTCON,2 GOTO LOOP1 BCF INTCON,2 DECFSZ DEM,1 GOTO LOOP RETURN END Chương trình này bị sai.Giúp e cho con số 2 đứng lại với |
Đếm từ 30 -> 0 dùng 16f877a
Hi bạn, mình làm cái này rồi nhưng không nhớ chương trình cụ thể là gì nữa. Đại loại là thế này (mình dùng ngôn ngữ C): bạn tạo 1 biến X,Y. Gán biến X giá tri ban đầu là 30, sau đó lấy X - 1 = Y, đưa Y ra cổng nào đó (để hiển thị lên Led 7 thanh chẳng hạn). Sau đó gán Y = X. Delay 1s và lặp lại như trên. Nếu Y = 0 gán X =30 để lặp lại.
Chúc bạn thành công. |
Chuyen Viet C di ban oi
Trích:
|
Múi giờ GMT. Hiện tại là 05:06 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam