找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神帮忙看看为什么用串口调试助手接收不到数据

[复制链接]
跳转到指定楼层
楼主
ID:186513 发表于 2017-4-5 23:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神帮忙看看为什么用串口调试助手接收不到数据
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
        sbit adin=P2^3;
  sbit dht_dat=P0^5;
        uint num;
  uchar dht_t1=0,dht_t2=0;
  uchar dht_d1=0,dht_d2=0;
  uchar dht_chk=0;
  uchar dht_num=0;
  float cin,cout;
  uint ca,a,b;


        void init()
        {
                TMOD=0x02;
                TH0=6;
                TL0=6;
                SM0=0;
                SM1=1;
                REN=1;
                EA=1;
                ES=1;
                ET0=1;
                TR0=1;
        }
       
  void dht_delay_10us()
        {
                uchar i=0;
                for(i=0;i<1;i++);
        }
       
        void dht_delay_10ms(uchar t)
        {
                uchar i=0,j=0,k=0;
                for(i=0;i<t;i++)
                {
                        for(j=0;j<40;j++)for(k=0;k<75;k++);
                }
        }
       
        uchar dht_readat()
        {
                uchar i=0,dat=0;
                for(i=0;i<8;i++)
                {
                        dht_num=2;
                        while((dht_dat==0)&&(dht_num++));
                        dht_delay_10us();dht_delay_10us();dht_delay_10us();dht_delay_10us();
      dat=dat<<1;
                        if(dht_dat==1)
                                {
                                        dht_num=2;
                                        dat=dat|0x01;
                                        while((dht_dat==1)&&(dht_num++));
                                }
                }
                return dat;
        }
       
        void dht_getdat()
        {
                uchar i=0;
                dht_dat=0;
                dht_delay_10ms(4);
                dht_dat=1;
               
                dht_delay_10us();dht_delay_10us();dht_delay_10us();dht_delay_10us();
                dht_dat=1;
               
                if(dht_dat==0)
                        {
                                dht_num=2;while((dht_dat==0)&&(dht_num++));
                                dht_num=2;while((dht_dat==1)&&(dht_num++));
                                dht_d1=dht_readat();
                                dht_d2=dht_readat();
                                dht_t1=dht_readat();
                                dht_t2=dht_readat();
                                dht_chk=dht_readat();
                        }
                       
                dht_dat=1;
                dht_delay_10ms(10);
        }
       
        void dht_init()
        {
                dht_delay_10ms(100);
                dht_dat=1;
        }
       
        void T0_TIME() interrupt 1
        {
                num++;
        }
               
        void main()
        {
                uint a,b;
                init();
                dht_init();
                a=0xaa;
                b=0x01;
                num=0;
                while(1)
                {
                        if(num==9999)
                        {
                                num=0;
                                dht_getdat();
                                cin=adin;
                                cout=cin*1000/5.0;
                                ca=(int)cout;
                                ES=0;
                                TI=1;
                                printf("%x",a);
                                while(!TI);
                                TI=0;
                                printf("%x",b);
                                while(!TI);
                                TI=0;
                                printf("%x",dht_d1);
                                while(!TI);
                                TI=0;
                                printf("%x",dht_d2);
                                while(!TI);
                                TI=0;
                                printf("%x",dht_t1);
                                while(!TI);
                                TI=0;
                                printf("%x",dht_t2);
                                while(!TI);
                                TI=0;
                                printf("%x",cout);
                                while(!TI);
                                TI=0;
                                ES=1;
                        }
                }
        }
                               
                               
                               
                               
                               
                               
                               

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

使用道具 举报

沙发
ID:151348 发表于 2017-4-6 08:52 | 只看该作者
模拟串口?
回复

使用道具 举报

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

使用道具 举报

无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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