4268|0

39

帖子

0

TA的资源

一粒金砂(初级)

51单片机,流星灯程序修改 [复制链接]

这是网上找的51单片机流星灯程序,软件模拟PWM,拖尾效果,是P0的IO口8路输出的,如果,我要改为16路输出,怎样改呢,求高手指点,谢谢~,原程序如下:

 


#include<reg52.h>     //head file
#define uchar unsigned char//for convenient
#define led P0      // led data port
bit flag=0;       //direction flag

uchar code lshift[3]={0x07,0x03,0x01};
uchar code shift[7]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe};
//imitate PWM data
uchar code sta0[100]={  0x0f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
                        0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
      0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,
      0xcf,0xcf,0xcf,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,
      0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef,0xef       
        };
 //functions statement
void delay(uchar ms); 
uchar exchg(uchar dat);
//main function
void main()    
{
  uchar i,j,k,x,sdata; 
  while(1) 
  {

  for(k=1;k<8;k++)
    for(i=0;i<22;i++)
   for(j=0;j<100;j++)
     {
      sdata=(sta0[j]>>k)|shift[k-1];
      if(flag==1)  led=exchg(sdata); 
   else led=sdata;    
  }

  for(x=1;x<4;x++)
    for(i=0;i<22;i++)
   for(j=0;j<100;j++)
     {
      sdata=( sta0[j]<<(4-x) )|lshift[x-1];
      if(flag==1)  led=exchg(sdata); 
   else led=sdata;
  }
  
 
 } 

}
void delay(uchar ms)
{
   uchar n;
  while(ms--)
  {
    for(n=125;n>0;n--);
  }
}
uchar exchg(uchar dat) //对字节的高位和低位进行互换!
{
   uchar temp;
   temp=
   ((dat&0x01)<<7)|
   ((dat&0x02)<<5)|
   ((dat&0x04)<<3)|
   ((dat&0x08)<<1)|
   ((dat&0x10)>>1)|
   ((dat&0x20)>>3)|
   ((dat&0x40)>>5)|
   ((dat&0x80)>>7);
return temp;
}

此帖出自51单片机论坛

回复
举报
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表