每个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功能如下表所示:
注:I:输入,O:输出,D、D0,D1:数据
B:蜂鸣器选项,BZ或BZ(非),X:任意值
C:CMOS输出
PC0,PC1分别是INT和TMR共享引脚。
为了避免在浮空状态下功耗过大,建议将未使用的或没有连结到外部的I/O口由软件指令设置成输出引脚。
掩膜选项
下表示出了这种单片机的各种掩膜选项,为了满足系统的功能,所有的掩膜选项必须正确定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)