|
KEIL5做的,當(dāng)數(shù)碼管數(shù)值高于1時(shí),led燈會(huì)亮,回到0時(shí)燈滅。proteus仿真。
單片機(jī)源程序如下:
- #include "main.h"
- uint16_t table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
- void key_init()
- {
- GPIO_InitTypeDef gpio_init;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
- //將PA設(shè)置為推挽輸出
- gpio_init.GPIO_Mode=GPIO_Mode_IPU;
- gpio_init.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
- GPIO_Init(GPIOB,&gpio_init);
- }
- void seg7_init()
- {
- GPIO_InitTypeDef gpio_init;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
- //將PA設(shè)置為推挽輸出
- gpio_init.GPIO_Mode=GPIO_Mode_Out_PP;
- gpio_init.GPIO_Pin=GPIO_Pin_All;
- gpio_init.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_Init(GPIOA,&gpio_init);
- }
- void LED_Init()
- {
- GPIO_InitTypeDef gpio_init;//定義一個(gè)變量
-
- //第一步: 使能LED端口-GPIOA時(shí)鐘
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
-
- //第二步:配置端口的工作模式并初始化
- gpio_init.GPIO_Mode=GPIO_Mode_Out_PP;
- gpio_init.GPIO_Pin=GPIO_Pin_All;
- gpio_init.GPIO_Speed=GPIO_Speed_50MHz; //速度:50M
- GPIO_Init(GPIOC,&gpio_init); //初始化GPIO
- //第三步:配置端口默認(rèn)電平
- }
- uint8_t button0()
- {
- return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_0));
- }
- uint8_t button1()
- {
- return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_1));
- }
- //uint8_t button3()
- //{
- // return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_3));
- //}
- //uint8_t button5()
- //{
- // return(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5));
- //}
- /*****************************************
- main函數(shù)
- *****************************************/
- int main(void){
- uint8_t i,j,k=1;
- uint16_t temp;
- LED_Init();
- key_init();
- seg7_init();
- GPIO_Write(GPIOA,table[j-1]);
- while(1){
-
- if(button0())
- {
- delay_ms(10);
- if(button0())
- {
- while(button0());
- j++;
- if(j>16)
- j=1;
- GPIO_Write(GPIOA,table[j-1]);
- }
- }
- if(j>1&k==0)
- {
- delay_ms(10);
- delay_ms(10);
- GPIO_ResetBits(GPIOC,GPIO_Pin_6);
- delay_ms(10);
- GPIO_ResetBits(GPIOC,GPIO_Pin_7);
- delay_ms(10);
- k++;
- }
- if(j==1&k==1)
- {
- delay_ms(10);
- GPIO_SetBits(GPIOC,GPIO_Pin_6);
- delay_ms(10);
- GPIO_SetBits(GPIOC,GPIO_Pin_7);
- k=0;
-
- }
-
- if(button1())
- {
- delay_ms(10);
- if(button1())
- {
- while(button1());
- j--;
- if(j==0)
- j=16;
- GPIO_Write(GPIOA,table[j-1]);
- }
- }
-
- }
- //return 0;
- }
復(fù)制代碼
所有資料51hei提供下載:
新建文件夾 (5).7z
(1.01 MB, 下載次數(shù): 49)
2021-5-2 02:18 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|