em có cái mạch đếm sản phẩm và code đi cùng.em đã chạy mô phỏng trên proteus và kết quả là mạch chạy rất ngon và ổn định.nhưng khi em làm trên mạch thật thì lại bị lỗi...khi em ấn các nút bấm điều khiển thì led cũng tăng hoặc giảm theo đúng chức năng của phím bấm rồi...nhưng mà khi em bỏ tay ra thì led lại trở về 0 ngay lập tức.em đã thử đi thử lại rất nhiều lần rồi nhưng mà ko được.các bác xem hộ và chỉ giáo cho em với...bài tập em sắp phải nộp rồi
đây là code của em :
Code:
.INCLUDE "M8515DEF.INC" .CSEG. .ORG 0x000 RJMP BATDAU .ORG 0x0020 BATDAU: ;KHOI DONG STACK POINTER LDI R17, HIGH(RAMEND) LDI R16, LOW(RAMEND) OUT SPL, R16 OUT SPH,R17 ; KHOI DONG CAC PORT CLR R16 ; XOA R16, R16=0 OUT DDRB, R16; DDRB=0, PORTB LA NGO NHAP OUT DDRD, R16 LDI R16, 0xFF; SET TAT CA CAC BIT CUA R16 LEN 1 OUT PORTB,R16; DDRB=0, PORTB =0xFF, KEO LEN CAC CHAN PORTB OUT PORTD,R16 OUT DDRA, R16 ; HANG CHUC CLR R28 OUT DDRC, R16; DDRD=0xFF, PORTD LA NGO XUAT HANG DON VI CLR R25; XOA R25, R25 LA THANH GHI DUNG CHUA SO DEM CLR R22 CLR R26 CLR R27 SER R20 ; R21 LA THANH GHI TAM CHUA GIA TRI TRUOC DO CUA PINB SER R23 ; R23 LA THANH GHI TAM CHUA GIA TRI TRUOC DO CUA PIND MAIN: IN R22,PIND RCALL NHAP RCALL DEM_TIEP RJMP MAIN DEM_LUI: IN R21,PINB ; DOC GIA TRI TU PINB, TUC TU CAC BUTTON RCALL SOSANH1; GOI CHUONG TRINH CON SOSANH RCALL SOSANH2 OUT PORTC, R25 ; XUAT GIA TRI DEM RA PORTD OUT PORTA, R28 SBRS R21,1; NEU BIT 1 CUA R21 (TUC CHAN PB1) =1 THI BO QUA DONG ;TIEP THEO RCALL TANG; NHAY DEN CHUONG TRINH CON GIAM TANG GIA TRI DEM MOV R20,R21; LUU LAI TRANG THAI PINB RJMP DEM_LUI RET DEM_TIEP: IN R21,PINB ; DOC GIA TRI TU PINB, TUC TU CAC BUTTON RCALL SOSANH1; GOI CHUONG TRINH CON SOSANH RCALL SOSANH2 OUT PORTC, R25 ; XUAT GIA TRI DEM RA PORTD OUT PORTA, R28 SBRS R21,1; NEU BIT 1 CUA R21 (TUC CHAN PB1) =1 THI BO QUA DONG ;TIEP THEO RCALL TANG; NHAY DEN CHUONG TRINH CON GIAM TANG GIA TRI DEM MOV R20,R21; LUU LAI TRANG THAI PINB SBRC R21,3 RJMP DEM_TIEP RET ;**********************CHUONG TRINH CON************************ ; **************subroutine kiem tra gioi hang (tu 0 den 9) cua so dem SOSANH1: CPI R25, 10 BREQ RESET0; NEU GIA TRI DEM=10 THI TRA VE 0 CPI R25, 255 BREQ RESET9; NEU GIA TRI DEM =255 THI TRA VE 9 RJMP QUAYVE; NHAY DEN NHAN QUAYVE SOSANH2: CPI R28,10 BREQ RESET1; CPI R28,225 BREQ RESET91 RJMP QUAYVE RESET0: LDI R25,$0; TRA GIA TRI DEM VE 0 INC R28 RJMP QUAYVE RESET9: LDI R25,$9; GAN 9 CHO GIA TRI DEM QUAYVE: RET RESET1: LDI R28,$0 RJMP QUAYVE RESET91: LDI R28,$9 ; ************************************************************ ; **************subroutine tang so dem 1 don vi neu dieu kien thoa TANG: SBRS R20,1 RET INC R25 RET ;========NHAP SO SAN PHAM ========= NHAP: IN R22,PIND ; DOC GIA TRI TU PIND VAO THANH GHI R22 RCALL SOSANH3 OUT PORTA,R28 SBRS R22,0 ; NEU BIT 0 CUA R22 (TUC CHAN PD0=1,KHONG AN PHIM) THI BO QUA DONG TIEP THEO RCALL TANG_HANG_CHUC SBRS R22,1 RCALL GIAM_HANG_CHUC RCALL SOSANH4 OUT PORTC,R25 SBRS R22,4 RCALL TANG_HANG_DVI SBRS R22,5 RCALL GIAM_HANG_DVI MOV R23,R22 ; LUU LAI TRANG THAI PIND VAO R23 SBRC R22,6 ; NEU BIT4 CUA R22( TUC PD4=0-AN PHIM )THI BO QUA DONG TIEP THEO RJMP NHAP RET SOSANH3: CPI R28,10 BREQ RESET1 CPI R28,255 BREQ RESET91 RJMP QUAYVE TANG_HANG_CHUC: SBRS R23,0 RET INC R28 RET GIAM_HANG_CHUC: SBRS R23,1 RET DEC R28 RET SOSANH4: CPI R25,10 BREQ RESET2 CPI R25,255 BREQ RESET9 RJMP QUAYVE RESET2: LDI R25,$0; TRA GIA TRI DEM VE 0 RJMP QUAYVE TANG_HANG_DVI: SBRS R23,4 RET INC R25 RET GIAM_HANG_DVI: SBRS R23,5 RET DEC R25 RET
Comment