2021-03-21

单片机—心形流水灯(设计及源码)

设计:
在这里插入图片描述
源码:

#include<reg52.h>

void delay1(unsigned int i){//延迟函数
unsigned int j;
unsigned char k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}
void main(){
              while(1)
              {//字节式控制。             
              P3 = 0xfe;                                          
                            delay1(1000);                                                        
                            P3 = 0xfd;                                          
                            delay1(1000);                                                             
                            P3 = 0xfb;
                            delay1(1000); 
                            P3 = 0xf7;
                            delay1(1000); 
                            P3 = 0xef;
                            delay1(1000); 
                            P3 = 0xdf;
                            delay1(1000); 
                            P3 = 0xbf;
                            delay1(1000); 
                            P3 = 0x7f;
                            delay1(1000);
							P3=0xff; 


                            P2 = 0xfe;                                          
                            delay1(1000);                                                        
                            P2 = 0xfd;                                          
                            delay1(1000);                                                             
                            P2 = 0xfb;
                            delay1(1000); 
                            P2 = 0xf7;
                            delay1(1000); 
                            P2 = 0xef;
                            delay1(1000); 
                            P2 = 0xdf;
                            delay1(1000); 
                            P2 = 0xbf;
                            delay1(1000); 
                            P2 = 0x7f;
                            delay1(1000); 
                           P2=0xff;
									 P0 = 0xfe;                                          
                            delay1(1000);                                                        
                            P0 = 0xfd;                                          
                            delay1(1000);                                                             
                            P0 = 0xfb;
                            delay1(1000); 
                            P0 = 0xf7;
                            delay1(1000); 
                            P0 = 0xef;
                            delay1(1000); 
                            P0= 0xdf;
                            delay1(1000);
							P0=0xff;
                             }
}

所遇到的技术问题:
1,怎么快速标号连接。
答:

  • Proteus中添加组件后双击引脚可以快速生成一个最近的端口。
    -按A调出设置界面
    在这里插入图片描述

-在字符串中写:net=H#,"H"可以换成自定义前缀,net为所点引脚的名字可以不用管。计数值为起始值,增量每点一次增加的数目。
-依次点击想要编号的引脚。(如果点多了,可以移除,重定尺寸)
-芯片引脚的标号与想连接的器件号码一样。
2,怎么源码控制流水灯。
想亮的灯置为0,不想的置为1。
3,控制某个灯的端口地址怎么表示。

大写的P1,P2即为芯片的引脚地址,通过0xf7(11110111)等16进制来控制想亮的灯为0,其余为1.

unsigned char table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
              while(1)
              {   
unsigned char m;
for(m=0;m<8;m++){
P3=table[m];
delay1(1000);}
P3=0xff;
for(m=0;m<8;m++){
P2=table[m];
delay1(1000);}
P2=0xff;
for(m=0;m<6;m++){
P0=table[m];
delay1(1000);}
P0=0xff;}

把上面的加入main函数也能实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值