单片机怎样实现将P1.2取出,取反后将值赋值给P3.3? P.2口接一个开关,P3.3口接一个小灯.

高分请问下,单片机怎样实现将P1.2取出,取反后将值赋值给P3.3? P.2口接一个开关,P3.3口接一个小灯.
最新回答
与可爱私奔

2024-09-06 13:20:29

REG_A EQU 0X10 ; 设定通用寄存器
P1 equ 0x01 ; 假设P1 口的寄存器为0X01
P3 EQU 0X03 ; 假设P3口的寄存器为0X03

MOV A,P1 ; 读P1 口的值保持到A,
XOR A,#0X04 ; 把P1.2取反,保存到A,
MOV REG_A, A ; 把A 寄存器保存到寄存器REG_A
RL REG_A,#1 ; 把REG_A的数据左移动一位,
AND REG_A,#0X08 ; 保留第三位数据,别的都清零,
MOV A,P3 ; 把P3端口的数据读到A
AND A,#0X08 ; 把P3.3 清零,
OR A,REG_A ;把 P1.2的数据付给A,
MOV P3,A ; 把 P1.2的数据付给P3.3
蓝雨希

2024-09-06 09:48:45

ORG 0000H
宾狗

2024-09-06 11:34:20

汇编:
MOV C,P1.2
CPL C
MOV P3.3,C

C语言:
sbit p12=P1^2
sbit P33=P3^3

P33=~P12;