STC89C52的GPIO操作

下面是驱动STC89C52的GPIO操作方法汇总

STC89C52RC的所有IO口均有3种模式:准双向口/弱上拉(标准8051输出模式)、仅为输入(高阻)、开漏输出。

一、普通操作方法

															//包含定义了特殊功能的寄存器的文件
															#include "reg52.h"
															
															//使用sbit定义GPIO口的别名。如sbit name=Pn^m
															sbit led=P1^3;
															
															//改变GPIO的输出则直接赋值
															led=1;
														

二、用汇编语言驱动GPIO

STC89C52RC实测汇编语言对GPIO置1,是低电平输出。
															/*程序的起始位置,通常用0030H。前面的内容留给堆栈使用。
															实际烧录用0000H,没用堆栈的程序。实际无堆栈下0000H有效果,0030H没有效果。*/
															ORG 0000H
															
															/*START是程序标号,便于跳转和调用*/
															JMP START
															
															/*有冒号一般表示一个标号。用于JMP跳转*/
															START:
																  /*井号表示立即数。十六进制#0FEH。两位十六进制第一位不是0~9则前面必须加0。*/
																  MOV A,#0FFH
															      MOV P1,A
																  /*RET指令,子函数的返回,这里现象和JMP $(执行到这里就停止)一致。子函数调用常用到RET*/
																  JMP $
															END
														
以下是等价表达。
															/*和MOV A,#00H    MOV P1,A等价的表达*/
															MOV P1,#00H
															/*或者一下之一,代表清零。也可以清零具体的IO口*/
															CLR P1
															CLR P1^0
															CLR P1.0