这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 21号的作业,burden只能扔这里了。【更新: 时钟嘀嗒和18B20】

共29条 1/3 1 2 3 跳转至

21号的作业,burden只能扔这里了。【更新: 时钟嘀嗒和18B20】

菜鸟
2014-10-20 13:33:42     打赏

菜鸟
2014-10-20 13:38:42     打赏
2楼

这是我制作的PCB图 

 焊之前的各种零件图已经最后的成品图。

 

最后说一下原理:我用的FT232的芯片,然后跳线帽控制VCC out的是5V还是3.3V,电源提示是红色LED灯,用绿色LED灯负极连接TX和RX,正极连1.5K电阻,电阻上拉到VCC in。这样可以在有数据传输的时候让绿色LED灯变亮。


菜鸟
2014-10-20 13:48:27     打赏
3楼


视频地址:http://player.youku.com/player.php/sid/XODA3Mjg4NDQw/v.swf

自己做的USB to Uart连上实验平台进行调试的视频。

深夜完成的,确保环境安静。


菜鸟
2014-10-20 13:54:25     打赏
4楼

keil v4.7的安装

License ID成功添加。怎么弄的大家都懂了,虽说有正版信仰,但信仰敌不过现实啊。


菜鸟
2014-10-20 17:50:39     打赏
5楼
啊。。。。我只是想幽默点

菜鸟
2014-10-21 21:19:59     打赏
6楼

视频地址:http://player.youku.com/player.php/sid/XODA4MzY5MTY4/v.swf
 
/**
  ******************************************************************************
  * @file    GPIO/IOToggle/main.c 
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    08-April-2011
  * @brief   Main program body.
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  *

	© COPYRIGHT 2011 STMicroelectronics

******************************************************************************
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "stm32_eval.h"
GPIO_InitTypeDef GPIO_InitStructure;

void RCC_Configuration(void)
{
  RCC_DeInit();
    
  RCC_HSICmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
  
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
  
  RCC_HSEConfig(RCC_HSE_OFF);
  RCC_LSEConfig(RCC_LSE_OFF);
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz
  RCC_PLLCmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);
  RCC_PCLK2Config(RCC_HCLK_Div1);
  RCC_PCLK1Config(RCC_HCLK_Div2);
  RCC_HCLKConfig(RCC_SYSCLK_Div1);
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  while(RCC_GetSYSCLKSource() != 0x08);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
	GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}

void GPIO_INIT()
{ //GPIOA(跑马灯)的初始化
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
	
  //GPIOC(LED)的初始化
  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_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
}
//延时微秒
void delay_us(u32 n)
{
	u8 j;
	while(n--)
	for(j=0;j<10;j++);
}
//延时毫秒
void  delay_ms(u32 n)
{
	while(n--)
	delay_us(1000);
}


/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{ 
	  RCC_Configuration();   
    GPIO_INIT();  
	
	while(1){
	  //LED转圈
		GPIO_ResetBits(GPIOC,GPIO_Pin_3);//D4灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_3);//D4灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_2);//D3灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);//D3灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_1);//D2灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_1);//D2灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_0);//D1灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_0);//D1灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_4);//D5灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_4);//D5灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_5);//D6灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_5);//D6灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_6);//D7灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_6);//D7灯灭
		
		GPIO_ResetBits(GPIOC,GPIO_Pin_7);//D8灯亮
		delay_ms(50);
		GPIO_SetBits(GPIOC,GPIO_Pin_7);//D8灯灭
		
		
		//跑马灯不亮白色光
		GPIO_ResetBits(GPIOA,GPIO_Pin_1);//蓝色亮
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_1);//蓝色灭
		
		GPIO_ResetBits(GPIOA,GPIO_Pin_2);//红色亮
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_2);//红色灭
		
		GPIO_ResetBits(GPIOA,GPIO_Pin_3);//绿色亮
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_3);//绿色灭
		
		GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);//紫色灭
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);//紫色亮
		
		GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3);//青色亮
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3);//青色灭
		
		GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);//黄色亮
		delay_ms(100);
		GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);//黄色灭
		}
}



 LED和跑马灯的作业放同一代码了


视频地址:http://player.youku.com/player.php/sid/XODA5MDk0NTk2/v.swf

有点强迫症,之前的只转一圈不好看,无聊加了个for循环给LED灯


菜鸟
2014-10-21 21:42:16     打赏
7楼

啊。。。。技巧?!是有什么不严谨地方吗?


菜鸟
2014-10-21 21:49:17     打赏
8楼

要简短的话以后要多努力了


菜鸟
2014-10-26 13:37:19     打赏
9楼

视频地址:http://player.youku.com/player.php/sid/XODExNzAwNDQ4/v.swf
/**
  ******************************************************************************
  * @file    GPIO/IOToggle/main.c 
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    08-April-2011
  * @brief   Main program body.
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  *

	© COPYRIGHT 2011 STMicroelectronics

******************************************************************************
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x.h"
#include "stm32_eval.h"
GPIO_InitTypeDef GPIO_InitStructure;

void RCC_Configuration(void)
{
  RCC_DeInit(); 
  RCC_HSICmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); 
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);
  
  RCC_HSEConfig(RCC_HSE_OFF);
  RCC_LSEConfig(RCC_LSE_OFF);
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz
  RCC_PLLCmd(ENABLE);
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);
  RCC_PCLK2Config(RCC_HCLK_Div1);
  RCC_PCLK1Config(RCC_HCLK_Div2);
  RCC_HCLKConfig(RCC_SYSCLK_Div1);
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
  while(RCC_GetSYSCLKSource() != 0x08);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);
  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure);
  GPIO_ResetBits(GPIOD,GPIO_Pin_2);
}

void GPIO_INIT()
{
   //GPIOB(数码管)初始化
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
	
  //按键初始化
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
}
//微秒延时
void delay_us(u32 n)
{
	u8 j;
	while(n--)
	for(j=0;j<10;j++);
}
//毫秒延时
void  delay_ms(u32 n)
{
	while(n--)
	delay_us(1000);
}


/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */

