目前大部分MCU的IO控制都是差不多的,有方向寄存器、输入输出寄存器和一些辅助寄存器,用于控制模拟/数字IO、上拉下拉、输出电流等。下面列举了几种常用单片机的IO控制寄存器:
| 方向寄存器 | 输入寄存器 | 输出寄存器 | 上/下拉 | 其他 |
标准51单片机 | 无 | Px | Px | 无 | 无 |
C8051F | PxMDIN/PxMDOUT | Px | Px |
|
|
AVR | DDRx | PINx | PORTx | DDRx与PORTx组合 |
|
HCS08 | PTxDD | PTxD | PTxD | PTxPE | PTxSE、PTxDS |
MSP430 | PxDIR | PxIN | PxOUT | PxREN | PxSEL |
PIC24F | TRISx | PORTx | LATx | CNPUx/CNPDx | ODCx |
在51单片机中: |
在PIC24F单片机中: |
在HCS08中: |
但是AVR单片机的AVRGCC编译器中,因为GCC遵循ANSI C标准,所以不支持单独的位操作,只能用下面方式:
#define LED PB5
PORTB |= (1 << LED);
此外,大部分MCU的IO都存在类似51单片机的读-修改-写问题。
yueleilei2004_790049340 2010-11-19 19:26