用心思考

个性签名:shop33392572.taobao.com

    1. 不知道怎么接线:Laugh:
    2. 不知道怎么接线:titter:
    3. #include   //器件配置文件 #include #define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int  //宏定义无符号整型 #define  RX  P1_5 #define  TX  P1_7 unsigned int  time=0; unsigned int  timer=0; unsigned int  timee=0; unsigned char posit=0; unsigned long S=0; bit      flag =0; unsigned char const discode[] ={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xff/*-*/}; unsigned char const positon[3]={ 0xdf,0xef,0xf7}; unsigned char disbuff[4]    ={ 0,0,0,0,}; /********************************************************/     void Display(void)     //扫描数码管 {   if(posit==0)   {P0=(discode[disbuff[posit]])&0x7f;}   else   {P0=discode[disbuff[posit]];}    P3=positon[posit];    if(++posit>=3)    posit=0; } /********************************************************************                             延时函数 *********************************************************************/ void delay()//延时程序 { uchar m,n,s; for(m=20;m>0;m--) for(n=200;n>0;n--) for(s=248;s>0;s--); } /********************************************************/     void Conut(void) {   time=TH0*256+TL0;   TH0=0;   TL0=0;   S=(time*1.7)/100;     //算出来是CM   if((S>=3000)||flag==1) //超出测量范围显示“-”  l   {      flag=0;    disbuff[0]=10;    //“-”    disbuff[1]=10;    //“-”    disbuff[2]=10;    //“-?    }   else   {    disbuff[0]=S%1000/100;    disbuff[1]=S%1000%100/10;    disbuff[2]=S%1000%10 %10;    } } } /********************************************************/      void zd0() interrupt 1    //T0中断用来计数器溢出,超过测距范围   {     flag=1;        //中断溢出标志   } /********************************************************/    void  zd3()  interrupt 3    //T1中断用来扫描数码管和计800MS启动模块   {   TH1=0xf8;   TL1=0x30;   Display();   timer++;   if(timer>=400)   {    timer=0;    TX=1;                   //800MS  启动一次模块    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    _nop_();    TX=0;   }   } /*********************************************************/ void  main(  void  )   {      TMOD=0x11;     //设T0为方式1,GATE=1; TH0=0; TL0=0;          TH1=0xf8;     //2MS定时 TL1=0x30; ET0=1;             //允许T0中断 ET1=1;      //允许T1中断 TR1=1;      //开启定时器 EA=1;      //开启总中断 while(1) { {   while(!RX);  //当RX为零时等待   TR0=1;       //开启计数   while(RX);   //当RX为1计数并等待   TR0=0;    //关闭计数      Conut();   //计算   }   }
    4. 谁有18B20和51的正负温度控制程序 4/3111 51单片机 2012-10-22
      呵呵,
    5. 谁有18B20和51的正负温度控制程序 4/3111 51单片机 2012-10-20
      谁有18B20和51的正负温度控制程序。 温度设定在-30到+30之间, 三个按键: 设置键: 加一减, 加一减 采用C语言, 芯片:51. 感温:18B20。 可以发到我的信箱里:1239300456@qq.com 不胜感谢!
    6. 电冰箱(制冷器)的设计 1/2341 51单片机 2012-10-16
      :puzzle:
    7. 迷迷糊糊写了一个程序,有问题? 2/2243 信息发布 2012-10-06
      搞定了。还是早晨的空气好呀
    8. 迷迷糊糊写了一个程序,有问题? 2/2243 信息发布 2012-10-05
      :victory: [ 本帖最后由 用心思考 于 2012-10-6 07:50 编辑 ]
    9. //接线:模块TRIG接 P0.2  ECH0 接P0.1 //数码管:共阳数码管P1接数据口,P2.5 P2.4 P2.3接选通数码管
    10. #include                 //器件配置文件                          #include                          #define  RX  P0_1                          #define  TX  P0_2                          unsigned int  time=0;                          unsigned int  timer=0;                          unsigned char posit=0;                          unsigned long S=0;                          bit      flag =0;                          unsigned char const discode[] ={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e/*-*/};                          unsigned char const positon[3]={ 0x90,0x88,0x83};                          unsigned char disbuff[4]           ={ 0,0,0,0,}; /********************************************************/     void Display(void)                                 //扫描数码管         {          if(posit==0)          {P1=(discode[disbuff[posit]])&0x7f;}          else          {P1=discode[disbuff[posit]];}           P2=positon[posit];           if(++posit>=3)           posit=0;         } /********************************************************/     void Conut(void)         {          time=TH0*256+TL0;          TH0=0;          TL0=0;                  S=(time*1.7)/100;     //算出来是CM          if((S>=700)||flag==1) //超出测量范围显示          {                    flag=0;           disbuff[0]=10;           //“-”           disbuff[1]=10;           //“-”           disbuff[2]=10;           //“-”          }          else          {           disbuff[0]=S%1000/100;           disbuff[1]=S%1000%100/10;           disbuff[2]=S%1000%10 %10;          }         } /********************************************************/      void zd0() interrupt 1                  //T0中断用来计数器溢出,超过测距范围   {     flag=1;                                                         //中断溢出标志   } /********************************************************/    void  zd3()  interrupt 3                  //T1中断用来扫描数码管和计800MS启动模块   {          TH1=0xf8;          TL1=0x30;          Display();          timer++;          if(timer>=400)          {           timer=0;           TX=1;                                        //800MS  启动一次模块           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           _nop_();           TX=0;          }   } /*********************************************************/         void  main(  void  )   {       TMOD=0x11;                   //设T0为方式1,GATE=1;         TH0=0;         TL0=0;                  TH1=0xf8;                   //2MS定时         TL1=0x30;         ET0=1;             //允许T0中断         ET1=1;                           //允许T1中断         TR1=1;                           //开启定时器         EA=1;                           //开启总中断         while(1)         {          while(!RX);                //当RX为零时等待          TR0=1;                            //开启计数          while(RX);                        //当RX为1计数并等待          TR0=0;                                //关闭计数      Conut();                        //计算         }   }
    11. 15F104E太坑人呀, 78/16863 51单片机 2012-09-14
      #include          //库文件 #define uchar unsigned char//宏定义无符号字符型 #define uint unsigned int  //宏定义无符号整型 /********************************************************************                             初始定义 *********************************************************************/ uint sec; //定义计数值,每过1/10 秒,sec 加一 uchar keycnt=0;//按下次数值 uint tcnt; //键值判断 /********************************************************************                             I/O定义 *********************************************************************/ sbit v12 = P3^0;  // sbit v5 = P3^1;   //; sbit jianche = P3^5;   //; sbit dianya = P3^2;   // sbit off = P3^4;    sbit vt = P3^3;    /********************************************************************                             定时中断服务函数 *********************************************************************/ void t0(void) interrupt 1 using 0 //定时中断服务函数 { if(jianche==1&&off==1) { tcnt++; //每过250ust tcnt 加一 if(tcnt==400) //计满400 次(1/10 秒)时 {   tcnt=0; //重新再计   sec++;   if(sec==4) //单位为毫秒   {   v12=1;   v5=0;   dianya=1;   }   if(sec==8) //单位为毫秒   {   v12=0;   v5=0;   dianya=1;   sec=0;   } } } if(jianche==0&&off==1) { tcnt++; //每过250ust tcnt 加一 if(tcnt==400) //计满400 次(1/10 秒)时 {   tcnt=0; //重新再计   sec++;   if(sec==4) //单位为毫秒   {   v12=1;   v5=1;   dianya=0;   }   if(sec==8) //单位为毫秒   {   v12=1;   v5=1;   dianya=1;   sec=0;   } } } if(off==0) { tcnt++; //每过250ust tcnt 加一 if(tcnt==400) //计满400 次(1/10 秒)时 {   tcnt=0; //重新再计   sec++;   if(sec==4) //单位为毫秒   {   v12=1;   v5=1;   dianya=1;   }   if(sec==8) //单位为毫秒   {   v12=1;   v5=1;   dianya=1;   sec=0;   } } } } /********************************************************************                             主函数 *********************************************************************/ void main() { TMOD=0x02; //定时器工作在方式2 TH0=0x06; //对TH0 TL0 赋值 TL0=0x06; TR0=1; //开始定时 ET0=1; EA=1; sec=0; v12=0; while(1) { } }   /********************************************************************                               结束 *********************************************************************/
    12. :victory: 俺就是这么保护俺自己的知识产权的,行之有效。损失一个IO口不是问题,问题是保护好知识产权。:titter:
    13. 水位自动控制程序 12/5646 51单片机 2012-09-06
      全能型:victory:
    14. :victory: 这个就是一个时钟的,其他的看另一篇文章
    15. 给你一个完整的程序,你来分析一下吧, [ 本帖最后由 用心思考 于 2012-9-1 11:32 编辑 ]
    16. :victory: :lol 泡砖印玉
    17. 谁删的我的帖子,管理员出来给我解释一下 28/6659 为我们提建议&公告 2012-08-30
      :victory: 真是管理到位,,辛苦了,
    18. 谁删的我的帖子,管理员出来给我解释一下 28/6659 为我们提建议&公告 2012-08-30
      你好好看看标题吗?题目:(智能跑(漏)水自动开关源码(免费下载))
    19. 谁删的我的帖子,管理员出来给我解释一下 28/6659 为我们提建议&公告 2012-08-30
      我QQ天天在线的。只是你看不见我罢了。我是小人物,您老人家能看见我吗?:victory:
    20. 谁删的我的帖子,管理员出来给我解释一下 28/6659 为我们提建议&公告 2012-08-30
      题目:(智能跑(漏)水自动开关源码(免费下载)) 你好好打开帖子看看,看完再说,如果有你说的内容,我就消失在这里,永不再来,,,:victory:

最近访客

< 1/3 >

统计信息

已有340人来访过

  • 芯积分:50
  • 好友:--
  • 主题:102
  • 回复:39

留言

你需要登录后才可以留言 登录 | 注册


soso 2012-8-30
用心思考: 谁删的我的帖子,题目:(智能跑(漏)水自动开关源码(免费下载))
我的帖子里面没有任何广告以及违规的地方,管理员出来给我解释一下,

没有调查就没有发言
管理员已经在你发的帖子后面回复了,请查看一下。
查看全部