Port functions. (1) P1, P2 ports: I/O, interrupt function, other on-chip peripheral functions such as timer, comparator; (2) P3, P4P5P6 ports: I/O, other on-chip peripheral functions such as SPI, UART mode, A/D conversion, etc.; (3) S, COM port: I/O, LCD driver.
Each port of MSP430 has a rich set of control registers for users to implement corresponding operations. P1 and P2 have 7 registers, and P3~P6 have 4 registers. By setting registers, we can achieve: (1) Independent programming of each I/O bit; (2) Any combination of input, output and interrupt; (3) All 8 bits of P1 and P2 can be used for external interrupt processing; (4) All instructions can be used to operate registers; (5) Input and output can be performed by bytes, or by bits.
The functions of ports P1 and P2 can be realized through their 7 control registers. Here, Px represents P1 or P2.
(1) PxDIR: Input/output direction register. The 8 bits are independent of each other and can define the input/output direction of the 8 pins respectively. The 8 bits are reset after PUC. When using the input/output function, the direction of the port should be defined first. When used as input, it can only be read; when used as output, it can be read and written. 0: Input mode; 1: Output mode. For example: P1DIR|=BIT4; //P1.4 output, P2DIR=0XF0; //High 4 bits output, low 4 bits input.
(2) PXIN: Input register, which is a read-only register. Users cannot write to it and can only know the input signal of the I/O port by reading the contents of its register. Therefore, the direction of its pin should be selected as input. For example, in the keyboard scanning program, it is often necessary to read the port register value of the row line or column line to judge the case situation. For example: unsigned char key;
P1DIR&=~BIT4; //P1.4 input
……
key=P1IN&0X10; //output port P1.4 value
……
(3) PXOUT: Output register. This register is the output buffer register of the I/O port. When it is read again, the content of the output buffer has nothing to do with the pin direction definition. Changing the content of the direction register will not affect the content of the output buffer. For example: PIOUT|=0X01; //P1.0 outputs 1, PIOUT&=~0X01; //P1.0 outputs 0.
(4) PXIFG: Interrupt flag register. Its 8 flag bits indicate whether the corresponding pin has an interrupt request to be processed. 0: No interrupt request, 1: Interrupt request. The interrupt flags are PXIFG.0~PXIFG.7. It should be noted that PXIFG.0~PXIFG.7 share an interrupt vector and are multi-source interrupts. When an interrupt caused by any event is processed, PXIFG.0~PXIFG.7 will not be reset automatically. The software must determine which event it is and reset the corresponding flag. In addition, the time of the external interrupt event must be kept at least 1.5 times the MCLK time to ensure that the interrupt request is accepted and the corresponding interrupt flag is set.
(5) PXIES: Interrupt trigger edge selection register. If a pin of the PX port is allowed to interrupt, the interrupt trigger mode of the pin must also be defined. 0: Rising edge trigger sets the corresponding flag, 1: Falling edge triggers the corresponding flag. For example: MOV.B #07H, &P1IES; the falling edge of the lower 3 bits of p1 triggers an interrupt.
(6) PXIE: Interrupt enable register. Each pin of the PX port has a bit to control whether the pin is allowed to interrupt. 0: Disable interrupt, 1: Enable interrupt. MOV.B #0E0H, &P2IE; The upper 3 bits of P2 enable interrupts.
(7) PXSEL: Function selection register. The two ports P1 and P2 also have other on-chip peripheral functions. These functions are connected to the outside of the chip by multiplexing the P1 and P2 pins. PXSEL is used to select the I/O port function and the peripheral module function of the pin. 0: Select the pin as an I/O port, 1: Select the pin as a peripheral module function. For example: P1SEL|=0X10; //P1.4 is a peripheral module function.
Ports P3, P4, P5, and P6 do not have interrupt capabilities, and their other functions are the same as those of PI and P2. Excluding the three registers related to interrupts of ports P1 and P2, the four registers of ports P3, P4, P5, and P6 (with the same usage as P1 and P2) are PXDIR, PXIN, PXOUT, and PXSEL for users to use.
Ports COM and S, they realize direct interface with the LCD. COM is the common terminal of the LCD, S is the segment terminal of the LCD. The output terminal of the LCD can also be configured as a digital output port by software.
Previous article:MSP430 Tutorial 8: MSP430 MCU Reset Circuit
Next article:MSP430 Tutorial 6: MSP430 Register Chinese Notes
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- Fast multiplexing within and between boards
- vl813 schematic diagram solution sharing
- Metal detector circuit diagram design
- Analysis of the background noise of small speakers
- Design of scalable modular multiplication operator with base 4.pdf
- Package size issue
- What are the changes in the maximum output current and load limit of a differential output amplifier when it is single-ended output?
- Get a sneak peek at the practical white paper "Harnessing the Power of 5G"!
- How to write C/C++ code in DSP?
- 70Mpa High-pressure Hydrogen Fuel Vehicle Filling Station Overall Solution