找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2644|回复: 0
收起左侧

测障测角智能小车 仿真+源码+设计论文

[复制链接]
ID:160561 发表于 2017-1-7 11:05 | 显示全部楼层 |阅读模式
采用ATM89S52单片机来作为整机的控制单元。红外线探头采用市面上通用的发射管与及接收头,经过单片机调制后发射。铁片检测采用电感式接近开关LJ18A3-8-Z/BX检测,黑带采用光敏二极管对光源信号采集,再经过ADC0809转化为数字信号送到单片机系统处理。此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地满足题目的要求。

0.png 0.png
课程设计论文的截图:
0.png

0.png

测角的程序:
  1. #include"reg51.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  5. uchar code segnode[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
  6. #define digport P0
  7. #define dataport P1
  8. #define wordport P2
  9. #define r 45
  10. sbit  eoc= P3^3;
  11. sbit  clk= P3^4;
  12. sbit  start= P3^6;
  13. sbit  oe= P3^7;
  14. bit flag;
  15. uchar a[4]={0xff,0xff,0xff,0xff};//黑屏
  16. uchar dig=0x01;

  17. void delay(uint t)
  18. {for(;t<0;t--);}

  19. /*void display()
  20. {
  21.         uchar i;
  22.                 wordport=0xff;
  23.         for(i=0;i<4;i++)
  24.                 {
  25.                
  26.                         wordport=a[i];
  27.                         digport=dig<<1;
  28.                         delay(300);
  29.                  }
  30. }*/
  31. void Display(void)
  32. {
  33.         uchar i,k,select=0x01;
  34.        for(i=0;i<=5;i++)
  35.              { digport=select;
  36.                            wordport=a[i];
  37.                select<<=1;
  38.                             for(k=0;k<=100;k++)//改
  39.                                 {;}
  40.                  }

  41. }
  42. void time0() interrupt 1
  43. {        clk=~clk; }               
  44. void chuli()
  45. {                        
  46.         unsigned long  int da;
  47.         //eoc=0;
  48.         start=1;
  49.         oe=1;
  50.         da=dataport;
  51.         delay(10);
  52.         oe=0;
  53. //        da=da*196;
  54.     if(da<127)a[3]=0xbf;//128改127//127.5=127
  55.     if(da>=127)a[3]=0xff;
  56. //        if(da<5000||da>45000){da=0;}
  57.    
  58.     if(a[3]==0xff) {da=da-127;        da=da*1961;} //}if(da>49000)da=50000;}
  59.     if(a[3]==0xbf) {da=128-da;        da=da*1961;}//128改127
  60.    
  61.         da=da*r;
  62.         if(da>9000000)da=9000000;
  63.         a[0]=seg[da/10000%10];
  64.         if((da/1000%10)>5)
  65.         a[0]=seg[da/10000%10+1];
  66.         a[1]=segnode[da/100000%10];
  67.         a[2]=seg[da/1000000];
  68.         start=0;        
  69.         delay(10);
  70. }

  71. void main(void)
  72. {   uchar k;
  73.         delay(30);
  74. //        IT1=1;EX1=1;
  75.         TMOD=0x02;TH0=253;TL0=253;
  76.         TR0=1;ET0=1;PT0=1;
  77.         EA=1;
  78.         //eoc=0;
  79.         start=0;
  80.         start=1;
  81.         start=0;
  82.         for(;;)
  83.         {               
  84.                 if(eoc)        chuli();
  85.                 for(k=0;k<100;k++)
  86. {        Display();}
  87.         }
  88.         
  89. }        
复制代码

0.png

所有设计资料下载:
测障测角小车.rar (126.75 KB, 下载次数: 17)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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