开关量输入输出(IO)实验
开关量输入输出(IO)实验 实验目的 实验器材 硬件接线 程序功能 程序清单 备注说明 实验目的: 实验器材: 硬件接线: 程序功能: 开关PTA7-4分别控制着指示灯PTA3-0 亮暗 开关PTB0\PTC0 其中之一闭合,指示灯PTB7-1与PTC1交替暗亮; 若两个均未闭合,则指示灯PTB1与PTC1 均不亮; 若两个均闭合,则两个指示灯均亮. 程序清单: 程序说明 口地址定义 变量定义 主程序 初始化子程序 复位矢量 *------程序说明--------------------------------* *文件名:IOEXMA.ASM *硬件连接:PTA7-4接开关,PTA3-0接指示灯 *PTB1接指示灯,PTB0接开关 *PTC1接指示灯,PTC0接开关 *程序描述:①开关PTA7-4分别控制着指示灯PTA3-0暗 * ②开关PTB0、PCT0其中之一闭合指示PTB7-1 * 与PTC1交替暗亮,若两个均未闭合则指示灯 * PTB1与PTC1均不亮,若两个均闭合则两排 * 指示灯均亮。 *目的:I/O口的基本使用方法 *说明:仅作为基本教学例程 *----------------------------------------------* *-----口地址定义————————————————— DDRA equ $0004 ;A口数据方向寄存器 PTA equ $0000 ;A口数据寄存器 PTAPUE equ $000D ;A口上拉电阻允许寄存器 DDRB equ $0005 ;B口数据方向寄存器 PTB equ $0001 ;B口数据寄存器 DDRC equ $0006 ;C口数据方向寄存器 PTC equ $0002 ;C口数据寄存器 RAMstartAddr equ $0040 ;RAM的起始地址(因芯片不同可以更改) FlashStartAddr equ $8000 ;程序开始地址(因芯片不同可以更改) *-----数据区定义(变量名定义)—————————— org RAMstartAddr TmpVar rmb 1 ;变量TmpVar,缓冲使用 Light_BC rmb 1 ;BC口灯的状态 *------主程序———————————————— org FlashStartAddr ;程序起始地址 MainInit: NOP ;初始化—————— SEI ;禁止所有中断 LDHX #$023F ;堆栈初始化, ;放GP32的RAM最高端 TXS JSR Init0 ;调系统初始化子程序Init0, ;初始学习时跳过此处 LDA # ;定义A口7-4为输入,3-0为输出 STA DDRA LDA # ;定义A口7-4有上拉电阻 STA PTAPUE LDA # ;定义B口7-1为输出,0为输入 STA DDRB STA DDRC ;定义C口7-1为输出,0为输入 MOV #$FF,Light_BC ;BC口灯的状态赋初值 Start: ;程序总循环入口—— NOP LDA PTA ;读取A口状态 NSA ;A口7-4输入控制A口3-0输出 ;刚好为A.7-4->A.3-0 COMA STA PTA LDA PTB ;取开关PT