int main(void)
{   
    int i,j,k;
    RCC_Configuration();   
    GPIO_INIT();
    GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//关闭数码管
	  while(1){
		    if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10))//S3键按下
           {delay_ms(80);
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10)){i++;}}//延时后S3处于按下状态,i++       
		if(i%2==0){ //如果i是偶数
		     if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))//S1键按下
           {delay_ms(80);
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)){j++;}}//延时后S1处于按下状态,j++       
		if(j>15){j=0;}
		   GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		   GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
		switch(j){
		 case 0 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		 break;
		 case 1 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		 break;
			case 2 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
			break;
			case 3 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
			break;
			case 4 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 5 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 6 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 7 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 8 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
			break;
			case 9 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);
			break;
			case 10 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 11 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 12 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 13 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 14 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
		          delay_ms(1);
		         GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
		         GPIO_SetBits(GPIOB,GPIO_Pin_15);
		         GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		         delay_ms(1);
		         GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		         GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 15 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
		}
	}

      if(i%2==1){//如果i是奇数
		     if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9))//S2键按下
           {delay_ms(80);
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)){k++;}}//延时后S2处于按下状态,j++       
		if(k>15){k=0;}
		   GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		   GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
		switch(k){
		 case 0 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		 break;
		 case 1 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		 break;
			case 2 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
			break;
			case 3 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
			break;
			case 4 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 5 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 6 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8|GPIO_Pin_5);
			break;
			case 7 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 8 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);
			break;
			case 9 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
			 GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);
			break;
			case 10 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 11 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 12 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 13 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 14 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
			case 15 : 
			 GPIO_SetBits(GPIOB,GPIO_Pin_1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_1);
		          GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5);
		          GPIO_SetBits(GPIOB,GPIO_Pin_15);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
		          delay_ms(1);
		          GPIO_ResetBits(GPIOB,GPIO_Pin_15);
		          GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);
			break;
		}
		}
	}
}


 


菜鸟
2014-10-26 17:21:15     打赏
10楼

啊。。。动态扫描有啊,在数码管显示双位数时是的,只不过我延时只有1ms。

不过还是有地方不明白,我觉得都在main函数有点乱

尝试把两个按键记数用void func()的方法放在main外面,后面再用main函数里调用时却没法实现记数功能了。


共29条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]