这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 1010 【更新】labview的安装过程

共71条 3/8 1 2 3 4 5 6 ›| 跳转至
菜鸟
2014-10-18 17:46:44     打赏
21楼
没有没有

菜鸟
2014-10-18 19:13:17     打赏
22楼

keil4 安装+破解    开始

1、运行此mdk72_a应用程序

2、弹出窗口,next》 继续往下

3、勾选“我已阅读。。同意。。”(世界上最大的谎言~)

4.自定义安装路径

5、一定要填上,邮箱要像写得像邮箱

6、等待安装~。~

7、直接 Next》

8、这两项可以勾掉不要

9、此时桌面上出现了Keil4 的桌面快捷方式

10、现在开始破解

11、弹出窗口,先复制 CID

12、打开

13、弹出窗口,将CID粘贴进去>选择ARM>点击Generate>出现破解码,将破解码复制

14、将破解码粘贴出来>Add LIC>下面出现LIC Added Sucessfully,破解成功~

PS:

 第一次打开,将破解码粘贴入上图的时候,出现的不是LIC Added Sucessfully,而是

*** ERROR R206: NO REGISTRY ACCESS, ADMINISTRATION RIGHTS REQUIRED

当时没意识到是@买西瓜送熙熙提示过的那个情况

只是把错误粘贴到网上搜索,搜到解决办法:

 所以,不仅是win8,win7的破解应该也需要以管理员权限运行

——回复可见内容——

 


菜鸟
2014-10-22 20:40:53     打赏
23楼

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

用STM32点亮LED&RGB,程序如下:

 

/* 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()
{
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE);//??PC,PA???   
  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;//???PC0?PC7   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//????   
  GPIO_Init(GPIOC, &GPIO_InitStructure);//???PC   
       
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//???PA1,PA2,PA3   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//????   
  GPIO_Init(GPIOA, &GPIO_InitStructure);//???PA  
}

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);
}




int main(void)
{ 
	RCC_Configuration();
  GPIO_INIT();
	while(1)
		{
			GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);//LED????   
           delay_ms(100); 
	  GPIO_ResetBits(GPIOC,GPIO_Pin_4);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_4);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_5);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_5);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_6);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_6);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_7);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_7);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_0);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_0);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_1);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_1);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_2);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_2);//²»ÁÁ

		GPIO_ResetBits(GPIOC,GPIO_Pin_3);//ÁÁ
		delay_ms(300);
		GPIO_SetBits(GPIOC,GPIO_Pin_3);//²»ÁÁ	

		GPIO_ResetBits(GPIOA,GPIO_Pin_1);//  ˦ 
		delay_ms(1000);   
		GPIO_SetBits(GPIOA,GPIO_Pin_1);   
			 
		GPIO_ResetBits(GPIOA,GPIO_Pin_2);// ºì 
		delay_ms(1000);   
		GPIO_SetBits(GPIOA,GPIO_Pin_2);   

		GPIO_ResetBits(GPIOA,GPIO_Pin_3);//  ÂÌ 
		delay_ms(1000);   
		GPIO_SetBits(GPIOA,GPIO_Pin_3);   
				
		GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);// ×Ï
		delay_ms(1000);     
		GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2);            
				 
		GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3);// ˦ 
		delay_ms(1000);   
		GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3);   
				
		GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);//  ³È
		delay_ms(1000);
		
		
		GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);
    }
}


 

 


菜鸟
2014-10-23 10:43:40     打赏
24楼
连注释都那么风骚!!嘿嘿

高工
2014-10-23 16:46:49     打赏
25楼
注释呢?

菜鸟
2014-10-24 08:52:50     打赏
26楼
Lily最风骚,不解释

菜鸟
2014-11-07 12:44:52     打赏
27楼

这是关于循环点亮LED&RGB代码的修改及精简
这样就不必写太多次重复的循环
不大懂位操作,所以用这个方法啦

【方法:将GPIO_Pin_x 等需要的管脚直接放进数组里

循环的时候,利用数组内下标的变化来进行调用,省去许多麻烦】

后面的的作业请给我多一点点的时间~
被教师资格证残害过后,真的伤不起啊!
我会抓紧时间好好学的~请不要让我进决赛!


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

#include "stm32f10x.h"   
#include "stm32_eval.h"   
GPIO_InitTypeDef GPIO_InitStructure;    //定义GPIO结构体

 
/*延时函数 微秒*/  
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);   
} 


