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

📄 interrupt_example.asm

📁 提供89c51/52单蕊片实习外部中断例程
💻 ASM
字号:
/*********************************************************************************************************/
/*   This program is used in 8951/52 micro chip, controling PIN 3.5 output state by RS-232 communication */ 
/*   or outside interrupt INT0 INT1. PIN3.4 need to connected with a LED, when it flasing the user can   */
/*   know the chip is continue running.								         */
/*													 */
/*   RS-232 input "A" change PIN3.5 state from low  0V to high 5V				         */
/*          input "B"                          high 5V to low  0V 					 */
/*												         */
/*   outside interrupt PIN3.2 INT0 set PIN3.5 output state to  0V                                        */
/*                     PIN3.3 INT1                             5V					 */
/*													 */
/*   Author: Yuan Long Lo  Date: 2008/03                                                                 */
/*********************************************************************************************************/
	ORG 0H			;LED: P3.4   Output: P3.5
	JMP STR		
	ORG 3H
	JMP INTA	;SYS OFF LINE
	ORG 13H
	JMP INTB	;SYS ON LINE
	ORG 23H
	JMP RE

STR:	MOV IE,#10010101B  ;set micro chip interrupt argument
	MOV IP,#00010101B
	SETB IT0
	SETB IT1
	MOV SCON,#01010000B
	MOV TMOD,#00100010B
	MOV SP,#40H
	MOV TH1,#0FDH
	SETB TR1
	
START:	CLR RI
	CLR TI
	CLR P3.5	;SYS OFF_LINE
	SETB P3.4	;LED INDICATE WORK

LOOP1:	CALL DELAY
	JMP LOOP1

RE:	JNB TI,REC      ;RS-232 interrupt 
	CLR TI
	RETI

REC:	JBC RI,RECE     ;If receiving flag is ture than receive it
	RETI

RECE:	MOV A,SBUF
	CJNE A,#41H,CHK1; IF RECEIVE "A" THAN SYS ON_LINE
	SETB P3.5
	RETI

CHK1:	CJNE A,#42H,FREEZE
	CLR P3.5        ; IF RECEIVE "B" THAN SYS OFF_LINE
	RETI

FREEZE:	CLR A
	RETI

DELAY:	CPL P3.4      ;flash the PIN3.4 LED   and do a little delay
	MOV R0,#004H
D1:	MOV R1,#0FFH
D2:	MOV R2,#0FFH
D3:	DJNZ R2,D3
	DJNZ R1,D2
	DJNZ R0,D1
	RET

INTA:	CLR P3.5      ;interrupt INT0 set output PIN3.5 LOW
	RETI

INTB:	SETB P3.5     ;interrupt INT1 set output PIN3.5 HIGH
	RETI
		
	END

⌨️ 快捷键说明

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