⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 富晶的MCU仿真器软件
💻 ASM
字号:
;/**********************************************************************************/  
;*		           Push Button&LCD example for FS982x.              		 		*/
;*				PT2[0]& PT2[1] is Input.			 		*/
;*     	 Function      Arthurs        Time          Version     Description      				*/
;*         Total      Gavannis.hsu  2004/02/05       0.1      Use PB4 one time then LCD will add one     */
;*										   		*/
;* Description:every four time is one cycle. e.g.:<0,1,2,3,4>.<0,1,2,3,4>.<0,1,2,3,4>.<0,1,2,3,4>...  */
;/**********************************************************************************/
INCLUDE        FS9821.INC


	DisplayFlag	equ	80h	 
	DelayLoop1	equ	81h
	Delayloop2	equ	82h

	ORG    		00
	GOTO  		BTNINI
	ORG		04H
	BTFSS		INTF,0
	BTFSS		INTF,1
	GOTO	 	BTNISR0
	GOTO		BTNISR1
	
BTNINI:
	MOVLW	00111100b
	MOVWF	PT2
	
	MOVLW	00000011B
	MOVWF	PT2PU	

	MOVLW	10000011b
	MOVWF	INTE
ValINI:	
	MOVLW	00H
	MOVWF	DisplayFlag
	MOVWF	LCD1
	MOVWF	LCD2
	MOVWF	LCD3
	MOVWF	LCD4
	MOVWF	LCD5
	Call		lcd_num
	MOVWF	LCD6
	MOVLW  	27h;		;Set LCD Driver
	MOVWF	LCDENR

MAIN:	
	NOP
	GOTO 	MAIN	
	
BTNISR0:
	MOVLW	00000000b	;Clear  INTF
	MOVWF	INTF	
	
	MOVFW	DisplayFlag	;Chose Display number
	CALL		Switch	
	
	MOVLW  	27h		; LCD Open
	MOVWF	LCDENR
			
	INCF		DisplayFlag,F	;add one
	
	CALL		Delay		;Check mis-error
	RETFIE
	
BTNISR1:
	MOVLW	00000000b	;Clear  INTF
	MOVWF	INTF
	NOP
	RETFIE
	
;===========================================
;	<Switch Case Function>
;	Case0:Display '0'
;	Case1:Display '1'
;	Case2:Display '2'
;	Case3:Display '3'
;	Default:Display '0',Set DisplayFlag=0xFF
;=============================================
	ORG    		090h
Switch:
	addpcw 
	GOTO  		CASE0
	GOTO 		CASE1
	GOTO  		CASE2
	GOTO 		CASE3
	GOTO  		Default
	
CASE0:
	MOVLW	001H
	Call		lcd_num
	MOVWF  	LCD6	
	RETURN	
CASE1:
	MOVLW	002H
	Call		lcd_num
	MOVWF	LCD6
	RETURN
CASE2:
	MOVLW	003H
	Call		lcd_num
	MOVWF	LCD6
	RETURN
CASE3:
	MOVLW	004H
	Call		lcd_num
	MOVWF	LCD6
	RETURN
Default:
	MOVLW	000H
	Call		lcd_num
	MOVWF	LCD6	
	MOVLW	0FFH	;Initial value
	MOVWF	DisplayFlag	
	RETURN
	
;===========================================
;	<Delay Loop Function>
;	Loop = [1+1+(Delay loop-1)*(1+2)+1*2+2]*MCK 
;	        =0.5 ms
;	This example MCK=ICK/6.5 =0.153 (MHZ) =6.53(us)
;=============================================
Delay:
	MOVLW	0C8H	;=200*0.5ms
	MOVWF	DelayLoop1	
LOOP1:
	MOVLW	0FFH		;*1
	MOVWF	DelayLoop2	;*1
LOOP2:
	DECFSZ	DelayLoop2,F	;*1 or*2
	GOTO		LOOP2		;*2	
	DECFSZ	DelayLoop1,F
	GOTO		LOOP1
	RETURN		
INCLUDE        LCDINDX.ASM	

end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -