微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > NPN、PNP的识别程序

NPN、PNP的识别程序

时间:11-26 来源:互联网 点击:
//Author:"泪与汗的缠绵"

//Data:2011-11月

//功能:NPNPNP识别程序

#include "yf_tft.h"
void GPIO_Configuration(void);
void Delayms(u16 t);
int main(void)
{
RCC_Configuration();
GPIO_Configuration();
ili9320_Initializtion(); //端口引脚初始化
ili9320_Delay(800000);
while(1)
{
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_RESET);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,10,"PNP",Blue,Yellow);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,30,"PNP:CBE",Blue,Yellow);
}
else
LCD_showzifustr(10,30,"PNP:EBC",Blue,Yellow);
}
else
{LCD_showzifustr(10,10,"NPN",Blue,Yellow);
GPIO_WriteBit(GPIOA, GPIO_Pin_1, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_2, Bit_RESET);
GPIO_WriteBit(GPIOA, GPIO_Pin_3, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_7, Bit_SET);
GPIO_WriteBit(GPIOA, GPIO_Pin_5, Bit_SET);
LCD_showzifustr(20,50,"A1R A2R A3S A7S A5S",Blue,Yellow);
Delayms(1000);
if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6))
{
LCD_showzifustr(10,30,"NPN:CBE",Blue,Yellow);
}
else
LCD_showzifustr(10,30,"NPN:EBC",Blue,Yellow);

}
}
}
void RCC_Configuration(void)
{

SystemInit () ;//很重要!!!!

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD
|RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO, ENABLE);
}
void GPIO_Configuration(void)
{GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_7|GPIO_Pin_5;//IO端口的第4位
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;//端口模式为模拟输入方式
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA, &GPIO_InitStructure);

}
void Delayms(u16 t)// Delay Time about 1 ms;
{
u16 i;
do
{
for (i=0; i<500; i++);
}
while(t--);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top