21ic电子技术开发论坛 已关闭版块 驱动开发|WIN编程 请教c编程问题
发新帖我要提问
返回列表
打印

请教c编程问题

[复制链接]
1346|6
手机看帖
扫描二维码
随时随地手机跟帖
沙发
computer00| | 2008-6-4 13:17 | 只看该作者

试试这个:

/*
   ADC.C file
   The ADC0832 ADC driver  
   Created by Computer-lov date: 2005.5.4
   Copyright (c) 2005 Computer-lov
   version 1.0
*/

#include "MyType.h"
#include "ADC.H"
#include "at89x52.h"

#define ADC_CS  P2_0
#define ADC_CLK P3_6
#define ADC_DI  P3_7
#define ADC_DO  P3_7

/********************************************************************
函数功能:读ADC函数。
入口参数:ch: 通道。
返    回:ADC结果。
备    注:无。
********************************************************************/
uint8 ReadAdc(uint8 ch)
{
 uint8 i;
 uint8 result;

//写两条一样的,延时用
 ADC_CLK=0;
 ADC_CLK=0;
 ADC_CS=0;
 ADC_CS=0;
 ADC_DI=1; //Start bit
 ADC_DI=1;
 ADC_CLK=1;
 ADC_CLK=1;
 ADC_CLK=0;
 ADC_CLK=0;
 ADC_DI=1; //单端
 ADC_DI=1;
 ADC_CLK=1;
 ADC_CLK=1;
 ADC_CLK=0;
 ADC_CLK=0;
 if(ch==0) //通道选择
 {
  ADC_DI=0;
  ADC_DI=0;
 }
 else
 {
  ADC_DI=1;
  ADC_DI=1;
 }
 ADC_CLK=1;
 ADC_CLK=1;
 ADC_CLK=0;
 ADC_CLK=0;
 ADC_DO=1;
 for(i=0;i<8;i++) //读出8位数据
 {
  ADC_CLK=1;
  ADC_CLK=1;
  ADC_CLK=0;
  ADC_CLK=0;
  result<<=1;
  if(ADC_DO)result++;
 }
 ADC_CS=1;
 return result;
}
////////////////////////End of function//////////////////////////////

使用特权

评论回复
板凳
chaser2008|  楼主 | 2008-6-4 13:54 | 只看该作者

还有这样的C语言程序

我孤陋寡闻,试试看,谢谢

使用特权

评论回复
地板
chaser2008|  楼主 | 2008-6-4 14:31 | 只看该作者

有问题

uint8 ReadAdc(uint8 ch)
编译时显示此行定义有错误, 请问怎么修改??

使用特权

评论回复
5
computer00| | 2008-6-4 15:49 | 只看该作者

倒塌了~~~你都没说你的开发环境是什么...

uint8是我自己定义的数据类型。

typedef unsigned char uint8;

使用特权

评论回复
6
chaser2008|  楼主 | 2008-6-4 16:43 | 只看该作者

呵呵,菜鸟多谅解关照

与MCS51连用,在WIN-TC编译不通??!!!

使用特权

评论回复
7
high| | 2008-6-5 04:56 | 只看该作者

为啥子一定要c

汇编也能被c调用. 而且,这个黑猫抓耗子比白猫厉害

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

23

帖子

0

粉丝
关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部