找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3609|回复: 5
打印 上一主题 下一主题
收起左侧

绳式位移传感器51单片机程序

[复制链接]
跳转到指定楼层
楼主
ID:240590 发表于 2017-10-18 14:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
绳式位移传感器51单片机程序

单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #include<stdio.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit wei=P2^7;
  7. sbit duan=P2^6;
  8. sbit adwr=P3^6;
  9. sbit adrd=P3^7;
  10. uchar flag,a;
  11. uchar flag_uart,flag_time,flag_on,a,i,t0_num,ad_val;
  12. float ad_vo;
  13. uchar code table[]={                        //定义共阴极数码管显示的16个字符的编码
  14. 0x3f,0x06,0x5b,0x4f,
  15. 0x66,0x6d,0x7d,0x07,
  16. 0x7f,0x6f,0x77,0x7c,
  17. 0x39,0x5e,0x79,0x71};
  18. void delay(uint x)
  19. {
  20.     uint i,j;                                                                          
  21.         for(i=x;i>0;i--)                                                         
  22.             for(j=110;j>0;j--);
  23.                 }
  24. void init()        //初始化函数
  25. {
  26.    TMOD=0x21;
  27.    SCON=0x50;
  28.    TH0=(65536-50000)/256;
  29.    TL0=(65536-50000)%256;
  30.    TH1=0xfd;
  31.    TL1=0xfd;
  32.    TR1=1;
  33.    ET0=1;
  34.    REN=1;
  35.    SM0=0;
  36.    SM1=1;
  37.    EA=1;
  38.    ES=1;
  39. }
  40. void display(uchar value)
  41. {
  42.            uchar bai,shi,ge;
  43.            bai=value/100;
  44.            shi=(value%100)/10;
  45.            ge=value%10;

  46.            duan=1;
  47.            P0=table[bai];
  48.            duan=0;
  49.            P0=0xff;
  50.            wei=1;
  51.            P0=0x7e;
  52.            wei=1;
  53.            delay(5);

  54.           
  55.            duan=1;
  56.            P0=table[shi];
  57.            duan=0;
  58.            P0=0xff;
  59.            wei=1;
  60.            P0=0x7d;
  61.            wei=1;
  62.            delay(5);

  63.            duan=1;
  64.            P0=table[ge];
  65.            duan=0;
  66.            P0=0xff;
  67.            wei=1;
  68.            P0=0x7b;
  69.            wei=1;
  70.            delay(5);
  71. }
  72. uchar get_ad()
  73. {
  74.          uchar adval;
  75.           adwr=1;
  76.           _nop_();
  77.           adwr=0;
  78.           _nop_();
  79.           adwr=1;
  80.           P1=0xff;

  81.           adrd=1;
  82.           _nop_();
  83.           adrd=0;
  84.           _nop_();
  85.           adval=P1;
  86.           adrd=1;
  87.           return adval;
  88. }
  89. void main()
  90. {
  91.    init();
  92.    wei=1;
  93.    P0=0x7f;
  94.    wei=0;
  95.    while(1)
  96.    {
  97.          if(flag_uart==1)
  98.           {
  99.                 flag_uart=0;
  100.             ES=0;
  101.                 TI=1;
  102.                 switch(flag_on)
  103.                 {
  104.                         case 0:puts("turn on ad!\n");
  105.                           TR0=1;
  106.                           break;
  107.                         case 1:printf("turn off ad!\n");
  108.                           TR0=0;
  109.                           break;
  110.                         case 2:puts("error!\n");
  111.                       break;
  112.                 }
  113.                 while(!TI);
  114.                 TI=0;
  115.                 ES=1;
  116.            }
  117.           if(flag_time==1)
  118.             {
  119.                    flag_time=0;
  120.                    ad_val=get_ad();
  121.                    ad_vo=(float)ad_val*(5.0/256.0)*40.0;
  122.                    ES=0;
  123.                    TI=1;
  124. //                   printf("the displacement is %fmm\n",ad_vo);
  125.                    printf("%8f\n",ad_vo);
  126.                            while(!TI);
  127.                      TI=0;
  128.                     ES=1;
  129.                         }
  130.                         display(ad_val);
  131.    }                 
  132. }
  133. void time()interrupt 1
  134. {
  135.    TH0=(65536-50000)/256;
  136.    TL0=(65536-50000)%256;
  137. ……………………

  138. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
tongxin.rar (42.02 KB, 下载次数: 37)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:284570 发表于 2018-8-27 17:12 | 只看该作者
请问你这个绳式位移传感器具体是什么
回复

使用道具 举报

板凳
ID:417873 发表于 2019-4-15 18:03 | 只看该作者
大佬   你这个原理图还有吗
回复

使用道具 举报

地板
ID:265874 发表于 2019-11-11 16:52 | 只看该作者
我想问跟P1有什么关系
回复

使用道具 举报

5#
ID:24486 发表于 2020-3-3 23:06 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
ID:24486 发表于 2020-3-4 00:29 | 只看该作者
请问,是什么型号拉线传感器,有没有原理图?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表