找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1110|回复: 2
收起左侧

单片机光电转速传感器模拟无反应 求帮助

[复制链接]
ID:717291 发表于 2020-7-3 17:27 | 显示全部楼层 |阅读模式
里面有源代码以及仿真图,但是没有变化 求大神指导
51hei.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #include<INTRINS.H>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define LED P2
  6. uchar temp=0;
  7. sbit RS=P2^0;
  8. sbit EN=P2^1;
  9. void init();
  10. void delay();
  11. void Delay2ms()        ;
  12. void write_com(uchar com);
  13. void write_data(uchar date);
  14. void init_lcd();

  15. void main()
  16. {
  17.   while(1)
  18. {
  19.     init();
  20.   init_lcd();
  21.   }
  22. }

  23. void INT_0() interrupt 0
  24. {
  25. temp++;
  26.   delay();
  27.   LED=temp;
  28. }

  29. void init()
  30. {
  31. EA=1;
  32. EX0=1;         
  33. //IT0=0;         //用电平触发就可以,换那个光敏二极管就不行了
  34. IT0=1;
  35. LED=0;
  36. }

  37. void delay()
  38. {
  39.         uchar i,j,k;
  40.         _nop_();
  41.         i=4;
  42.         j=205;
  43.         k=187;
  44.         do
  45.         {
  46.           do
  47.             {
  48.                    while(--k);
  49.                 }while(--j);
  50.           }while(--i);
  51. }

  52. void Delay2ms()               
  53. {
  54.         uchar i, j;

  55.         _nop_();
  56.         i = 4;
  57.         j = 146;
  58.         do
  59.         {
  60.                 while (--j);
  61.         } while (--i);
  62. }

  63. void write_com(uchar com)
  64. {
  65.   RS=0;
  66.   EN=0;
  67.   P0=com;
  68.   Delay2ms();
  69.   EN=1;
  70.   Delay2ms();
  71.   EN=0;
  72. }

  73. void write_data(uchar date)
  74. {
  75.   RS=0;
  76.   EN=0;
  77.   P0=date;
  78.   Delay2ms();
  79.   EN=1;
  80.   Delay2ms();
  81.   EN=0;
  82. }

  83. void init_lcd()
  84. {
  85.   write_com(0x38);
  86.   write_com(0x0f);
  87.   write_com(0x06);
  88.   write_com(0x01);
  89. }
复制代码

所有资料51hei提供下载:
光电转速传感.rar (58.6 KB, 下载次数: 6)
回复

使用道具 举报

ID:213173 发表于 2020-7-3 21:21 | 显示全部楼层
楼主图P3.2位置画错了

191131vdo5uy8aicylcczn.jpg

回复

使用道具 举报

ID:789121 发表于 2020-7-3 23:30 | 显示全部楼层
P3.2 肯定是画错了,另外建议将R2改成10k或者5k测试。
程序main函数也改一下:
void main()
{
        init();
  init_lcd();
  while(1)
  {
   
  }
}
初始化函数放到while外面
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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