492汇编语言程序设计的一般步骤和基本框架《今 ORG 0100H MAIN: MOV SP#70H ;设置堆栈指针(可根据实际情况进行修改) 初始化内存区域内容 ;设置有关特殊功能寄存器(SFR)的控制字 ;根据需要开放相应的中断控制 MAINLOOP ;主程序循环 LUMP MAINLOOP
7:59:36 4.9.2 汇编语言程序设计的一般步骤和基本框架 ORG 0100H MAIN: MOV SP, #70H ;设置堆栈指针(可根据实际情况进行修改) ……;初始化内存区域内容 ……;设置有关特殊功能寄存器(SFR)的控制字 ……;根据需要开放相应的中断控制 MAINLOOP: ;主程序循环 LJMP MAINLOOP 31 04:34:02
4.92汇编语言程序设计的一般步骤和基本框架( ;下面是各个中断服务子程序的入口 INT0ISR:;外部中断0服务子程序 根据需要填入适当的内容 RETI NTI SR:;外部中断服务子程序 ;根据需要填入适当的内容 RETI TO SR: 定时器0中断服务子程序 根据需要填入适当的内容 RETI TlsR:;定时器1中断服务子程序 根据需要填入适当的内容 RETI UARTI SR:;串口1中断服务子程序 根据需要填入适当内容(注意中断请求标志位清零) RETI
7:59:36 4.9.2 汇编语言程序设计的一般步骤和基本框架 ;下面是各个中断服务子程序的入口 INT0_ISR: ;外部中断0服务子程序 …… ;根据需要填入适当的内容 RETI INT1_ISR: ;外部中断1服务子程序 …… ;根据需要填入适当的内容 RETI T0_ISR: ;定时器0中断服务子程序 …… ;根据需要填入适当的内容 RETI T1_ISR: ;定时器1中断服务子程序 …… ;根据需要填入适当的内容 RETI UART1_ISR: ;串口1中断服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI 32 04:34:02
4.92汇编语言程序设计的一般步骤和基本框架 UART2IsR:;串口2中断服务子程序 ;根据需要填入适当内容(注意中断请求标志位清零) RETI ADC ISR: ;ADC中断服务子程序 根据需要填入适当内容(注意中断请求标志位清零) RETI SPI ISR:;SP通信中断服务子程序 ;根据需要填入适当内容(注意中断请求标志位清零) RETI LVD ISR:;低电压检测服务子程序 根据需要填入适当内容(注意中断请求标志位清零) RETI PCA SR:;PCA和PWM中断服务子程序 .;根据需要填入适当内容(注意中断请求标志位清零) RETI
7:59:36 4.9.2 汇编语言程序设计的一般步骤和基本框架 33 04:34:02 UART2_ISR: ;串口2中断服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI ADC_ISR: ;ADC中断服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI SPI_ISR: ;SPI通信中断服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI LVD_ISR: ;低电压检测服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI PCA_ISR: ;PCA和PWM中断服务子程序 …… ;根据需要填入适当内容(注意中断请求标志位清零) RETI
4.92汇编语言程序设计的一般步骤和基本框架( NT2ISR:;INT2中断服务子程序 ;根据需要填入适当的内容 RETI INT3 SR: NT3中断服务子程序 ;根据需要填入适当的内容 RETI T2 SR: ;定时器2中断服务子程序 ;根据需要填入适当的内容 RETI INT4ISR:;INT4中断服务子程序 …,;根据需要填入适当的内容 RETI ;下面可以编写其他子程序或者定义程序中所用的常数 END
7:59:36 4.9.2 汇编语言程序设计的一般步骤和基本框架 INT2_ISR: ;INT2中断服务子程序 …… ;根据需要填入适当的内容 RETI INT3_ISR: ;INT3中断服务子程序 …… ;根据需要填入适当的内容 RETI T2_ISR: ;定时器2中断服务子程序 …… ;根据需要填入适当的内容 RETI INT4_ISR: ;INT4中断服务子程序 …… ;根据需要填入适当的内容 RETI ;下面可以编写其他子程序或者定义程序中所用的常数 END 34 04:34:02
4.92汇编语言程序设计的一般步骤和基本框架《 ◇注意 ◆由于地址0003H、000BH、0013H、001BH、0023H 002BH、0033H、003BH、0043H、004BH、0053H、 005BH、0063H和0083H是专门为中断处理子程序分 别预留的入口地址, ◆所以第一条指令是一条长跳转指令,跳到避开上述 中断处理子程序入口地址的0100H的地址,主程序 MAN从这个地址开始存放; ◆MAIN语句前面的伪指令“ORG0100H”表示,以 标号MAN表示的主程序放在0100H开始的区域,当 然也可以是跳到能够避开上述入口地址的其他地址
7:59:36 4.9.2 汇编语言程序设计的一般步骤和基本框架 注意 由于地址0003H、000BH、0013H、001BH、0023H 、 002BH、0033H、003BH、0043H、004BH、0053H、 005BH、0063H和0083H是专门为中断处理子程序分 别预留的入口地址, 所以第一条指令是一条长跳转指令,跳到避开上述 中断处理子程序入口地址的0100H的地址,主程序 MAIN从这个地址开始存放; MAIN 语句前面的伪指令“ORG 0100H”表示,以 标号MAIN表示的主程序放在0100H开始的区域,当 然也可以是跳到能够避开上述入口地址的其他地址。 35 04:34:02