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