一个单片机最小系统 然后12个上拉电阻470欧和12个LED灯 接到单片机P0口跟P2口 初次学习单片机自己焊接了12个灯 和电阻 然后直接接到开发板上面 程序是自己写的 由于新手程序肯定是有很多漏洞跟不足 中间我嫌用16进制麻烦就直接定义了IO口直接0和1控制了 希望大家多多鼓励不喷哈 我会更加努力学习 然后自己做一些实物的东西调试来提高自己视频链接:
电路原理图如下:
圆圈灯图:
完整部分下载:
程序文件和制作部分.zip
(624.68 KB, 下载次数: 7)
单片机程序部分:
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned int
- uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//LED从低位往高位移
- uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED从高位往低位移
- uchar code table2[]={0xef,0xdf,0xbf,0x7f};//P2口 LED2.4--2.7口
- uchar code table3[]={0x7f,0xbf,0xdf,0xef};//P2口 LED2.7--2.4口
- uchar temp,i,aa,bb,cc;
- sbit D0=P0^0;
- sbit D1=P0^1;
- sbit D2=P0^2;
- sbit D3=P0^3;
- sbit D4=P0^4;
- sbit D5=P0^5;
- sbit D6=P0^6;
- sbit D7=P0^7;
- sbit D8=P2^4;
- sbit D9=P2^5;
- sbit D10=P2^6;
- sbit D11=P2^7;
- void delay (uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=100;y>0;y--);
- }
- void disp()
- {
- {D0=0;delay(100);}{D1=0;delay(100);}{D2=0;delay(100);}{D3=0;delay(100);}
- {D4=0;delay(100);}{D5=0;delay(100);}{D6=0;delay(100);}{D7=0;delay(100);}
- {D8=0;delay(100);}{D9=0;delay(100);}{D10=0;delay(100);}{D11=0;delay(100);}
- {D0=1;delay(100);}{D1=1;delay(100);}{D2=1;delay(100);}{D3=1;delay(100);}
- {D4=1;delay(100);}{D5=1;delay(100);}{D6=1;delay(100);}{D7=1;delay(100);}
- {D8=1;delay(100);}{D9=1;delay(100);}{D10=1;delay(100);}{D11=1;delay(100);}
- {D0=0;delay(50);}{D1=0;delay(50);}{D2=0;delay(50);}{D3=0;delay(50);}
- {D4=0;delay(50);}{D5=0;delay(50);}{D6=0;delay(50);}{D7=0;delay(50);}
- {D8=0;delay(50);}{D9=0;delay(50);}{D10=0;delay(50);}{D11=0;delay(50);}
- {D0=1;delay(50);}{D1=1;delay(50);}{D2=1;delay(50);}{D3=1;delay(50);}
- {D4=1;delay(50);}{D5=1;delay(50);}{D6=1;delay(50);}{D7=1;delay(50);}
- {D8=1;delay(50);}{D9=1;delay(50);}{D10=1;delay(50);}{D11=1;delay(50);}
- {D0=0;delay(25);}{D1=0;delay(25);}{D2=0;delay(25);}{D3=0;delay(25);}
- {D4=0;delay(25);}{D5=0;delay(25);}{D6=0;delay(25);}{D7=0;delay(25);}
- {D8=0;delay(10);}{D9=0;delay(25);}{D10=0;delay(25);}{D11=0;delay(25);}
- {D0=1;delay(25);}{D1=1;delay(25);}{D2=1;delay(25);}{D3=1;delay(25);}
- {D4=1;delay(25);}{D5=1;delay(25);}{D6=1;delay(25);}{D7=1;delay(25);}
- {D8=1;delay(25);}{D9=1;delay(25);}{D10=1;delay(25);}{D11=1;delay(25);}
- P0=0x00; P2=0x0f;
- delay(5000);
- //P0=0xff; P2=0xff;
- //delay(3000);
- for(i=0;i<10;i++)
- {
- P0=0x00; P2=0x0f; //打开P0口和P2.4到2.7口
- delay(300);
- P0=0xff; P2=0xff; //关掉P0口和P口
- delay(300);
- }
- }
- void disp0()
- {
- for(aa=0;aa<5;aa++)
- {
- for(i=0;i<8;i++)
- {
- P0=table0[i];
- delay(200);
- }
- P0=0xff;
- for(i=0;i<4;i++)
- {
- P2=table2[i];
- delay(200);
- }
- P2=0xff;
- }
- }
- void disp1()
- {
- for(bb=0;bb<5;bb++)
- {
- for(i=0;i<4;i++)
- {
- P2=table3[i];
- delay(200);
- }
- P2=0xff;
- for(i=0;i<8;i++)
- {
- P0=table1[i];
- delay(200);
- }
- P0=0xff;
- }
- }
- void disp2()
- {
- for(cc=0;cc<10;cc++)
- {
- P2=0xff;
- for(temp=0;temp<8;temp++)
- {
- P0=table0[temp];
- delay(25);
- }
- P0=0xff;
- for(temp=0;temp<4;temp++)
- {
- P2=table2[temp];
- delay(25);
- }
- for(temp=0;temp<4;temp++)
- {
- P2=table3[temp];
- delay(25);
- }
- P2=0xff;
- for(temp=0;temp<8;temp++)
- {
- P0=table1[temp];
- delay(25);
- }
- P0=0xff;
- }
- P2=0xff;P0=0xff;
- delay(3000);
- }
- void disp3()
- {
- for(i=0;i<1;i++)
- {
- D0=0;D6=0;
- delay(200);
- D0=1;D6=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D1=0;D7=0;
- delay(200);
- D1=1;D7=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D2=0;D8=0;
- delay(200);
- D2=1;D8=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D3=0;D9=0;
- delay(200);
- D3=1;D9=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D4=0;D10=0;
- delay(200);
- D4=1;D10=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D5=0;D11=0;
- delay(200);
- D5=1;D11=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D0=0;D1=0;
- delay(100);
- D0=1;D1=1;
- delay(200);
- }
- for(i=0;i<1;i++)
- {
- D2=0;D3=0;
- delay(100);
- D2=1;D3=1;
- delay(200);
- }
- for(i=0;i<1;i++)
- {
- D4=0;D5=0;
- delay(100);
- D4=1;D5=1;
- delay(200);
- }
- for(i=0;i<1;i++)
- {
- D6=0;D7=0;
- delay(100);
- D6=1;D7=1;
- delay(200);
- }
- for(i=0;i<1;i++)
- {
- D8=0;D9=0;
- delay(100);
- D8=1;D9=1;
- delay(200);
- }
- for(i=0;i<1;i++)
- {
- D10=0;D11=0;
- delay(100);
- D10=1;D11=1;
- delay(200);
- }
- }
- void disp4()
- {
- for(i=0;i<1;i++)
- {
- D0=0;D6=0;D1=0;D7=0;
- delay(200);
- D0=1;D6=1;D1=1;D7=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D2=0;D8=0;D3=0;D9=0;
- delay(200);
- D2=1;D8=1;D3=1;D9=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D4=0;D10=0;D5=0;D11=0;
- delay(200);
- D4=1;D10=1;D5=1;D11=1;
- delay(100);
- }
- }
- void disp5()
- {
- //P0=~P0;P2=~P2;
- for(i=0;i<1;i++)
- {
- D0=0;
- delay(200);
- D0=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D1=0;D11=0;
- delay(200);
- D1=1;D11=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D2=0;D10=0;
- delay(200);
- D2=1;D10=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D3=0;D9=0;
- delay(200);
- D3=1;D9=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D4=0;D8=0;
- delay(200);
- D4=1;D8=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D5=0;D7=0;
- delay(200);
- D5=1;D7=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D6=0;
- delay(200);
- D6=1;
- //delay(100);
- }
- }
- void disp6()
- {
- // P0=~P0;P2=~P2;
- for(i=0;i<1;i++)
- {
- D6=0;
- delay(200);
- D6=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D5=0;D7=0;
- delay(200);
- D5=1;D7=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D4=0;D8=0;
- delay(200);
- D4=1;D8=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D3=0;D9=0;
- delay(200);
- D3=1;D9=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D2=0;D10=0;
- delay(200);
- D2=1;D10=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D1=0;D11=0;
- delay(200);
- D1=1;D11=1;
- delay(100);
- }
- for(i=0;i<1;i++)
- {
- D0=0;
- delay(200);
- D0=1;
- // delay(100);
- }
- }
- void disp7()
- {
- D3=0;D9=0;
- delay(500);
- D2=0;D10=0;D4=0;D8=0;
- delay(500);
- D1=0;D5=0;D7=0;D11=0;
- delay(500);
- D0=0;D6=0;
- delay(500);
- P0=0xff; P2=0xff;
- delay(300);
- D1=0;D2=0;D3=0;D4=0;D5=0;
- delay(500);
- D7=0;D8=0;D9=0;D10=0;D11=0;
- delay(500);
- D0=0;D6=0;
- delay(500);
- P0=0xff; P2=0xff;
- delay(300);
- }
- void main()
- {
- while(1)
- {
- disp();//流水然后熄灭三次 亮灯5秒 闪烁10次
- disp0();//正向从D0开始流水灯5次
- disp1();//反向从D11开始流水灯5次
- disp2();//正反向从D0开始流水灯10次
- disp3();//D0和D6 2个灯同时开始正方向开始流水
- disp4();//D0,D1和D6,D7同时开始正方向开始流水
- disp5();//D0亮灯后 2个灯一起横着向下流水
- disp6();//D6亮灯后 2个灯一起横着向上流水
- disp7();//D3,D9中间部位然后分4个灯一组向外扩散
- }
- }
复制代码
|