| 
 
新手入门 
 
	积分4金钱4 注册时间2021-4-7在线时间0 小时 | 
 
| 单片机源程序如下:
 #include "stm32f10x.h"
 #include "bsp-lcd1602.h"
 #include "delay.h"
 #include "sys.h"
 #include "adc.h"
 
 char people_ADD = 0;
 
 void led( void )
 {
 GPIO_InitTypeDef GPIO_InitStructure;
 
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
 GPIO_Init(GPIOC, &GPIO_InitStructure);
 
 }
 
 void led_one( void )
 {
 GPIO_SetBits(GPIOC,GPIO_Pin_0);
 GPIO_ResetBits(GPIOC,GPIO_Pin_1);
 GPIO_SetBits(GPIOC,GPIO_Pin_2);
 GPIO_SetBits(GPIOC,GPIO_Pin_3);
 GPIO_ResetBits(GPIOC,GPIO_Pin_4);
 GPIO_SetBits(GPIOC,GPIO_Pin_5);
 GPIO_SetBits(GPIOC,GPIO_Pin_6);
 GPIO_ResetBits(GPIOC,GPIO_Pin_7);
 GPIO_SetBits(GPIOC,GPIO_Pin_8);
 GPIO_SetBits(GPIOC,GPIO_Pin_9);
 GPIO_SetBits(GPIOC,GPIO_Pin_10);
 GPIO_SetBits(GPIOC,GPIO_Pin_11);
 
 }
 
 void led_two(void)
 {
 GPIO_SetBits(GPIOC,GPIO_Pin_0);
 GPIO_ResetBits(GPIOC,GPIO_Pin_1);
 GPIO_ResetBits(GPIOC,GPIO_Pin_2);
 GPIO_SetBits(GPIOC,GPIO_Pin_3);
 GPIO_ResetBits(GPIOC,GPIO_Pin_4);
 GPIO_ResetBits(GPIOC,GPIO_Pin_5);
 GPIO_SetBits(GPIOC,GPIO_Pin_6);
 GPIO_ResetBits(GPIOC,GPIO_Pin_7);
 GPIO_ResetBits(GPIOC,GPIO_Pin_8);
 GPIO_SetBits(GPIOC,GPIO_Pin_9);
 GPIO_SetBits(GPIOC,GPIO_Pin_10);
 GPIO_SetBits(GPIOC,GPIO_Pin_11);
 }
 
 void led_three(void)
 {
 GPIO_ResetBits(GPIOC,GPIO_Pin_0);
 GPIO_ResetBits(GPIOC,GPIO_Pin_1);
 GPIO_ResetBits(GPIOC,GPIO_Pin_2);
 GPIO_ResetBits(GPIOC,GPIO_Pin_3);
 GPIO_ResetBits(GPIOC,GPIO_Pin_4);
 GPIO_ResetBits(GPIOC,GPIO_Pin_5);
 GPIO_ResetBits(GPIOC,GPIO_Pin_6);
 GPIO_ResetBits(GPIOC,GPIO_Pin_7);
 GPIO_ResetBits(GPIOC,GPIO_Pin_8);
 GPIO_ResetBits(GPIOC,GPIO_Pin_9);
 GPIO_ResetBits(GPIOC,GPIO_Pin_10);
 GPIO_ResetBits(GPIOC,GPIO_Pin_11);
 }
 
 void led_Down(void)
 {
 GPIO_SetBits(GPIOC,GPIO_Pin_0);
 GPIO_SetBits(GPIOC,GPIO_Pin_1);
 GPIO_SetBits(GPIOC,GPIO_Pin_2);
 GPIO_SetBits(GPIOC,GPIO_Pin_3);
 GPIO_SetBits(GPIOC,GPIO_Pin_4);
 GPIO_SetBits(GPIOC,GPIO_Pin_5);
 GPIO_SetBits(GPIOC,GPIO_Pin_6);
 GPIO_SetBits(GPIOC,GPIO_Pin_7);
 GPIO_SetBits(GPIOC,GPIO_Pin_8);
 GPIO_SetBits(GPIOC,GPIO_Pin_9);
 GPIO_SetBits(GPIOC,GPIO_Pin_10);
 GPIO_SetBits(GPIOC,GPIO_Pin_11);
 
 }
 
 
 
 void Key_GPIO_Config(void)
 {
 GPIO_InitTypeDef GPIO_InitStructure;
 
 /*开启按键端口(PA)的时钟*/
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC,ENABLE);
 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
 
 // IO 口做输入口时,不用设置输出频率
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
 
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 }
 
 
 void KEY_Scan( void )
 {
 if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 1 )
 {
 /*等待按键释放 */
 while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == 1);
 people_ADD++;
 if( people_ADD > 50 )
 {
 people_ADD = 50;
 }
 }
 
 if( ADC_GetConversionValue(ADC1) > 1000 )
 {
 while( (ADC_GetConversionValue(ADC1) > 1000 ));
 people_ADD--;
 if( people_ADD <= 0 )
 {
 people_ADD = 0;
 }
 }
 }
 
 
 
 int main(void)
 {
 Key_GPIO_Config();
 ADC1_GPIO_Config();
 ADC_Config();
 LCD1602_Init();
 led();
 LCD1602_ShowStr(0,0,"     Light     ",15);
 LCD1602_ShowStr(0,1,"People:",7);
 led_Down();
 
 while(1)
 {
 LCD1602_WriteCmd( 0x80+0x40+8);
 LCD1602_WriteDat( people_ADD/10+'0' );
 LCD1602_WriteDat( people_ADD%10+'0' );
 KEY_Scan();
 
 
 if(( people_ADD > 0 )&&( people_ADD <= 3 ))
 {
 led_one();
 }
 else
 {
 if(( people_ADD > 3 )&&( people_ADD <= 6 ))
 {
 led_two();
 }
 else
 {
 if( people_ADD > 6 )
 {
 led_three();
 }
 else
 {
 led_Down();
 }
 }
 }
 }
 }
 
 | 
 |