微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > DSP学习交流 > 老铁们,你们有没有见过这种接线方式的?

老铁们,你们有没有见过这种接线方式的?

时间:10-02 整理:3721RD 点击:
老铁们,你们有没有见过这种接线方式的?最近在用AD7606做东西,发现别人分享的程序有一个这样的,rd_and_cs = P1^7;RD和CS接在一起?无法理解啊!老铁们帮我看看吧
sbit OS0 = P1^0;
sbit OS1 = P1^1;
sbit OS2 = P1^2;
sbit rage = P1^3;
sbit convst = P1^4;
sbit busy = P1^5;
sbit rst = P1^6;
sbit rd_and_cs = P1^7;
全部程序在下面:
* This is a program for testing AD7606        used STC89C52RC
* The line connecting AD7606 with STC89C52RC is:
* STC89C52RC    |    AD7606
*          P0                         |          DB[0:7]
*   P2          |    DB[8:15]
*   OS0         |    P1^0
*   OS1         |    P1^1
*   OS2         |    P1^2
*   rage        |    P1^3
*   convst      |    P1^4
*   busy        |    P1^5
*   rst         |    P1^6
*   rd_and_cs   |    P1^7
*   green_led   |    P3^6
*   red_led     |    P3^7
*         GND                 |    GND
*   +5V                 |    VCC
*   green_led   |    P3_6
*   red_led     |    P3_7
* Author : jinming chen
* Compang : Hongwei in dongguan
* Date : Sep 1        ,2015
*/
#include
#include
#include
#include "AD7076.h"
#include "other.h"
//uchar introduce1[] = "This is a program ";
//uchar introduce2[] = "for testing AD7606\r\n";
uchar sampling[] = "The sampling data is : ";
uchar newline[] = "\r\n";
uchar space[] = " ";
uchar *DB_str[16] = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
/*
uchar *data_to_string(uchar Data)
{
        uchar tmp;
        tmp = Data & 0x0f;
        str[1] =DB_str[binary_to_decimal(tmp)];
        tmp = Data>>4;
        str[0] =DB_str[binary_to_decimal(tmp)];
        return str;
}
*/

void serial_init(void)
{
        SCON = 0x50;  //UART为模式一,8位数据,允许接收
        TMOD |= 0x20;        //定时器1为模式二,8位自动重装
        PCON |= 0x80;        //SMOD=1
        TH1 =0xfd;                //波特率为19200,晶振频率为11.0592MHz
        IE = 0x00;
        TR1 = 1;
        TI = 1;
}
/*
//向串口发送一个函数
void serial_send_byte(uchar ch)
{
        SBUF=ch;
    while (TI== 0);
    TI = 0 ;
}
*/
//向串口发送一串字符数据
void serial_send_string(uchar *p)
{
        while(*p != '\0')
        {
                SBUF = *p;
                while(TI == 0);
                TI = 0;
                p++;
        }         
}
int main()
{
        struct DB_data_struct *DB_data;
        uchar k,tmp;
        uchar DB_data_cmp[8];
        serial_init();
        AD7606_init();
        while(1)
        {
//                DB_data = DB_str;
//                serial_send_string(introduce1);
//                serial_send_string(introduce2);
                AD7606_startconvst();
                while((busy == 1))                //当busy为低电平时,数据转换完毕,此时可以读取数据
                {
//                        serial_send_byte(busy);
//                        delay_ms(500);
                        ;
                }
                DB_data = AD7606_read_data();
                serial_send_string(sampling);
                for(k=0;k DB_data_H>>4) & 0x0f;
                        serial_send_string(DB_str[tmp]);
                        tmp = (DB_data->DB_data_H) & 0x0f;
                        serial_send_string(DB_str[tmp]);
                        tmp = (DB_data->DB_data_L>>4) & 0x0f;
                        serial_send_string(DB_str[tmp]);
                        tmp = (DB_data->DB_data_L) & 0x0f;
                        serial_send_string(DB_str[tmp]);
                        serial_send_string(space);
                        DB_data_cmp[k] = DB_data->DB_data_H;
                        DB_data += 1;
                }
                if((DB_data_cmp[0]>0x7D)&&(DB_data_cmp[1]>0x7D)&&(DB_data_cmp[2]>0x7D)&&(DB_data_cmp[3]>0x7D)        \
                &&(DB_data_cmp[4]>0x7D)&&(DB_data_cmp[5]>0x7D)&&(DB_data_cmp[6]>0x7D)&&(DB_data_cmp[7]>0x7D))
                {        //电压检测为预定值,则绿灯亮
                        red_led = 0;
                        green_led = 1;
                }
                else
                {        //电压检测为非预定值,则红灯亮
                        green_led = 0;
                        red_led = 1;
                }
                serial_send_string(newline);
                serial_send_string(newline);
                serial_send_string(newline);
                delay_ms(300);
        }
        return 0;        
}

看时序就知道了啊

let me see the comment.

亲,你一定漏掉了什么,我怎么没有看到AD7606_read_data();这个函数。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top