本帖最后由 cuisheng 于 2023-8-13 12:04 编辑
第10集学习笔记:
汇编语言程序的框架
-
- $NOMOD51
- $INCLUDE (STC8H.H)
- ;...这里可以编写程序中用到的一些符号定义(使用EQU、DATA、BIT等伪指令)
- ORG 0000H
- START: LJMP MAIN ;跳转到主程序
- ORG 0003H
- LJMP INT0_ISR ;外部中断0入口(ISR Interrupt Service Rowtine 中断服务程序)
- ORG 000BH
- LMP T0_ISR ;定时器0中断入口
-
- ORG 0013H
- LJMP INT1_ISR ;外部中断1入口
- ORG 001BH
- LMP T1_ISR ;定时器1中断入口</div>
-
- ORG 0023H
- LJMP UART1_ISR ;串口1中断入口</div>
- ......
- ORG 0200H
- MAIN: MOV SP, #80H ;设置堆栈指针(可根据情况修改)
- ...... ;初始化内存区域内容
- ...... ;设置有关特殊功能寄存器(SFR)的控制字
- ...... ;根据需要开放相应的中断控制
- MAINLOOP:
- ;主程序循环
- LJMP MAINLOOP
- INT0_ISR: ;外部中断0服务子程序
- ...... ;根据需要填入适当的内容
- RETI
-
- ...... ;编写其他子程序或者定义程序中所用的常数
-
- END
复制代码
注:没有用到的中断服务程序,使用复位程序,提高可靠性
|