HT48R05A-1单片机提供13个双向输入输出口,标号为PA到PC,其分别对应RAM中的[12H]、[14H]、[16H]。所有的I/O口都可作为输入或输出用,就输入而言,这些端口不具备锁存功能,即输入数据必须在“MOV A,[m]”(m=12H、14H、16H)指令的T2上升沿准备好,对输出而言,所有的数据被锁存并保持不变,直到输出锁存器重新被改写。
每个I/O口都有其自己的控制寄存器(PAC、PBC和PCC),用来控制输入/输出的设置。使用控制寄存器,可对CMOS输出或斯密特触发输入在软件下动态地进行改变,要设置为输入功能,相应的控制位必须写“1”。信号源的输入也取绝决于控制寄存器,如果控制寄存器的某位为“1”,那么输入信号是读取自这个引脚(PAD)的状态,但是如果控制寄存器的某位的值为“0”,那么锁存器的内容将会被送到内部总线,后者,可以在“读—修改—写”指令中发生。
对于输出功能,只能设置为CMOS输出。这些控制寄存器是对应于RAM的13H、15H和17H。
芯片复位后这些输入/输出口都会是高电平或浮空状态(取决于是否选择了上拉电阻),每一个输入/输出锁存位都能被SET [m].i或CLR [m].i指令置位或清零,(m=12H、14H和16H)。
某些指令会首先输入数据然后进行输出操作。例如,SET [m].i,CLR [m].i,CPL [m]和CPLA [m]指令,读取输入口的状态到CPU,执行这个操作(位操作),然后将数据写回到锁存器或累加器。
PA的每一个口都具有唤醒系统的功能,PC口的高6位和PB口的高5位在物理上是不存在的,读这些位将返回“0”,而写这些位的结果为无效操作。
所有的I/O口都可以有上拉电阻的选择,一旦选择上拉电阻,所有的I/O口都具有上拉电阻,必须注意的是:没有上拉电阻的I/O口工作在输入模式会产生浮空现象。
PB0和PB1分别与BZ和BZ(非)共享引脚,如果BZ和BZ(非)的选项被选择,PB0和PB1在输出模式时的输出信号将是由定时/计数器的溢出信号产生的PFD信号,在输入模式时,始终保持它的原来功能,一旦BZ和BZ(非)的选项被选择,蜂鸣器的输出信号只受PB0数据寄存器的控制,PB0和PB1的I/O功能如下表所示:
HT48R05A-1 PB0,PB1的I/O功能 | ||||||||||
PB0 I/O | I | I | I | I | O | O | O | O | O | O |
PB0 I/O | I | O | O | O | I | I | I | O | O | O |
PB0/PB1模式 | X | C | B | B | C | B | B | C | B | B |
PB0 数据 | X | X | O | 1 | D | 0 | 1 | D0 | O | 1 |
PB1数据 | X | D | X | X | X | X | X | D1 | X | X |
PB0 Pad状态 | I | I | I | I | D | 0 | B | D0 | O | B |
PB1 Pad状态 | 1 | D | 0 | B | 1 | 1 | 1 | D1 | 0 | B |
注:I:输入,O:输出,D、D0,D1:数据 B:蜂鸣器选项,BZ或BZ(非),X:任意值 C:CMOS输出 PC0,PC1分别是INT和TMR共享引脚。 |
为了避免在浮空状态下功耗过大,建议将未使用的或没有连结到外部的I/O口由软件指令设置成输出引脚。 掩膜选项 下表示出了这种单片机的各种掩膜选项,为了满足系统的功能,所有的掩膜选项必须正确定义。 |
HT48R05A-1 掩膜选项 | |
编号 | 选项 |
1 | WDT时钟源,WDTOSC fTID |
2 | WDT允许/禁止:允许/禁止 |
3 | LVD允许/禁止:允许/禁止 |
4 | CLR WDT指令:一条或两条清除WDT指令 |
5 | 系统振荡器:RC或石英晶体 |
6 | 上拉电阻(PA-PC):选择有上拉电组或无上拉电阻 |
7 | BZ选项:允许/禁止 |
8 | PA0-PA7唤醒功能:允许/禁止 |
9 | 锁定:不锁定/锁定 |