论坛风格切换切换到宽版
  • 7067阅读
  • 9回复

发个c语言写的s51的自动键程序 [复制链接]

上一主题 下一主题
离线bd9cr
 
发帖
1202
只看楼主 倒序阅读 0楼 发表于: 2007-10-07
p10 点
p11划
p12速度减少
p13速度加
p14开关蜂鸣器
带点划记忆,点划自动插入
已经调试好了可以正常工作。
#include<at89x51.h>
bit d=1,di1=0,da1=0;//d蜂鸣器开关;di1点的标志位为实现点划记忆,da1达标志位
unsigned int v,a=140;
void da(void)//发达子程序
  {
     tr0=1;//开定时器
     if(d==1)p2_3=1;//判断要不要开蜂鸣器
  p2_1=1; //led点亮
     while(v!=3*a);//等待达的时间到
     p2_3=0;关蜂鸣器
  p2_1=0;
     while(v!=4*a);等待间隔时间到
     tr0=0;关定时器
     v=0;时间初值清零
     da1=0;达标志位清零      
     }
void di(void)//发嘀子程序
  {
     tr0=1;
     if(d==1)p2_3=1;
  p2_1=1;
     while(v!=a);
     p2_3=0;
  p2_1=0;
     while(v!=2*a);
     tr0=0;
     v=0;
     di1=0;      
     }
void time0(void)interrupt 1//定时器0中断
  {
     v++;记时
     if(p1_0==0){di1=1;}判断有没有按建置标志位      
     if(p1_1==0){da1=1;}      
     }

void main(void)
{
p2=0x00;
tmod=0x02;
th0=0x06;
tl0=0x06;
ea=1;
et0=1;
while(1)
  {
      if(p1_2==0)//减速
          {
      a=a+20;
              if(a!=280){di();di();di();da();}
              if(a==280){a=260;da();}
              if(a==140){da();da();da();}我习惯的速度提示大大大
                 }
        if(p1_3==0)//加速
          {
      a=a-20;
              if(a!=40){di();di();di();da();}
              if(a==40){a=60;da();}
              if(a==140){da();da();da();}
                 }
     
      while(p1_0==0||di1==1)//sed di
          {
            di();
                  if(da1==1)break;
            }
        while(p1_1==0||da1==1)//sed da
          {
            da();
                  if(di1==1)break;
          }
      if(p1_4==0){d=~d;di();di();di();da();}//关蜂鸣器
        }
}
离线bd9cr
发帖
1202
只看该作者 1楼 发表于: 2007-10-07
电路图
hex
附件: zidongjian.hex.doc (0 K) 下载次数:254
离线bd4vc
发帖
172
只看该作者 2楼 发表于: 2007-10-07
不错!顶一下!
离线火腿蛋
发帖
21282
只看该作者 3楼 发表于: 2007-10-08
好玩好玩好玩
离线BG1JLG
发帖
62
只看该作者 4楼 发表于: 2007-10-20
挺好玩的!记号。
离线lwt
发帖
837
只看该作者 5楼 发表于: 2007-10-31
da da de ding yi xia.
离线shtsunwu
发帖
1200
只看该作者 6楼 发表于: 2014-06-01
这个不错,下载学习一下,至少知道这滴滴答啊 是怎么发出来的,一次为基础不断的去完善,基础之基础!
呼号BG2CRP
黑龙江省五常市
TG-UV2   X108G   弯石接收   x5105  xpa125  ft891使用中
离线aqqw
发帖
1245
只看该作者 7楼 发表于: 2014-06-05
这个不错,下载学习一下
--------------------
喜欢无线电
喜欢DIY!!
地址:桂林市临桂西城工业区福达曲轴公司
邮编:541100
BG7RMU[/COLOR][/SIZE]
离线bd4igh
发帖
4250
只看该作者 8楼 发表于: 2015-08-14
不错,“骗”子太大

[ 此帖被bd4igh在2015-08-14 20:57重新编辑 ]
王安林
山东.日照
曾用呼号BG6AG
安徽境内首个业余台
QQ:317311229
手机:13376330683
Email  :wal 696@163.com.
离线bd4wbw
发帖
14
只看该作者 9楼 发表于: 2021-09-06
程序稍改一下用15F104做会小很多,且不要晶体.