单片机实训作业.docx
《单片机实训作业.docx》由会员分享,可在线阅读,更多相关《单片机实训作业.docx(57页珍藏版)》请在冰豆网上搜索。
单片机实训作业
《单片机应用技术实训》作业
组号:
第十组组长姓名:
组员姓名:
1、LED7,LED5,LED3,LED1亮
#include//包含头文件,该文件定义了特殊功能寄存器
voidmain()//主函数
{//花括号开头
P1=0xAA;//P1(P1要大写)口低4位LED亮
}
2、LED8,LED6,LED4,LED2亮
#include//包含头文件,该文件定义了特殊功能寄存器
voidmain()//主函数
{//花括号开头
P1=0x55;//P1(P1要大写)口低4位LED亮
}
3、LED8,LED7,LED5,LED2亮
#include//包含头文件,该文件定义了特殊功能寄存器
voidmain()//主函数
{//花括号开头
P1=0x2D;//P1(P1要大写)口低4位LED亮
}
4、LED8,LED7,LED6,LED5,LED4,LED3,LED2,LED1全亮
#include//包含头文件,该文件定义了特殊功能寄存器
voidmain()//主函数
{//花括号开头
P1=0x00;//P1(P1要大写)口低4位LED亮
}
跑马灯:
#include
#defineucharunsignedchar
#defineuint
sbitP10=P1^0;//用P10定义单片机的1号引脚(P1^0;字母要大写)
sbitP11=P1^1;//用P11定义单片机的2号引脚(P1^1;字母要大写)
sbitP12=P1^2;
sbitP13=P1^3;
sbitP14=P1^4;
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;//用P17定义单片机的8号引脚(P1^7;字母要大写)
voiddelay(unsignedintt)
{
uchari;
while(t--)
{for(i=0;i<120;i++);}
}
voidmain()
{
while
(1)//一直执行以下程序
{
P10=0;//LED0亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P10=1;//LED0灭
P11=0;//LED1亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P11=1;//LED1灭
P12=0;//LED2亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P12=1;//LED2灭
P13=0;//LED3亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P13=1;//LED3灭
P14=0;//LED4亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P14=1;//LED4灭
P15=0;//LED5亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P15=1;//LED5灭
P16=0;//LED6亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P16=1;//LED6灭
P17=0;//LED7亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P17=1;//LED7亮
}
}
1、LED1闪一下,到LED2闪,到LED3闪
#include
#defineucharunsignedchar
#defineuint
voiddelay(unsignedintt)
{
uchari;
while(t--)
{for(i=0;i<120;i++);}
}
voidmain()
{
while
(1)
{
P1=0xfe;//LED0亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P1=0XFD;//LED1亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P1=0XFB;//LED2亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
}
}
2、LED1,LED2,LED3,LED4同时闪再换成LED5,LED6,LED7,LED8同时闪
#include
#defineucharunsignedchar
#defineuint
sbitP10=P1^0;//用P10定义单片机的1号引脚(P1^0;字母要大写)
sbitP11=P1^1;//用P11定义单片机的2号引脚(P1^1;字母要大写)
sbitP12=P1^2;
sbitP13=P1^3;
sbitP14=P1^4;
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;//用P17定义单片机的8号引脚(P1^7;字母要大写)
voiddelay(unsignedintt)
{
uchari;
while(t--)
{for(i=0;i<120;i++);}
}
voidmain()
{
while
(1)//一直执行以下程序
{
P10=0;//LED0亮
P11=0;//LED1亮
P12=0;//LED2亮
P13=0;//LED3亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P10=1;//LED0灭
P11=1;//LED1灭
P12=1;//LED2灭
P13=1;//LED3灭
P14=0;//LED4亮
P15=0;//LED5亮
P16=0;//LED6亮
P17=0;//LED7亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P14=1;//LED4灭
P15=1;//LED5灭
P16=1;//LED6灭
P17=1;//LED7灭
}
}
3、LED1,LED3,LED5,LED7同时闪再换成LED2,LED4,LED6,LED8同时闪
#include
#defineucharunsignedchar
#defineuint
sbitP10=P1^0;//用P10定义单片机的1号引脚(P1^0;字母要大写)
sbitP11=P1^1;//用P11定义单片机的2号引脚(P1^1;字母要大写)
sbitP12=P1^2;
sbitP13=P1^3;
sbitP14=P1^4;
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;//用P17定义单片机的8号引脚(P1^7;字母要大写)
voiddelay(unsignedintt)
{
uchari;
while(t--)
{for(i=0;i<120;i++);}
}
voidmain()
{
while
(1)//一直执行以下程序
{
P10=0;//LED0亮
P12=0;//LED1亮
P14=0;//LED2亮
P16=0;//LED3亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P10=1;//LED0灭
P12=1;//LED1灭
P14=1;//LED2灭
P16=1;//LED3灭
P11=0;//LED4亮
P13=0;//LED5亮
P15=0;//LED6亮
P17=0;//LED7亮
delay(600);//调用延时函数,括号内的600要与uintx类型对应
P11=1;//LED4灭
P13=1;//LED5灭
P15=1;//LED6灭
P17=1;//LED7灭
}
}
4、LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8依次亮起来
#include
#defineucharunsignedchar
#defineuint
sbitP10=P1^0;//用P10定义单片机的1号引脚(P1^0;字母要大写)
sbitP11=P1^1;//用P11定义单片机的2号引脚(P1^1;字母要大写)
sbitP12=P1^2;
sbitP13=P1^3;
sbitP14=P1^4;
sbitP15=P1^5;
sbitP16=P1^6;
sbitP17=P1^7;//用P17定义单片机的8号引脚(P1^7;字母要大写)
voiddelay(unsignedintt)
{
uchari;
while(t--)
{for(i=0;i<120;i++);}
}
voidmain()
{
while
(1)//一直执行以下程序
{
P10=0;//LED0亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P11=0;//LED1亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P12=0;//LED2亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P13=0;//LED3亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P14=0;//LED4亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P15=0;//LED5亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P16=0;//LED6亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P17=0;//LED7亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
P10=1;//LED0亮
P11=1;//LED1亮
P12=1;//LED2亮
P13=1;//LED3亮
P14=1;//LED4亮
P15=1;//LED5亮
P16=1;//LED6亮
P17=1;//LED7亮
delay(300);//调用延时函数,括号内的600要与uintx类型对应
}
}
5、用if语句实现,当按键P3.2按下(P3_2==0)时LED1到LED8循环点亮,未按下时LED1到LED8全亮全灭闪烁。
#include//包含头文件
#defineucharunsignedchar//定义用uchar代替unsignedchar
#defineuintunsignedint//定义用uint代替unsignedint
voidDelayMS(uintx)//延时程序
{
uchari;
while(x--)//决定延时时间参数
{for(i=0;i<120;i++);}
}
main()//主函数
{
if(P3_2==0)//P3.2鍵被按下时执行时执行下面大括号的内容
{
P1_0=0;//LED0亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_0=1;
P1_1=0;//LED1亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=1;
P1_2=0;//LED2亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=1;
P1_3=0;//LED3亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=1;
P1_4=0;//LED5亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=1;
P1_5=0;//LED6亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=1;
P1_6=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_6=1;
P1_7=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
}
//P3.2鍵未被按下时执行时执行下面大括号的内容
P1=0X00;
DelayMS(600);
P1=0XFF;
DelayMS(600);
}
6、当P3.4按下时,LED1、LED3、LED5、LED7闪烁,P3.4未按下时,LED1~LED8依次亮起来,再从LED8~LED1依次灭。
#include//包含头文件
#defineucharunsignedchar//定义用uchar代替unsignedchar
#defineuintunsignedint//定义用uint代替unsignedint
voidDelayMS(uintx)//延时程序
{
uchari;
while(x--)//决定延时时间参数
{for(i=0;i<120;i++);}
}
main()//主函数
{
if(P3_4==0)//P3.4鍵被按下时执行时执行下面大括号的内容
{
P1_0=0;//LED0亮
P1_2=0;//LED2亮
P1_4=0;//LED5亮
P1_6=0;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_0=1;
P1_2=1;
P1_4=1;
P1_6=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
}
//P3.4鍵未被按下时执行时执行下面大括号的内容
P1_0=0;//LED0亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=0;//LED1亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=0;//LED2亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=0;//LED3亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=0;//LED5亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=0;//LED6亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_6=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应延时
P1_6=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_0=1;
DelayMS(600);
}
7、当P3.3按下时,LED1~LED8依次亮起来,再从LED8~LED1依次灭,共3次。
P3.3未按下时LED1、LED3、LED5、LED7闪烁。
#include//包含头文件
#defineucharunsignedchar//定义用uchar代替unsignedchar
#defineuintunsignedint//定义用uint代替unsignedint
ucharb;
voidDelayMS(uintx)//延时程序
{
uchari;
while(x--)//决定延时时间参数
{for(i=0;i<120;i++);}
}
main()//主函数
{
if(P3_4==0)//P3.4鍵被按下时执行时执行下面大括号的内容
for(b=0;b<3;b++)//LED1到LED8循环点亮3个循环
{
P1_0=0;//LED0亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=0;//LED1亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=0;//LED2亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=0;//LED3亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=0;//LED5亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=0;//LED6亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_6=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应延时
P1_6=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_0=1;
DelayMS(600);
}
//P3.4鍵未被按下时执行时执行下面大括号的内容
P1_0=0;//LED0亮
P1_2=0;//LED2亮
P1_4=0;//LED5亮
P1_6=0;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1=0xFF;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
}
8、用while语句实现,当按键P3.2按下(P3_2==0)时LED1到LED8循环点亮3次,未按下时LED1到LED8全亮全灭闪烁。
#include//包含头文件
#defineucharunsignedchar//定义用uchar代替unsignedchar
#defineuintunsignedint//定义用uint代替unsignedint
ucharb;
voidDelayMS(uintx)//延时程序
{
uchari;
while(x--)//决定延时时间参数
{for(i=0;i<120;i++);}
}
main()//主函数
{
b=0;
if(P3_2==0)//P3.2鍵被按下时执行时执行下面大括号的内容
{
while(b<3)
{
P1_0=0;//LED0亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_0=1;
P1_1=0;//LED1亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_1=1;
P1_2=0;//LED2亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_2=1;
P1_3=0;//LED3亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_3=1;
P1_4=0;//LED5亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_4=1;
P1_5=0;//LED6亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_5=1;
P1_6=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_6=1;
P1_7=0;//LED7亮
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
P1_7=1;
DelayMS(600);//调用延时函数,括号内的600要与uintx类型对应
b++;
}
}
//P3.2鍵未被按下时执行时执行下面大括号的内容
P1=0X00;
DelayMS(600);
P1=0XFF;
DelayMS(600);
}
9、用do……while循环语句实现当按键P3.2按下(P3_2==0)时LED1到LED8循环点8次亮,未按下时LED1到LED8全亮全灭闪烁。
#include//包含头文件
#defineucharunsignedchar//定义用uchar代替unsi