大连创客空间

 找回密码
 立即注册吧!

QQ登录

只需一步,快速开始

一键登录:

搜索
查看: 3696|回复: 8
收起左侧

【大赛原创经验贴】适用于MSP430的ADC驱动(ADS7883)

[复制链接]
发表于 2012-7-21 21:07:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多交流,硬件的世界向你敞开大门!

您需要 登录 才可以下载或查看,没有帐号?立即注册吧!

x
本帖最后由 albertzmh923 于 2012-7-21 21:31 编辑
  1. //最近在老师要求下在写不同类型的AD,DA控制程序,看时序图是件比较费时的事,磨来磨去几天下来还好写出了几个,下面就是其中的一个12位高速AD的程序,PCB是根据它的数据手册上的那个带REF5050的////电路做的
复制代码
  1. /*
  2. * ads7883.c
  3. *
  4. *  Created on: 2012-7-16
  5. *      Author: Administrator
  6. */
  7. #include "msp430f149.h"
  8. #define ADS7811_PORT P3IN
  9. #define SDO                         BIT1
  10. #define CS                          BIT2
  11. #define SCLK_7811  BIT0

  12. #define SCLK_DIR  P3DIR|=SCLK_7811
  13. #define SCLK_H     P3OUT|=SCLK_7811
  14. #define SCLK_L      P3OUT&=~SCLK_7811
  15. #define SDO_DIR    P3DIR&=~SDO
  16. #define CS_DIR                  P3DIR|=CS
  17. #define CS_H                      P3OUT|=CS
  18. #define CS_L                          P3OUT&=~CS
  19. #define SDO_CheckHigh  ADS7811_PORT&SDO
  20. unsigned char bit_count=0;//记录到移动到第几位了
  21. unsigned int result=0x0000;
  22. volatile double real_result=0.0;
  23. void init_ads7883()//
  24. {
  25.    SCLK_DIR;//clk信号输出
  26.    SDO_DIR;//串行数据输入
  27.    CS_DIR;//片选信号由主机给出
  28.    CS_H;//拉高片选信号
  29.    SCLK_H;//时钟拉高!!!
  30. }
  31. void read_data_ads7883()
  32. {
  33.         volatile unsigned char count=0;//计数初始为0
  34.         CS_L;//启动ADC转换,clock out the first 0
  35.         _delay_cycles(8);//8M 下延时1us
  36.         SCLK_L;//clock the second 0
  37.         _delay_cycles(8);//8M 下延时1us
  38.         SCLK_H;
  39.         _delay_cycles(8);//
  40.         SCLK_L;//clock out the MSB
  41.     while(count!=12)//专为12位数据准备
  42.     {
  43.             _delay_cycles(8);//1us
  44.             result<<=1;//右移1位
  45.             if(SDO_CheckHigh)//如果SDO为高电平
  46.             {
  47.                     result|=0x0001;//移入1
  48.             }
  49.             SCLK_H;
  50.             _delay_cycles(8);//1us with 8m
  51.             SCLK_L;//clock the bit
  52.         count++;//计数加1
  53.     }
  54.    _delay_cycles(8);//1us
  55.    SCLK_H;
  56.    CS_H;
  57.    _delay_cycles(1);//much longer than 10 ns
  58.    real_result=result/4095.0*4.710;
  59.    result=0;//一定要清0
  60. }

复制代码
  1. //ads7883.h
复制代码
  1. #ifndef ADS7883_H_
  2. #define ADS7883_H_
  3. void init_ads7883();
  4. void read_data_ads7883();

  5. #endif /* ADS7883_H_ */
复制代码


回复

使用道具 举报

发表于 2012-7-22 00:40:08 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2012-7-30 17:06:29 | 显示全部楼层
学习一下。。。。。
回复 支持 反对

使用道具 举报

发表于 2012-7-31 22:07:11 | 显示全部楼层
12位AD转换?launchpad是10位AD转换??程序有啥较大区别??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-1 08:14:47 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2012-8-11 17:08:50 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2012-8-13 17:22:08 | 显示全部楼层
学习,谢谢
回复 支持 反对

使用道具 举报

发表于 2012-8-13 20:41:17 | 显示全部楼层
免费的楼主精神值得学习
回复 支持 反对

使用道具 举报

发表于 2012-8-18 00:27:46 | 显示全部楼层
免费的
回复 支持 反对

使用道具 举报

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

本版积分规则

单片机开发者1群:235808606;会员QQ 6群:254085994; 1群:12835691(满); 2群:121061287(满); 3群:237320668(满);4群:249652919(满);5群:253578883(满);大赛1群:187926790(满),2群:231577758(满),3群:249652919(满)。 TI杯4群:58129202(满)。
载入中

QQ|手机版|小黑屋|Archiver|大连创客空间 ( 辽ICP备15004617号-2  

GMT+8, 2017-4-27 01:41 , Processed in 0.419776 second(s), 29 queries .

地址:辽宁省大连市高新园区火炬路7号17层 QQ:2401085253

Copyright © 2010-2015 创客空间(大连)科技有限公司 All Rights Reserved.

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