void GPIO_INIT()   
{  
   	//使能GPIO时钟  PC 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //RCC_APB2Periph_GPIOC  开启GPIOX的时钟      ENABLE\DISABLE   打开or关闭 	
	  //结构体配置
    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;//引脚:使用使用PC^0-7   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //模式:Out_PP推挽输出,可做输出,输入   	
	 //GPIO   PC初始化 
    GPIO_Init(GPIOC, &GPIO_InitStructure);  
	
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//RCC_APB2Periph_GPIOA  开启GPIOX的时钟
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//引脚:使用使用PA^1-3   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //模式:Out_PP推挽输出,可做输出,输入 
    GPIO_Init(GPIOA, &GPIO_InitStructure);   	
} 

int main()  
{    
	  int i;
	  int c;
    int a[8]={GPIO_Pin_0,GPIO_Pin_1,GPIO_Pin_2,GPIO_Pin_3,GPIO_Pin_4,GPIO_Pin_5,GPIO_Pin_6,GPIO_Pin_7};	//将各个端口放进数组,以简化混循环
    int b[3]={GPIO_Pin_1,GPIO_Pin_2,GPIO_Pin_3};	                        //将各个端口放进数组,以简化循环
    GPIO_INIT();      
     
   //无限循环  
    while(1)
	{		
		
   //循环点亮D0-D7小灯		
		for(i=0;i<8;i++)
		{
    GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);  //输出高电平	  先关掉PC^0-7
		delay_ms(100);			
		 
		GPIO_ResetBits(GPIOC,a[i]);    //输出低电平    点亮LED
		delay_ms(200);
    GPIO_SetBits(GPIOC,a[i]);     //输出高电平     熄灭LED
		delay_ms(200);
		}	

		//循环点亮RGB
		for(c=0;c<3;c++)
		{
    GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);  //输出高电平	  先关掉PA^1-3
		delay_ms(100);	
			
		GPIO_ResetBits(GPIOA,b[c]);    //输出低电平    点亮LED
		delay_ms(300);
    GPIO_SetBits(GPIOA,b[c]);      //输出高电平     熄灭LED
		delay_ms(100);
		}		
			
  }
}  

 

 


菜鸟
2014-11-09 14:18:23     打赏
28楼

此代码实现按键s1按下,数码管数字+1

我使用switch函数,不过并不是把所有的数字一一列出来

而是通过使个位,十位的数字分别用Num函数输出

这样就避免了一个一个数字全部列出的麻烦

代码也比较简单易懂

值得注意的是

每打开一个数码管前要将数码管灯先关了,关了2次

不懂为什么,只关一次时的话

十位就会跳出奇怪的数字,搞了半天╮(╯_╰)╭

先上这个代码,稍修改一下再接着上


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

 

 

 

#include "stm32f10x.h"   
#include "stm32_eval.h"   
GPIO_InitTypeDef GPIO_InitStructure;    //定义GPIO结构体

/*延时函数 微秒*/  
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);   
} 

void GPIO_INIT()   
{  
   	//使能GPIO时钟  PB 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //RCC_APB2Periph_GPIOB  开启GPIOB的时钟      ENABLE\DISABLE   打开or关闭 	
	  //结构体配置
    GPIO_InitStructure.GPIO_Pin = 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_1|GPIO_Pin_15;//数码管使用PB^5-9  12-14   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //模式:Out_PP推挽输出,可做输出,输入   	
	 //GPIO   PB初始化 
    GPIO_Init(GPIOB, &GPIO_InitStructure);  	
	
	  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //RCC_APB2Periph_GPIOB  开启GPIOB的时钟      ENABLE\DISABLE   打开or关闭 	
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;//按键使用PC8-11  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;          //模式:Out_PP推挽输出,可做输出,输入 !!!  	
    GPIO_Init(GPIOC, &GPIO_InitStructure);	
} 

void Num(int z)
{
	  switch(z)//分别点亮对应数字的数码管
	{
		case 0 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;
		case 1 : GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);                                              break;
		case 2 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);            break;
		case 3 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);            break;
		case 4 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);                        break;
		case 5 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);            break;
		case 6 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;
		case 7 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);                                   break;
		case 8 : 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_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14); break;
  }
}

