3425|3

60

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

定时器流水灯程序 [复制链接]

#include
#define uint unsigned int
#define uchar unsigned char

void delay(uchar n)
{
  delay:TH0=(65536-50000)/256;
            TL0=(65536-50000)%256;                                                                                                                                                                                  
                  while(!TF0)
                TF0=0;
            n--;                  
                if(n)
                goto delay;
                TR0=0;
}
void main()
{
   uchar b,c,i,temp;
       TMOD=0X01;
        EA=1;
                TR0=1;
                ET0=1;
                TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
               
   loop:
       temp=0xfe;
           for(i=0;i<8;i++)
           {
                    b=temp>>(8-i);
                 c=temp<                  P0=b|c;
                 delay(20);
           }
                 temp=0x7f;
                  for(i=0;i<8;i++)
            {
                    b=temp<<(8-i);
                 c=temp>>i;
                 P0=b|c;
                 delay(20);
                }
           goto loop;


}
我的这个程序怎么起不到流水灯的作用呢, 有人说我这个缺少定时器函数。可是我看书上就这么写的啊。难道错了,希望大家帮帮忙,给我看看,或者给个相关的程序。要定时器控制流水灯左移右移,不单边移动。

最新回复

#include sbit Switch=P2^0; void main(void) {   bit direction;   long int i;   unsigned char a=0xfe,b,c;   P1=0xff;   Switch=1;   if(!Switch)   for(i=0;i>1;   c=a  详情 回复 发表于 2009-12-7 12:40
点赞 关注(1)

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
程序太长了,看着头疼
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的程序有点乱 给你个参考
#include

#define uchar unsigned char
#define uint  unsigned  int


unsigned char buf[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};       

uchar temp;
uchar tt;
void main()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;

while(1)
{
    P0=buf[tt];
}

}


void timer0()  interrupt  1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
   
tt++;
if(tt==8) tt=0;
   
}
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

4
 
#include
sbit Switch=P2^0;
void main(void)
{
  bit direction;
  long int i;
  unsigned char a=0xfe,b,c;
  P1=0xff;
  Switch=1;
  if(!Switch)
  for(i=0;i<100;i++)
  if(Switch) break;

while(1)
{
  P1=a;
  if(!direction)
{
  if(a==0xbf)
  direction=1;
  b=a<<1;
  c=a>>7;
  a=b|c;

}
else
{if(a==0xfd)
  direction=0;
  b=a>>1;
  c=a<<7;
  a=b|c;
}
for (i=0;i<=300000;i++);
}
}


这个试试。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
Vicor 有奖下载 | 在48V架构中使用高密度功率转换器构建更好的机器人
活动时间:即日起-4月28日
活动奖励:螺丝刀套装、充电套装、电风扇

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

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

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