久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1922|回復: 0
打印 上一主題 下一主題
收起左側

搬運車+GY-31傳感器TCS23顏色參考單片機源碼

[復制鏈接]
跳轉到指定樓層
樓主
之前做比賽的時候通關網絡搜集了一些 然后根據自己的車 做了部分修改 算是一個整合吧 基于51單片機

單片機源程序如下:
  1. #include<iom128v.h>
  2. #include<macros.h>
  3. #include<BIT.h>
  4. #include"LCD12864.c"
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. #pragma interrupt_handler timer0:iv_TIMER0_OVF
  8. #pragma interrupt_handler int0:iv_INT0
  9. #define PSB _PA3
  10. #define REST _PA4
  11. #define LED_B _PG1
  12. #define S2 _PE0
  13. #define S3 _PE1
  14. #define buzzer _PG0
  15. uchar table0[]="顏色識別";
  16. uchar table1[]="紅色: ";
  17. uchar table2[]="綠色: ";
  18. uchar table3[]="藍色: ";
  19. uint  red,gree,blue,time_count,int_count;
  20. uchar red_value,gree_value;
  21. void delay(uint tt)
  22. {
  23.     uchar j;
  24.         for(;tt>0;tt--)
  25.             for(j=100;j>0;j--);
  26. }
  27. void timer_Init()
  28. {
  29.     TCCR0=0x07;
  30.     TCNT0=0x64;
  31.   //  TIMSK|=BIT(0);
  32. }
  33. void interrupt0_Init()
  34. {
  35.    // EIMSK|=BIT(0);
  36.     EICRA=0x02;
  37.     DDR_PD0=0;
  38.   //  _PD0=1;
  39. }
  40. void PORT_INIT()
  41. {
  42.     DDR_PA0=1;
  43.         DDR_PA1=1;
  44.         DDR_PA2=1;
  45.         DDR_PA3=1;
  46.         DDR_PA4=1;
  47.         
  48.         DDRC=0xff;
  49.         
  50.         DDR_PE0=1;
  51.         DDR_PE1=1;
  52.         
  53.         DDR_PG0=1;
  54.         DDR_PG1=1;
  55.         
  56.         PSB=0;
  57.         REST=1;
  58.         LED_B=1;
  59. }
  60. void color_Recognition()
  61. {
  62.     S2=1;
  63.         S3=1;
  64.         EIMSK|=BIT(0);
  65.         TIMSK|=BIT(0);
  66. }
  67. void main()
  68. {
  69.         PORT_INIT();
  70.     timer_Init();
  71.         interrupt0_Init();
  72.         LCD_12864_Init();
  73.         SREG|=BIT(7);
  74. //        PutStr(0,2,table0);
  75.         PutStr(1,1,table1);
  76.         PutStr(2,1,table2);
  77.         PutStr(3,1,table3);
  78.         delay(5000);
  79.         buzzer=1;
  80.         delay(200);
  81.         buzzer=0;
  82.         color_Recognition();
  83.         while(1);
  84. }
  85. void timer0()
  86. {
  87.     uchar ge,shi,bai,qian;
  88.         float temp;
  89.     TIMSK&=~BIT(0);
  90.         time_count++;
  91.         TCNT0=0x64;
  92.         if(time_count==1)
  93.            {
  94.           bai=int_count/100;
  95.               shi=int_count%100/10;
  96.               ge=int_count%10;
  97.               Write_command_12864(0x95);
  98.               Write_data_12864(0x30+bai);
  99.               Write_data_12864(0x30+shi);
  100.               Write_data_12864(0x30+ge);
  101.               red=int_count;
  102.                   S2=1;
  103.                   S3=1;
  104.            }
  105.          if(time_count==2)
  106.            {
  107.               bai=int_count/100;
  108.               shi=int_count%100/10;
  109.               ge=int_count%10;
  110.                   Write_command_12864(0x8d);
  111.               Write_data_12864(0x30+bai);
  112.               Write_data_12864(0x30+shi);
  113.               Write_data_12864(0x30+ge);
  114.                   gree=int_count;
  115.                   S2=0;
  116.                   S3=1;   
  117.            }
  118.          if(time_count==3)
  119.            {
  120.               bai=int_count/100;
  121.               shi=int_count%100/10;
  122.               ge=int_count%10;         
  123.                   Write_command_12864(0x9d);
  124.               Write_data_12864(0x30+bai);
  125.               Write_data_12864(0x30+shi);
  126.               Write_data_12864(0x30+ge);
  127.                   blue=int_count;
  128.                   S2=0;
  129.                   S3=0;      
  130.            }
  131.          if(time_count==40)
  132.            {
  133.               time_count=0;        
  134.                   temp=(float)red/blue;
  135.                   red_value=temp*1000;
  136.                   temp=(float)gree/blue;
  137.                   gree_value=temp*1000;
  138.                   
  139.                   qian=red_value/1000;
  140.                   bai=red_value%1000/100;
  141.                   shi=red_value%100/10;
  142.                   ge=red_value%10;
  143.                   Write_command_12864(0x81);  
  144.                   Write_data_12864(0x30+qian);
  145.                   Write_data_12864(0x30+bai);
  146.                   Write_data_12864(0x30+shi);
  147.                   Write_data_12864(0x30+ge);
  148.                   
  149.                   qian=gree_value/1000;
  150.                   bai=gree_value%1000/100;
  151.                   shi=gree_value%100/10;
  152.                   ge=gree_value%10;
  153.                   Write_command_12864(0x85);  
  154.                   Write_data_12864(0x30+qian);
  155.                   Write_data_12864(0x30+bai);
  156.                   Write_data_12864(0x30+shi);
  157.                   Write_data_12864(0x30+ge);
  158.            }
  159.          int_count=0;
  160.          TIMSK|=BIT(0);
  161. }
  162. void int0()
  163. {
  164.      int_count++;
  165. }
復制代碼

所有資料51hei提供下載:
GY-31顏色模塊發送資料.7z (4 MB, 下載次數: 14)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.97zyz.com| 国产丝袜一区二区三区免费视频 | 狠狠操狠狠操 | 日韩中文字幕一区 | 久久久999免费视频 999久久久久久久久6666 | 久久日韩粉嫩一区二区三区 | 欧美一区二区三区在线观看视频 | 91久久久久 | 人人干人人舔 | 国产成人在线一区二区 | 亚洲一区二区综合 | 欧美精品99| 羞羞的视频在线看 | 久久综合一区二区 | 成人在线不卡 | 久久99精品国产麻豆婷婷 | 日韩手机在线视频 | 高清av电影 | 久草资源网站 | 国产精品激情 | 成年免费在线观看 | 亚洲国产一区二区在线 | av在线免费观看网站 | 成人免费视屏 | 国产精品久久久久久久久图文区 | 国产高清一二三区 | 欧美淫片 | 一区二区视频 | 仙人掌旅馆在线观看 | 精品91久久 | 天天夜夜操 | 久久99国产精品久久99果冻传媒 | 成人做爰9片免费看网站 | 欧洲精品码一区二区三区免费看 | 大乳boobs巨大吃奶挤奶 | 日韩一区二区三区四区五区六区 | 国产精品福利视频 | 欧美区在线观看 | 日韩欧美大片 | 99精品在线| 欧美精品福利 |