找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机串口加tlctlc5615编程,一直调不通啊

[复制链接]
跳转到指定楼层
楼主
ID:170962 发表于 2017-4-27 20:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar a;
  5. uchar str[4];
  6. uint flag=0,value=0,M=0,once=1,EXPER=1;

  7. sbit EOC=P2^7;
  8. sbit CS=P2^3;
  9. sbit CLK=P2^6;
  10. sbit SDI=P2^5;
  11. sbit SDO=P2^4;

  12. sbit d=P1^1;
  13. //--------------------------------------
  14. void init()
  15. {
  16.      SCON = 0x50;     
  17.      PCON &= 0x7F;
  18.      TMOD = 0x20;
  19.      TH1 = 0xfd;      // 9600bps @ 11.0592MHz
  20.      TL1 = 0xfd;
  21.      TR1 = 1;

  22.      ES = 1;
  23.      EA = 1;
  24. }
  25. //--------------------------------------
  26. void delay(uint z)
  27. {
  28.      uint x, y;
  29.      for(x = z; x > 0; x--) for(y = 110; y > 0; y--);
  30. }
  31. //--------------------------------------
  32. unsigned int  A_D(unsigned char CH_i)
  33. {
  34.   unsigned int AD_Val
  35.    unsigned char i;
  36.    AD_Val=0;
  37.    CS=1;
  38.    EOC=0;
  39.    CLK=0;
  40.          delay(2);
  41.    CS=0;   
  42.    EOC=1;     
  43.    CH_i<<=4;
  44.    CH_i|=0x02;

  45. for(i=0;i<8;i++
  46.         {
  47.           AD_Val>>=1  
  48.           CLK=0;
  49.           delay(1);
  50.       if((CH_i&0x80)==0x80)        
  51.             SDI=1;            
  52.           else
  53.             SDI=0;
  54.            CH_i<<=1
  55.        CLK=1;        
  56.        delay(1);
  57.           if(SDO==1)
  58.            {
  59.               AD_Val|=0x800;         
  60.            }
  61.           else
  62.            {
  63.              AD_Val|=0x000;
  64.            }
  65.         }
  66.    SDI=0;
  67.    for(i=8;i<12;i++)
  68.    {
  69.       AD_Val>>=1;
  70.           CLK=0;                       
  71.            delay(1);
  72.       CLK=1;      
  73.            delay(1);
  74.           if(SDO==1)  
  75.            {
  76.             AD_Val|=0x800
  77.            }
  78.           else
  79.            {
  80.             AD_Val|=0x000
  81.            }
  82.         }
  83.    CLK=0;
  84.    delay(6)
  85.    CS=1
  86.    EOC=0;  
  87.    return AD_Val;

  88.   }
  89. //--------------------------------------
  90. void main()
  91. {
  92.      init();
  93.      TI = 1;
  94.         
  95.         
  96.      while(1)
  97.                          {
  98.                                  
  99. if(flag==1)
  100. {
  101.               value= A_D(4);
  102.                                 delay(3);
  103.                     str[0]=value/1000+0x30;
  104.                                 str[1]=value/100%10+0x30;
  105.                                 str[2]=value/10%10+0x30;
  106.                                 str[3]=value%10+0x30;         
  107.        if(a == '1')
  108.                                 {
  109.          d = 1;
  110.                                         SBUF = str[0]; while (TI == 0); TI = 0;
  111.                                         SBUF = str[1]; while (TI == 0); TI = 0;
  112.                                         SBUF = str[2]; while (TI == 0); TI = 0;
  113.                                         SBUF = str[3]; while (TI == 0); TI = 0;
  114.                                 }
  115.        else if(a == '2')
  116.                                 {
  117.          d = 0;
  118.                                         SBUF = '7'; while (TI == 0); TI = 0;
  119.                                         SBUF = '7'; while (TI == 0); TI = 0;
  120.                                         SBUF = '7'; while (TI == 0); TI = 0;
  121.                                         SBUF = '7'; while (TI == 0); TI = 0;
  122.                                         SBUF = '7'; while (TI == 0); TI = 0;
  123.                                 }
  124. flag=0;                        
  125. }
  126.                                  
  127.                         
  128.                          }
  129. }
  130. //--------------------------------------
  131. void ser() interrupt 4
  132. {
  133.      if (TI == 1) TI = 0;
  134.      if (RI == 1)
  135.                          {
  136.        RI = 0;
  137.        a = SBUF;           
  138.                         flag=1;
  139.                          }   
  140. }

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

使用道具 举报

沙发
ID:82765 发表于 2017-4-27 21:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:82765 发表于 2017-4-27 21:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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