PTA equ $0000 ;A口数据寄存器
DDRA equ $0004 ;A口数据方向寄存器
DDRB equ $0005 ;B口数据方向寄存器
PTB equ $0001 ;B口数据寄存器
PTC equ $0002 ;C口数据寄存器
DDRC equ $0006 ;C口数据方向寄存器
DDRD equ $0007 ;D口数据方向寄存器
PTD equ $0003 ;D口数据寄存器
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的通道寄存器(低位)
T1SC1 equ $0028 ;定时器1通道1状态和控制寄存器
T1CH1H equ $0029 ;定时器1通道1的通道寄存器(高位)
T1CH1L equ $002A ;定时器1通道1的通道寄存器(低位)
LCD_RS equ 0 ;LCD寄存器选择信号接PTC0
LCD_RW equ 1 ;读写信号接PTC1
LCD_E equ 2 ;LCD使能信号接PTC2
org $0040
LCD_Buffer rmb 16 ;第一行显示缓冲器(16字节)
flag rmb 1
value1 rmb 1 ;第二行显示缓冲器
value2 rmb 1
value3 rmb 1
value4 rmb 1
value5 rmb 1
temp rmb 1
fre_h equ $005A
fre_l equ $005B
org $8000
Entry: ;复位后程序从此开始执行
;系统初始化
SEI
NOP ;禁止所有中断
LDHX #$023F ;堆栈初始化,放入GP32的RAM最高端
TXS
JSR Init0 ;调系统初始化子程序Init0,初始学习时跳过此处
CLR flag
CLR value1
CLR value2
CLR value3
CLR value4
CLR value5
;I/O初始化
LDA #%01111111 ;PTA_PTA7作为输入,判断开关位置
STA DDRA
LDA #%11111111 ;B口为输出
STA DDRB
LDA #%00010111 ;C口的PTC0-3为输出
STA DDRC
LDA #%00000110 ;D口的PTD1-2为输出