int main()  
{    
	 int g=0,s=0;            //i被按下的次数,g个位的数,s十位的数
    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);   
		delay_ms(50);	                          //关闭全部所用管脚	
	
    while(1)
	{		
		
		GPIO_SetBits(GPIOB,GPIO_Pin_1);         //打开个位数码管
		Num(g);                                //用switch函数分别点亮个位,十位	
		delay_ms(5);                          
		GPIO_ResetBits(GPIOB,GPIO_Pin_1);        //关闭个位		
		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);
			
		GPIO_SetBits(GPIOB,GPIO_Pin_15);	       //打开十位
		Num(s);  
		delay_ms(5);
		GPIO_ResetBits(GPIOB,GPIO_Pin_15);      //关掉十位数码管	
		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);
				
		      if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))   //判断按键是否被按下 
        {   
            delay_ms(100);            //延时去抖
            if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))   //判断按键是否被按下 假如端口PC8为低电平
            {  
							g++;                     //按键被按下,次数+1
              if(g==10)   
							{
						  	s++;
  							g=0;
              }
						}
				}		  
  }
}  		

 

 

 


菜鸟
2014-11-10 14:47:09     打赏
29楼

最终代码完成

可实现按键切换

数字从00-99

感觉代码还算比较简朴,不复杂挺好理解的


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

 

#include "stm32f10x.h"   
#include "stm32_eval.h"   
GPIO_InitTypeDef GPIO_InitStructure;    //定义GPIO结构体

/*延时函数 微秒*/  
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);   
} 

void GPIO_INIT()   
{  
   	//使能GPIO时钟  PB 
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //RCC_APB2Periph_GPIOB  开启GPIOB的时钟      ENABLE\DISABLE   打开or关闭 	
	  //结构体配置
    GPIO_InitStructure.GPIO_Pin = 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_1|GPIO_Pin_15;//数码管使用PB^5-9  12-14   
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //模式:Out_PP推挽输出,可做输出,输入   	
	 //GPIO   PB初始化 
    GPIO_Init(GPIOB, &GPIO_InitStructure);  	
	
	  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //RCC_APB2Periph_GPIOB  开启GPIOB的时钟      ENABLE\DISABLE   打开or关闭 	
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;//按键使用PC8-11  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //速度:配置晶振
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;          //模式
    GPIO_Init(GPIOC, &GPIO_InitStructure);	
} 

void Num(int z)
{
	  switch(z)//分别点亮对应数字的数码管
	{
		case 0 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;
		case 1 : GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);                                              break;
		case 2 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);            break;
		case 3 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);            break;
		case 4 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);                        break;
		case 5 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);            break;
		case 6 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;
		case 7 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);                                   break;
		case 8 : 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_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14); break;
  }
}

int main()  
{    
	  int i=2,g=0,s=0,c=0,n=5;            //i被按下的次数,n延时变量
		int v[2]={GPIO_Pin_8,GPIO_Pin_9};    //作管脚切换用
    int b[2]={0,1};                     
    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);   
		delay_ms(50);	                          //关闭全部所用管脚	
	
    while(1)
	{				
		GPIO_SetBits(GPIOB,GPIO_Pin_1);         //打开个位数码管
		Num(g);                                //用switch函数分别点亮个位,十位	
		delay_ms(n);                          
		GPIO_ResetBits(GPIOB,GPIO_Pin_1);        //关闭个位		
		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);
			
		GPIO_SetBits(GPIOB,GPIO_Pin_15);	       //打开十位
		Num(s);  
		delay_ms(n);
		GPIO_ResetBits(GPIOB,GPIO_Pin_15);      //关掉十位数码管	
		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);
	
	  //如果s3被按下,i根据按下次数的奇偶来切换0/1
		if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10))   //判断按键是s3否被按下 
	  {   
			delay_ms(100);            //延时去抖
			if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10))  //再次判断按键是s3否被按下  
			{ 
				 c++;
         i=c%2;          //判断次数奇偶
      }
	  }	
  
     //根据次数的奇偶来切换s1/s2	
         if(!GPIO_ReadInputDataBit(GPIOC,v[i])&&i==b[i])   //(哪个管脚,为1/0)
        {   
            delay_ms(100);            //延时去抖
            if(!GPIO_ReadInputDataBit(GPIOC,v[i])&&i==b[i])   //(哪个管脚,为1/0)
            {  
							  if(i==0)  {n=5;}             //延时为5
								if(i==1)  {n=50;}						//延时为50		
							g++;                     //按键被按下,各位+1
              if(g==10)   
							{
						  	s++;               //若个位为9,十位+1,个位置0
  							g=0;               
              }}}		  
			}
	}
 

 



高工
2014-11-12 11:21:34     打赏
30楼

快补上

快到碗里来


共71条 3/8 1 2 3 4 5 6 ›| 跳转至

回复

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