- 打卡等级:偶尔看看III
- 打卡总天数:43
- 最近打卡:2025-02-20 07:20:20
中级会员
- 积分
- 233
|
发表于 2024-8-22 12:01:30
|
显示全部楼层
本帖最后由 mapengji 于 2024-8-22 15:00 编辑
陈老师的汇编模版。没有试验箱,没有实际运行。。但是编译能通过。
/////-----------------头文件------------------------------------------------------------------------
$NOMOD51
$INCLUDE (STC8H.H) ;包含STC8H8K64U单片机寄存器定义头文件
/////---------------------------------------------------------------------------------------------------
//--------------------------中断跳转入口地址----------------------------
//-------------------------------------------------------------------------------
ORG 0000H
LJMP MAIN ;跳转到主程序
ORG 0003H
LJMP INT0_ISR ;外部中断0入口
ORG 000BH
LJMP T0_ISR ;定时器0中断入口
ORG 0013H
LJMP INT1_ISR ;外部中断1入口
ORG 001BH
LJMP T1_ISR ;定时器1中断入口
ORG 0023H
LJMP UART1_ISR ;串口1中断入口
ORG 002BH
LJMP ADC_ISR ;ADC中断服务程序入口
ORG 0033H
LJMP LVD_ISR ;低电压检测中断服务程序入口
ORG 003BH
LJMP PCA_ISR ;PCA中断服务程序入口
ORG 0043H
LJMP UART2_ISR ;串口2中断服务程序入口
ORG 004BH
LJMP SPI_ISR ;SPI中断服务程序入口
ORG 0053H
LJMP INT2_ISR ;INT2中断服务程序入口
ORG 005BH
LJMP INT3_ISR ;INT3中断服务程序入口
ORG 0063H
LJMP T2_ISR ;定时器2中断服务程序入口
ORG 0083H
LJMP INT4_ISR ;INT4中断服务程序入口
ORG 008BH
LJMP UART3_ISR ;UART3中断服务程序入口
ORG 0093H
LJMP UART4_ISR ;UART4中断服务程序入口
ORG 009BH
LJMP T3_ISR ;T3中断服务程序入口
ORG 00A3H
LJMP T4_ISR ;T4中断服务程序入口
ORG 00ABH
LJMP CMP_ISR ;比较器中断服务程序入口
ORG 00C3H
LJMP I2C_ISR ;I2C中断服务程序入口
ORG 00CBH
LJMP USB_ISR ;USB中断服务程序入口
ORG 00D3H
LJMP PWMA_ISR ;PWMA中断服务程序入口
ORG 00DBH
LJMP PWMB_ISR ;PWMB中断服务程序入口
ORG 011BH
LJMP TKSU_ISR ;触摸按键中断服务程序入口(STC8H8K64U单片机没有该中断)
ORG 0123H
LJMP RTC_ISR ;RTC中断服务程序入口
ORG 012BH
LJMP P0_ISR ;P0中断服务程序入口
ORG 0133H
LJMP P1_ISR ;P1中断服务程序入口
ORG 013BH
LJMP P2_ISR ;P2中断服务程序入口
ORG 0143H
LJMP P3_ISR ;P3中断服务程序入口
ORG 014BH
LJMP P4_ISR ;P4中断服务程序入口
ORG 0153H
LJMP P5_ISR ;P5中断服务程序入口
ORG 015BH
LJMP P6_ISR ;P6中断服务程序入口
ORG 0163H
LJMP P7_ISR ;P7中断服务程序入口
ORG 017BH
LJMP DMA_M2M_ISR ;DMA_M2M中断服务程序入口
ORG 0183H
LJMP DMA_ADC_ISR ;DMA_ADC中断服务程序入口
ORG 018BH
LJMP DMA_SPI_ISR ;DMA_SPI中断服务程序入口
ORG 0193H
LJMP DMA_UR1T_ISR ;DMA_UR1T中断服务程序入口
ORG 019BH
LJMP DMA_UR1R_ISR ;DMA_UR1R中断服务程序入口
ORG 01A3H
LJMP DMA_UR2T_ISR ;DMA_UR2T中断服务程序入口
ORG 01ABH
LJMP DMA_UR2R_ISR ;DMA_UR2R中断服务程序入口
ORG 01B3H
LJMP DMA_UR3T_ISR ;DMA_UR3T中断服务程序入口
ORG 01BBH
LJMP DMA_UR3R_ISR ;DMA_UR3R中断服务程序入口
ORG 01C3H
LJMP DMA_UR4T_ISR ;DMA_UR4T中断服务程序入口
ORG 01CBH
LJMP DMA_UR4R_ISR ;DMA_UR4R中断服务程序入口
ORG 01D3H
LJMP DMA_LCM_ISR ;DMA_LCM中断服务程序入口
ORG 01DBH
LJMP LCM_ISR ;LCM中断服务程序入口
ORG 0200H
//-------------------------------------------------------------------------------
//---------------------程序开始------------------------------------
//-------------------------------------------------------------------------------
MAIN:
MOV SP,#80H ;设置堆栈指针
;程序写这里
MAINLOOP: ;主程序循环
LJMP MAINLOOP
//-------------------------中断服务-----------------------------------------------------------
//- 有中断函数屏蔽复位程序,
//--------------------------------------------------------------------------------------------
INT0_ISR: ;外部中断0中断服务子程序
MOV IAP_CONTR,#20H ;复位
RETI
T0_ISR: ;定时器0中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
INT1_ISR: ;外部中断1中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
T1_ISR: ;定时器1中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
UART1_ISR: ;串口1中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
ADC_ISR: ;ADC中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
LVD_ISR: ;低电压检测中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
PCA_ISR: ;PCA中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
UART2_ISR: ;串口2中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
SPI_ISR: ;SPI中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
INT2_ISR: ;INT2中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
INT3_ISR: ;INT3中断服务子程序
;加程序;
MOV IAP_CONTR,#20H ;复位
RETI
T2_ISR: ;定时器2中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
INT4_ISR: ;INT4中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
UART3_ISR: ;UART3中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
UART4_ISR: ;UART4中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
T3_ISR: ;T3中断服务子程序
;加程序
MOV IAP_CONTR,#20H ; 复位
RETI
T4_ISR: ;T4中断服务子程序
;加程序
MOV IAP_CONTR,#20H ; 复位
RETI
CMP_ISR: ;比较器中断服务子程序
;加程序
MOV IAP_CONTR,#20H ; 复位
RETI
I2C_ISR: ;I2C中断服务子程序
;加程序
MOV IAP_CONTR,#20H ; 复位
RETI
USB_ISR: ;USB中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
PWMA_ISR: ;PWMA中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
PWMB_ISR: ;PWMB中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
TKSU_ISR: ;触摸按键中断服务子程序(STC8H8K64U单片机没有该中断)
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
RTC_ISR: ;RTC中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P0_ISR: ;P0中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P1_ISR: ;P1中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P2_ISR: ;P2中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P3_ISR: ;P3中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P4_ISR: ;P4中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P5_ISR: ;P5中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P6_ISR: ;P6中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
P7_ISR: ;P7中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_M2M_ISR: ;DMA_M2M中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_ADC_ISR: ;DMA_ADC中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_SPI_ISR: ;DMA_SPI中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR1T_ISR: ;DMA_UR1T中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR1R_ISR: ;DMA_UR1R中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR2T_ISR: ;DMA_UR2T中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR2R_ISR: ;DMA_UR2R中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR3T_ISR: ;DMA_UR3T中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR3R_ISR: ;DMA_UR3R中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR4T_ISR: ;DMA_UR4T中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_UR4R_ISR: ;DMA_UR4R中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
DMA_LCM_ISR: ;DMA_LCM中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
LCM_ISR: ;LCM中断服务子程序
;加程序
MOV IAP_CONTR,#20H ;复位
RETI
//-------------------------------------------------------------------------------
//--------自己写的子程序------------------
//-------------------------------------------------------------------------------
END;程序结束,
|
|