OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5516|回复: 3

求助关于51驱动TCS230模块

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-8-13
在线时间
2 小时
发表于 2020-3-31 09:24:59 | 显示全部楼层 |阅读模式
3金钱
  1. /*用了t0和t1读取脉冲 但是发现t0和t没有工作 看了很久问了很多前辈都找不出来错误 网上能用的代码误差很大 自己写个个 希望高手能帮忙看看哪里有问题 谢谢*/
复制代码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-8-13
在线时间
2 小时
 楼主| 发表于 2020-3-31 09:25:21 | 显示全部楼层
  1. #include"reg52.h"

  2. sfr T2MOD=0XC9;
  3. unsigned char command =0x00;

  4. sbit S0=P1^0;
  5. sbit S1=P1^1;
  6. sbit S2=P1^2;
  7. sbit S3=P1^3;

  8. sbit K4=P3^3;

  9. unsigned int Gyz,Ryz,Byz;
  10. unsigned char Rzhi,Bzhi,Gzhi;

  11. unsigned char code number[]={0,1,2,3,4,5,6,7,8,9};

  12. unsigned char num=0;
  13. unsigned char color=0;

  14. void baipingheng();
  15. void ceyanse();
  16. void T0_Init();
  17. void T1_Init();
  18. void T2_Init();
  19. void System_Init()
  20. {
  21.         S0=1;
  22.         S1=1;
  23.         S2=0;
  24.         S3=0;
  25.         T0_Init();
  26.         T1_Init();
  27.         T2_Init();
  28.         }

  29. void delay600ms(void)   
  30. {
  31.     unsigned char a,b,c;
  32.     for(c=89;c>0;c--)
  33.         for(b=230;b>0;b--)
  34.             for(a=12;a>0;a--);
  35. }

  36. void Delay(unsigned char t)
  37. {
  38.         while(t--);
  39.         }
  40. /***********************
  41. 串口
  42. *****************************/
  43. void T2_Init()
  44. {
  45.         T2MOD|=0X02;
  46.         T2CON=0X34;
  47.         TH2=RCAP2H=0XFF;
  48.         TL2=RCAP2L=0XD9;
  49.         SCON=0X50;
  50.         TR2=1;
  51.         ES=1;
  52.         EA=1;
  53.         }

  54. void Send_Byte(unsigned char dat)
  55. {
  56.         SBUF=dat;
  57.         while(TI==0);
  58.         TI=0;
  59.         }

  60. //void Receive()interrupt 4
  61. //{
  62. //   if(RI==1)
  63. //   {
  64. //    RI=0;
  65. //           command=SBUF;
  66. //        Send_Byte(command+1);
  67. //                   }
  68. //       
  69. //        }
  70. /*******************************
  71. 定时器设置
  72. **************************************/
  73. void T0_Init()
  74. {
  75.         TMOD|=0x01;
  76.         TH0=(65536-10000)/256;
  77.         TL0=(65536-10000)%256;
  78.         TR0=0;
  79.         ET0=1;
  80.         EA=1;
  81.         }

  82. void T1_Init()
  83. {
  84.         TMOD|=0x50;
  85.         TH1=0x00;
  86.         TL1=0x00;
  87.         TR1=0;
  88.         EX1=1;//外部
  89.         IT1=1;
  90.         EA=1;
  91.         }

  92. void Service_T0()interrupt 1
  93. {
  94.         TR1=0;//关闭寄存器
  95.         TR0=0;
  96.         TH0=(65536-10000)/256;//t0初值填入
  97.         TL0=(65536-10000)%256;
  98.         if(color==0) //选择功能
  99.         {
  100.                 baipingheng();
  101.                 }
  102.          else
  103.          ceyanse();
  104.         }

  105. void baipingheng()
  106. {
  107.         if(num==0)//白红
  108.         {
  109.                 Ryz=TH1*256+TL1;
  110.                 num=1;
  111.                 S2=0;
  112.                 S3=1;
  113.                 TH1=0X00;
  114.                 TL1=0X00;
  115.                 TR0=1;
  116.                 TR1=1;
  117.                 }
  118.         if(num==1)//白蓝
  119.         {
  120.                 Byz=TH1*256+TL1;
  121.                 num=2;
  122.                 S2=1;
  123.                 S3=1;
  124.                 TH1=0X00;
  125.                 TL1=0X00;
  126.                 TR0=1;
  127.                 TR1=1;        //继续下一次测量
  128.                 }
  129.         if(num==2)//白绿
  130.         {
  131.                 Gyz=TH1*256+TL1;
  132.                 num=0;
  133.                 S2=0;
  134.                 S3=0;
  135.                 color++;
  136.                 TH1=0X00;
  137.                 TL1=0X00;
  138.                 TR0=0;
  139.                 TR1=0; //关闭定时器
  140.                 }
  141.         }

  142. void ceyanse()
  143. {
  144.         if(num==0)//测红
  145.         {
  146.                 Rzhi=(unsigned long)(TH1*256+TL1)*255/Ryz;
  147.                 num=1;
  148.                 S2=0;
  149.                 S3=1;
  150.                 TH1=0X00;
  151.                 TL1=0X00;
  152.                 TR0=1;
  153.                 TR1=1;
  154.                 }
  155.         if(num==1)//测蓝
  156.         {
  157.                 Bzhi=(unsigned long)(TH1*256+TL1)*255/Byz;;
  158.                 num=2;
  159.                 S2=1;
  160.                 S3=1;
  161.                 TH1=0X00;
  162.                 TL1=0X00;
  163.                 TR0=1;
  164.                 TR1=1;        //继续下一次测量
  165.                 }
  166.         if(num==2)//测绿
  167.         {
  168.                 Gzhi=(unsigned long)(TH1*256+TL1)*255/Gyz;;
  169.                 num=1;
  170.                 S2=0;
  171.                 S3=0;
  172.                 TH1=0X00;
  173.                 TL1=0X00;
  174.                 TR0=0;
  175.                 TR1=0; //关闭定时器
  176.                 }
  177.         }

  178. void KeyScan()
  179. {
  180.         while(K4==0);
  181.         if(K4==0)
  182.         {               
  183.                 Delay(20);
  184.                 if(K4==0)
  185.                 {
  186.                
  187.                         TR1=1;
  188.                         TR0=1;
  189.                         }
  190.                 }
  191.         }



  192. void main()
  193. {
  194.         System_Init();
  195.         TR0=1;
  196.         TR1=1;
  197.         while(1)
  198.         {
  199.                 KeyScan();
  200.                 delay600ms();
  201.                 Send_Byte(Rzhi);
  202.                 Send_Byte(Bzhi);
  203.                 Send_Byte(Gzhi);
  204.                 }
  205.         }
复制代码
回复

使用道具 举报

6

主题

412

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2679
金钱
2679
注册时间
2019-8-14
在线时间
412 小时
发表于 2020-3-31 14:51:28 | 显示全部楼层
帮顶~~
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2019-8-13
在线时间
2 小时
 楼主| 发表于 2020-3-31 18:04:06 | 显示全部楼层

非常感谢
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-1 04:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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