我的单片机花样走马灯课程设计 简单哦!
都是自己设计的
在附件中有程序仿真图和程序
不过其中的那个减速和加速功能还没有完善
希望有朋友们可以一起讨论!
程序如下
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit k1=P3^5;
- sbit k2=P3^6;
- sbit k3=P3^7;
- uchar code number1[]={0xf9,0xa4,0xb0};
- uchar code number2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff,
- 0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
- uchar code number3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,
- 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
- void delay(uchar del)
- {
- uint i,j;
- for(i=0;i<del;i++)
- for(j=0;j<1827;j++)
- ;
- }
- void main()
- {
- IT0=1;
- EX0=1;
- EA=1;
- }
- void into () interrupt 0
- {
- uint i,j;
- uchar a,b;
- EX0=1;
- if(k1==0)
- {
- while(1)
- {
- a=0xfe;
- P2=number1[0];
- for(i=0;i<8;i++)
- {
- if(k2==0||k3==0)
- goto kk;
- P1=a;
- a=_crol_(a,1);
- delay(10);
- }
- P1=0xff;
- for(i=0;i<8;i++)
- {
- if(k2==0||k3==0)
- goto kk;
- P0=a;
- delay(10);
- a=_crol_(a,1);
- }
- P0=0xff; //模式一
- a=0xbf;
- for(i=0;i<7;i++)
- {
- if(k2==0||k3==0)
- goto kk;
- P0=a;
- a=_cror_(a,1);
- delay(10);
- }
- P0=0xff;
- a=0x7f;
- for(i=0;i<7;i++)
- {
- if(k2==0||k3==0)
- goto kk;
- P1=a;
- delay(10);
- a=_cror_(a,1);
- }
- P1=0xff;
- P0=0x00;
- P1=0x00;
- delay(10);
- P0=0xff;
- P1=0xff;
- }
- }
- if(k2==0)
- {
- while(1)
- {
- a=0xfe;
- b=0x7f;
- P2=number1[1];
- for(i=0;i<7;i++)
- {
- if(k1==0||k3==0)
- goto kk;
- P1=a;
- P0=b;
- delay(10);
- a=_crol_(a,1);
- b=_cror_(b,1);
- } //模式二
- P1=0x7f;
- P0=0xfe;
- for(j=0;j<7;j++)
- {
- if(k1==0||k3==0)
- goto kk;
- P1=a;
- P0=b;
- delay(10);
- a=_cror_(a,1);
- b=_crol_(b,1);
- } //模式二
- P1=0xff;
- P0=0xff;
- }
- }
- if(k3==0)
- {
- while(1)
- {
- P2=number1[2];
- P1=0x00;
- P0=0x00;
- delay(10);
- for(i=0;i<16;i++)
- {
- if(k1==0||k2==0)
- goto kk;
- P1=number2[i];
- P0=number3[i];
- delay(10);
- }
- P1=0xff;
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
实训任务一 花样走马灯.zip
(75.01 KB, 下载次数: 14)
花样走马灯 - ISIS Professional 2017_4_12 18_49_24.zip
(12.62 MB, 下载次数: 16)
|