150 likes | 348 Views
实验目的 实验器材 硬件接线. 软件功能 程序清单 备注说明. 定时器输入中断捕捉实验. <<<. 实验目的 :. 熟悉定时器接口模块的使用. 实验器材 :. 1.SD-1 型在线编程实验仪 2. 导线若干. MOTOROLA GP32 MCU. PTA1. VCC. 硬件接线 :. 软件功能 :. ① 系统初始化: CONFIG2 、 1 、 PTCL 、堆栈 ② 以输入捕捉中断方式 , 取反指示灯 PTA1 , 使其闪动. 程序说明 寄存器地址定义 内存变量定义 主程序 系统初始化 主循环
E N D
实验目的 实验器材 硬件接线 软件功能 程序清单 备注说明 定时器输入中断捕捉实验 <<<
实验目的: 熟悉定时器接口模块的使用
实验器材: 1.SD-1型在线编程实验仪 2.导线若干
MOTOROLA GP32 MCU PTA1 VCC 硬件接线:
软件功能: ① 系统初始化:CONFIG2、1、PTCL、堆栈 ② 以输入捕捉中断方式,取反指示灯PTA1, 使其闪动
程序说明 寄存器地址定义 内存变量定义 主程序 系统初始化 主循环 定时器1通道0输入捕捉中断子程序 向量区 程序清单:
*-----------------程序说明-----------------------------------------**-----------------程序说明-----------------------------------------* *文件名:Tim1Ch0I.ASM--定时器接口模块编程实验2-输入捕捉 *功能: • ① 系统初始化:CONFIG2、1、PTCL、堆栈 • ② 以输入捕捉中断方式,取反指示灯PTA1,使其闪动 说明:本例是将定时器1通道0(21脚)设为“跳变沿捕捉”(即电平发生变化时产生中断), * 验证方法是将21脚不断接高电平、低电平,此时指示灯PTA1状态跟随改变 *
*-------------寄存器地址------------------------------ DDRA EQU $0004 ;A口数据方向寄存器 PTA EQU $0000 ;A口数据寄存器 T1SC EQU $0020 ;定时器1状态和控制寄存器 T1CNTH EQU $0021 ;定时器1计数寄存器(高位) T1CNTL EQU $0022 ;定时器1计数寄存器(低位) T1MODH EQU $0023 ;定时器1模数寄存器(高位) T1MODL EQU $0024 ;定时器1模数寄存器(低位) T1SC0 EQU $0025 ;定时器1通道0状态和控制寄存器 T1CH0H EQU $0026 ;定时器1通道0的通道寄存器(高位) T1CH0L EQU $0027 ;定时器1通道0的通道寄存器(低位) RAMstartAddr EQU $0040 ;RAM的起始地址(因芯片不同可以更改) FlashStartAddr EQU $8000 ;程序开始地址(因芯片不同可以更改)
*---------内存变量----------------------------------------- org FlashStartAddr MainStart: SEI ;禁止所有中断 LDHX #$023F ;堆栈初始化, ;放入GP32的RAM最高端 TXS
;-------系统初始化----------------------------- MOV #%00000001,$001E ;初始化CONFIG2 MOV #%00111101,$001F ;初始化CONFIG1 MOV #%00110001,$0036 ;初始化PTCL BSET 7,$0037 MOV #$01,$0038 MOV #$2C,$0039 MOV #$80,$003A BSET 1,DDRA 定义PTA.1为输出(指示灯) BSET 1,PTA
;定时器1通道0初始化 LDA #%00110000 ;不允许溢出中断、不启动计数、 ;分频因子 =1 STA T1SC ;定时器1状态和控制寄存器 LDA #%01001100 ;设为输入捕捉模式,允许输入捕捉中断, ;跳变沿捕捉(即电平发生变化时产生中断) STA T1SC0 ;定时器1通道0状态和控制寄存器 BCLR 5,T1SC ;允许定时器1计数寄存器计数 CLI ;开放中断 --------------------初始化结束-------------------
*========主循环开始处======================== MainLoop: NOP ;仅为实验例程,无其它事务处理 JMP MainLoop ;转总循环
*----------定时器1通道0输入捕捉中断子程序--------*----------定时器1通道0输入捕捉中断子程序-------- Timer1CH0In: PSHH ;保护 h 寄存器 ; ;至此,可读取计数器的值,可在此处添加用户的程序 ;本程序仅为实验例程,用指示等状态改变,说明发生了中断 BRCLR 1,PTA,PTA1SET ;指示灯状态变换 BCLR 1,PTA BRA PTA1CLR PTA1SET: BSET 1,PTA PTA1CLR: ; LDA T1SC0 ;清除定时器1通道0输入捕捉中断标志位 BCLR 7,T1SC0 ; PULH ;释放 h 寄存器 RTI
PTA1SET: BSET 1,PTA PTA1CLR: ;LDA T1SC ;清除定时器溢出标志位 BCLR 7,T1SC RTI ;中断返回
*----------------------------向量区--------------------------------*----------------------------向量区-------------------------------- ORG $FFF6 ;定时器1通道0输入捕捉中断向量 DW Timer1CH0In ORG $FFFE ;复位向量 DW MainStart