单片机的输入和输出分为数字量和模拟量两种。
数字量定义为:在时间和数值上都是断续变化的离散信号。最基本的数字量就是0和1,反映到开关上就是指一个开关的打开(0)或闭合(1)状态。
模拟量定义为:在时间和数上都是连续变化的信号。指经PT、CT等各类传感器传送过来的电压、电流、频率等信号,即模拟量。
输入信号:是通过外部的触点、开关、变送器、传感器等信号接入到单片机中。
输出信号:单片机通过内部程序的判断和计算,将电流、电压、开关等信号传送到外部的信号。
下图为典型的51系列单片机接线图
其中P0为模拟量输入端、P3为数字量输入端。
IO口的输入输出是通过对单片机寄存器的配置来实现的。
C51的单片机IO口本来就是双向的不需要设置。
STM32单片机的IO口用C语言的设置方法如下:
void LED_Config(void)
{
GPIO_InitTypeDef GPIO_Structure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
//PC10-LED(指示灯)
GPIO_Structure.GPIO_Pin = GPIO_Pin_10;
GPIO_Structure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Structure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOC,GPIO_Structure); //LED
}
单片机的io口设置成输出或输入状态就是给这个io口赋值为0或1。但是这个0或1并代表是输入还是输出状态,这要取决于你连接这个口的是什么器件,或者说取决于你这个口要实现的是输入还是输出状态。比如点亮一个led灯,首先一定是io口输出一个状态才能让灯亮对吧,那么给0还是给1得看电路。再比如按键,这时就是给io口输入了。是0还是1也看电路。
最后一个特殊就是ad采集,这肯定是输入吧,但是不能单纯的理解为给个0或1了。再比如pwm这肯定是输出,但也不能单纯的理解为给个0或1。
说了这么多,意思就是看你要让这个口实现的是输入还是输出状态,当你确定了,那么这个口的状态也就被确定了。
单片机的 I/O 接口, 如果该 I/O 口有 AD 功能 就可以,以模拟量信号输入,
如果该 I/O 口有 PWM 功能 就可以,以 PWM 调制信号 输出,
或者 通过滤波以 模拟量信号输出,
现在有很多 型号的 单片机 都有 以上功能,
如 STC 系列单片机,可以 上 STC 官网 看看,下载单片机的 数据手册
单片机怎样输入输出的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机怎样输入输出