测试程序二 独立按键Key

2017-04-23  本文已影响24人  Murrey_Xiao

该"测试程序"系列的编写是为了检测学校实验室板子上的各个部分是否正常工作 同时复习之前实验的知识要点 由于代码上附带多数注释 故此文只放代码 不再多做注解

/*
  程序编写者:Murrey_Xiao
  编写日期:2017-04-23
  功能介绍:
  该程序为实验室Mega16板上SW1和流水灯的测试程序
  当SW按下时,流水灯从0-7跑动
  PD3   检测按键
  PC0-7 控制流水灯亮灭
  注意:
  烧录程序时,要检查板上J9跳线帽是否接在流水灯上
  并且需要打开JTAGEN
*/
#include <iom16v.h>
#include <macros.h>

#define LED PORTC

//按键、流水灯端口初始化
void port_init(void)
{
    //PD3
    DDRD &= ~(1<<3);          //按键SW8配置为输入模式
    PORTD |= (1<<3);          //按键SW8配置上拉电阻
    
    //PC0-7
    DDRC = 0xff;              //跑马灯端口配置为输出模式
    PORTC = 0xff;            //跑马灯端口初始化为1(给0亮)
}
//跑马灯实现
void runningLED()
{
     unsigned char i;
     unsigned int j;
     for(i=0;i<8;i++)
     {
         LED &= ~(1<<i);
         j=10000;
         while(j--) ;
         LED = 0xff;
     }
}
int main()
{
    unsigned char i,j;
    port_init();
    while(1)
    {
        if((PIND&(1<<3))==0)  //按键被按下 检测到低电平
        {
            j=20;
            while(j--) ;      //延时避过抖动信号
            if((PIND&(1<<3))==0)
            {
                runningLED();
            }
        }
    }
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读