《单片机节日彩灯》.doc
文本预览下载声明
1、 课设目的
单片机课程设计是配合电子技术基础课程与实验教学的一个非常重要的教学环节。 它不但能巩固我 们已所学的单片机技术的理论知识, 而且能提高我们的电子电路的设计水平, 还能加强我们综合分析问 题和解决问题的能力,进一步培养我们的实验技能和动手能力,启发我们的创新意识几创新思维。
图4-1 程序流程图
4.2 系统调试
问题:在系统软件调试中,中断执行时不能返回程序
解决方法:在中断中灯的延时指令for(i=0;i200;i++) for(j=0;j200;j++);修改为for(i=0;i149;i++) for(j=0;j149;j++);后,单片机正常执行指令。
4.3 程序清单
#includereg52.h
#define uint unsigned int
#define uchar unsigned char
unsigned int i,j,y,n,m=0;
uint c,d,e;
uint p=0xff;
void delay()
{
for(i=0;i150;i++)
for(j=0;j500;j++);
}
void main()
{ uint a=0x7f;
uint b=0x7f;
uint x;
EA=1;EX0=1;IT0=1;
while(1)
//第一次 **********************************************************************
{for(x=0;x8;x++) //P0控制N的 第一个| 流水显示 7~0
{
P0=ax;
delay();
}
for(x=0;x7;x++) //P2控制N的 \ 流水显示 1~7
{
P2=bx;
delay();
}
for(x=0;x8;x++) //P1控制N的 第二个| 流水显示 7~0
{
P1=ax;
delay();
}
P2=0x00; //P2.0控制 1亮
delay();
//第二次 **********************************************************************
P0=0xff;
P2=0xff;
P1=0xff; //全灭
delay();delay();delay();
P0=0x0f; //P0.7~0.4 亮
delay();delay();delay();
P0=0x00; //P0.0~0.7 亮
delay();delay();delay();
P2=0x1f; //P2.7~2.5 亮
delay();delay();delay();
P2=0x01; //P2.7~2.1 亮
delay();delay();delay();
P1=0x0f; //P1.7~1.4 亮
delay();delay();delay();
P1=0x00; //P1.0~1.7 亮
delay();delay();delay();
P2=0x00; //P2 口控制全亮 目的控制P2.0
delay();
//第三次 **********************************************************************
P0=0xff;
P2=0xff;
P1=0xff; //全灭
delay();
P0=0x00; //P0 控制的 第一个| 全亮
delay();delay();delay();
P2=0x01; //P2 控制的 \ 全亮
delay();delay();delay();
P1=0x00; //P1 控制的 第二个| 全亮
delay();delay();delay();
P2=0x00; //P2 控制的 第三个1 亮
delay();delay();delay();
//第四次 **********************************************************************
P0=0xff;
P2=0xff;
P1=0xff; //全灭
delay();delay();delay();
for(x=0;x3;x++) //闪烁3次
{
P0=0x00;
P2=0x00
显示全部