⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本程序包是我一年 来开发AVR单片机用过的成熟子程序
💻 C
字号:
/***********************************************/
//编译环境  IAR 4.10A
//CPU:  Atmega16
/***********************************************/
#define MAIN_C

#include "includes.h"

#define KeyUp    0    //向下按键
#define KeyDown  1    //向上按键
unsigned char UpFlag;
unsigned char DownFlag;
int value = 1000;
unsigned char display[4];


void Key(void)
{
    if(!(PINB&(1<<KeyUp)))
    {
        while(!(PINB&(1<<KeyUp)));
        UpFlag = 1;
    }
    if(!(PINB&(1<<KeyDown)))
    {
        while(!(PINB&(1<<KeyDown)));
        DownFlag = 1;
    }
    if(UpFlag)
    {
        value = value+50;
        UpFlag = 0;
        if(value>2000)
        {
            value = 0;
        }
    }
    if(DownFlag)
    {
        value = value-50;
        DownFlag = 0;
        if(value<0)
        {
            value = 2000;
        }
    }

}

void IntToBcd(void)
{
    int temp;
    display[3] = value/1000;
    temp = value%1000;
    display[2] = temp/100;
    temp = temp%100;
    display[1] = temp/10;
    display[0] = temp%10;

}

void main( void )
{

    int i;
    DDRD  |= (1<<clk)|(1<<dat);    //设置为输出
    PORTB |= (1<<PB0)|(1<<PB1);
    while(1)
    {
        Key();
        IntToBcd();
        switch(i)
        {
          case  0:  write164(display[i] | 0x70);  break;
          case  1:  write164(display[i] | 0xB0);  break;
          case  2:  write164(display[i] | 0xD0);  break;
          case  3:  write164(display[i] | 0xE0);  break;
        }
       if(++i > 3) i = 0;
       delay_nms(1);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -