CPI YL, LOW(RAMEND) ;
BRNE INITRAM1 ;
SEI ;ENABLE GLOBAL INTERRUPTS
CLR TIMES ;
RCALL INITLCD ;INITIALIZE LCD MODULE
;******************************
; MAIN PROGRAM PROCESS
;******************************
MAIN: WDR ;RESET WDT
RCALL KEYPRS ;KEY PROCESS
RJMP MAIN
;********************************
; KEY PROCESS
;********************************
KEYPRS: IN XL, TCNT1L ;HAVE KEY INPUT?
KEYPRS1: SBIC PINB, START ;
RET ;
IN YL, TCNT1L ;HOLD 0.25*64=16ms
SUB YL, XL ;
CPI YL, 64 ;
BRSH STKEY ;
RJMP KEYPRS1 ;
RET
;*****************************************************************
;START KEY PROCESS
;START COMPARING THE TESTED ANGLE TO THE UP-LIMIT AND DOWN LIMIT
;*****************************************************************
STKEY: CBI PORTC,POWER ;TURN ON LCD’S POWER
INC TIMES
CPI TIMES,1
BREQ STKEY1
CPI TIMES,2
BREQ STKEY2
CPI TIMES,3
BREQ STKEY3
CPI TIMES,4
BREQ STKEY4
CPI TIMES,5
BREQ STKEY5
CPI TIMES,6
BREQ STKEY6
RJMP STKEY7
STKEY1: RCALL ALLON
RJMP WAITREL
STKEY2: RCALL ALLOFF
RJMP WAITREL
STKEY3: RCALL COLON
RJMP WAITREL
STKEY4: RCALL COLOFF
RJMP WAITREL
STKEY5: RCALL ROWON
RJMP WAITREL
STKEY6: RCALL ROWOFF
RJMP WAITREL
STKEY7: RCALL ALLOFF ;TURN OFF ALL DISPLAY
CLR TIMES ;
SBI PORTC, POWER ;SHUT OFF LCD’S POWER
WAITREL: IN XL, TCNT1L ;RELEASE START KEY FOR CONTINUOUS 12ms
WAITREL1: SBIS PINB, START ;
RJMP WAITREL ;
IN XH, TCNT1L ;
SUB XH, XL ;
CPI XH, 50 ;
BRLO WAITREL1 ;
RET
;******************************************
; DELAY A MOMENT, MIN=0.25ms, MAX=64ms
; INPUT: R24
; USED REGISTER: R24,R23,R22
;******************************************
DELAY: IN R23, TCNT1L ; T1 COUNTER’S f=FCLK/1024
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] 下一页
本文关键字:单片机 程序 AVR单片机,单片机-工控设备 - AVR单片机