用单片机定时器延时的一段程序
找自己2013/07/17电磁炮 IP:浙江
新手写程序[s:214]
#include<reg52.h>
typedef unsigned char uint8;
typedef unsigned int  uint16;
sbit V1=P2^0; //第1个线圈光眼信号
sbit O1=P0^0; //第1个线圈控制信号
sbit O2=P0^1; //第2个线圈控制信号
sbit O3=P0^2; //第3个线圈控制信号
sbit O4=P0^3; //第4个线圈控制信号
sbit O5=P0^4; //第5个线圈控制信号
sbit O6=P0^5; //第6个线圈控制信号
sbit O7=P0^6; //第7个线圈控制信号
main()
{
uint8  a,b,c,d,e,f,g;
uint16 i,j,k,l,m,n,o,z;
P1=0xff; //P1口初始化
TMOD=0x01; //模式1
TH0=0xFF; //设置初值10us
TL0=0xF7;
TR0=1;  //打开定时器0
a=1; //打开第1个线圈循环开关
if(V1==0)
{
  while(a) //进入第1个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    i++;
   }
   if(i==10000) //这里填几就是延时几个10us
   {
   i=0;
   O1=0;
   a=0;break; //跳出第1个线圈程序
   }
  }
}
b=1;
if(O1==0)
{
  while(b) //进入第2个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    j++;
   }
   if(j==8000)
   {
   j=0;
   O2=0;
   b=0;break; //跳出第2个线圈程序
   }
  }
}
c=1;
if(O2==0)
{
  while(c) //进入第3个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    k++;
   }
   if(k==6000)
   {
   k=0;
   O3=0;
   c=0;break; //跳出第3个线圈程序
   }
  }
}
d=1;
if(O3==0)
{
  while(d) //进入第4个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    l++;
   }
   if(l==4000)
   {
   k=0;
   O4=0;
   d=0;break; //跳出第4个线圈程序
   }
  }
}
e=1;
if(O4==0)
{
  while(e) //进入第5个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    m++;
   }
   if(m==2000)
   {
   k=0;
   O5=0;
   e=0;break; //跳出第5个线圈程序
   }
  }
}
f=1;
if(O5==0)
{
  while(f) //进入第6个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    n++;
   }
   if(n==1000)
   {
   k=0;
   O6=0;
   f=0;break; //跳出第6个线圈程序
   }
  }
}
g=1;
if(O6==0)
{
  while(g) //进入第7个线圈程序
  {
   if(TF0==1)
   {
    TF0=0;
    TH0=0xFF;
    TL0=0xF7;
    o++;
   }
   if(o==500)
   {
   k=0;
   O7=0;
   g=0;break; //跳出第7个线圈程序
   }
  }
}
if(O7==0)
{
for(z=10000;z>0;z--);
  {
  P0=0xff;
  }
}
} 1111.jpg
来自:物理高能技术 / 电磁炮
9
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
世纪伯乐
11年7个月前 IP:未同步
549060
[s:274]初学者吗~~~

我还是比较推崇先从汇编51开始学,
单片机是要结合硬件学的噢~~~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
liccil
11年7个月前 IP:未同步
549062
12M晶振么?
貌似最后应该有个死循环?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
找自己作者
11年7个月前 IP:未同步
549067
回 1楼(世纪伯乐) 的帖子
看见汇编的看见头大 最怕死记硬背的东西了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
找自己作者
11年7个月前 IP:未同步
549068
回 2楼(liccil) 的帖子
11.0592的 这个不是很全的程序 主要的一段 还有控制电源什么辅助的没写上去
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
liy
11年7个月前 IP:未同步
549084
路过来学习一下。
-1
科创币
kokming999
2013-07-17
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
a109972947
11年7个月前 IP:未同步
549091
我对8051.8086,80286,80386•••等了解也不少,其实都差不多一样的建议用机器码汇编写,这样速度快控制的时间准确度高,对c语言速度相对次之,但c精简我更是提笔成章的爽快
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
liwanquan
11年7个月前 IP:未同步
549184
[s:274][s:274][s:274][s:274][s:274][s:274]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
世纪伯乐
11年7个月前 IP:未同步
549207
回 4楼(找自己) 的帖子
感觉没有硬件电路图,
看不出来是啥~~~

一般来说拿出个标准的工程需要:文字描述,流程图,硬件电路,可编程芯片的代码……
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

找自己
笔友
文章
23
回复
285
学术分
0
2011/06/19注册,6年1个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:邮箱
IP归属地:未同步
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}