单片机期末考试编程题Word格式.docx
《单片机期末考试编程题Word格式.docx》由会员分享,可在线阅读,更多相关《单片机期末考试编程题Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
for(a=0;
a<
t;
a++)
for(b=0;
b<
120;
b++);
}
voidmain()
while
(1)
{
P2=~P2;
delay(1000);
//延时1s
}
}/*********************************************************
实验题目要求:
P23-P26口做输出口,接发光二极管,编写并调试跑马灯程序。
***********************************************************/
voiddelay(unsignedintt)//延时1ms左右
unsignedchari=0,m=0;
for(i=0;
i<
4;
i++)//向左移动
{
P2=~(0x08<
<
i);
delay(1000);
}
m=~P2;
i++)//向右移动
P2=~(m>
>
}
}/*********************************
设计一个二进制减1计数器,按一次键,减1,并用4个LED显示计数结果,减至0时,重新从15开始计数。
**********************************/
sbitkey1=P2^0;
sbitLED0=P2^6;
//单片机板子最右边的led灯
sbitLED1=P2^5;
//右边数第二个灯
sbitLED2=P2^4;
//右边数第三个灯
sbitLED3=P2^3;
//右边数第四个灯
charnumber=15;
unsignedcharnum[4];
voidkey()//通过按键对NUMBER的数值进行减计数
staticunsignedcharm=0;
if(key1==0)
m++;
if(m>
=30)
number--;
if(number<
0)
number=15;
m=0;
}
voidnumber_change()//将十进制转换为二进制
unsignedintn=0;
unsignedcharj=0;
n=number;
for(j=0;
j<
j++)
num[j]=n%2;
n=n/2;
}
voidshow()//通过LED将二进制显示出来
LED0=!
num[0];
LED1=!
num[1];
LED2=!
num[2];
LED3=!
num[3];
key();
number_change();
show();
}
}/*******************************************
用1个按键控制LED的显示,要求显示3种以上的不同模式。
2012年12月22日
********************************************/
sbitled0=P2^3;
sbitled1=P2^4;
sbitled2=P2^5;
sbitled3=P2^6;
sbitmode_key=P2^0;
charmode=0;
voiddelay(unsignedintt)//延时时间大约1ms
voidkey()//通过按键进行模式选择
staticunsignedcharm;
if(mode_key==0)
mode++;
if(mode>
=3)
mode=0;
voidmode_1()//模式一根据开发板,LED循环右移,时间间隔1s左右
unsignedchari=0,c=0;
for(i=0;
i++)
P2|=0xf8;
c=~(0x08<
P2&
=c;
voidmode_2()//模式二根据开发板,LED一闪一灭,时间间隔1s左右
led0=0;
led1=0;
led2=0;
led3=0;
delay(1000);
led0=1;
led1=1;
led2=1;
led3=1;
voidmode_3()//模式三,先循环右移,再循环左移,时间间隔1s左右
unsignedchari=0,n=0,c=0;
=~(0x08<
=~(0x40>
switch(mode)
case0:
mode_1();
break;
case1:
mode_2();
case2:
mode_3();
}/*******************************************
}/************************************
采用外部中断的方式实现用1个按键控制LED的显示,要求显示3种以上的不同模式。
*************************************/
sbitled1=P2^4;
sbitled2=P2^5;
sbitled3=P2^6;
unsignedcharmode=0;
l