资源简介
数字电压表(adc0832+C语言源程序+protues仿真)
代码片段和文件信息
#include
#include
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
sbit ADCS =P3^4; //ADC0832 chip seclect
sbit ADDI =P1^1; //ADC0832 data in
sbit ADDO =P1^1; //ADC0832 data out
sbit ADCLK =P1^0; //ADC0832 clock signal
sbit S_1 = P2^4;
sbit S_2 = P2^5;
sbit S_3 = P2^6;
sbit S_4 = P2^3;
unsigned int Adc0832(unsigned char channel);
void delayms(unsigned char ms);
unsigned char PW[]={0X280XEE0X320XA20XE40XA10X210XEA0X200XA0};
/************
读ADC0832函数
************/
//采集并返回
unsigned int Adc0832(unsigned char channel)
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=channel&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿2
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=(channel>>1)&0x1;
_nop_();
_nop_();
ADCLK=0;//拉低CLK端形成下降沿3
ADDI=1;//控制命令结束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDO;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDO;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDO;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDO=1;//拉高数据端回到初始状态
dat<<=8;
dat|=ndat;
return(dat); //return ad data
}
void show(uchar p)
{
uchar ii1i2;
i1 = p/51;
i = (10*p) /51;
i2 = i % 10;
S_1 = 0;
S_2 = 1;
P0=PW[i1];
P05 = 0;
delayms(50);
S_1 = 1;
S_2 = 0;
P0=PW[i2];
delayms(50);
}
/*********************************************************/
// 延时子程序
/*********************************************************/
void delayms(unsigned char ms) {
unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}/*********************************************************/
int main(void)
{
while(1)
show(Adc0832(0));
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 749 2011-02-09 17:46 adc0832\STARTUP.OBJ
文件 5245 2011-02-09 17:46 adc0832\show.LST
文件 6376 2009-05-07 14:37 adc0832\STARTUP.A51
文件 1514 2011-02-09 17:50 adc0832\qqq.plg
文件 2280 2011-02-09 17:46 adc0832\show.c
文件 9385 2011-02-09 17:46 adc0832\show.OBJ
文件 9795 2011-02-09 17:46 adc0832\qqq
文件 14048 2011-02-09 17:46 adc0832\STARTUP.LST
文件 55 2011-02-09 17:46 adc0832\qqq.lnp
文件 9495 2011-02-09 17:46 adc0832\qqq.M51
文件 104962 2011-02-09 17:57 adc0832\数字电压表.DSN
....... 55315 2011-02-09 17:50 adc0832\qqq.uvopt
文件 1454 2011-02-09 17:46 adc0832\qqq.hex
文件 742 2011-02-09 17:57 adc0832\数字电压表.PWI
文件 105389 2011-02-09 17:56 adc0832\Last Loaded 数字电压表.DBK
....... 0 2011-02-09 11:58 adc0832\qqq_uvproj.bak
....... 13416 2011-02-09 12:21 adc0832\qqq.uvproj
....... 55315 2011-02-09 17:30 adc0832\qqq_uvopt.bak
目录 0 2011-02-09 08:46 adc0832
----------- --------- ---------- ----- ----
395535 19
- 上一篇:银行家算法c语言
- 下一篇:数据库管理系统原型开发C/C++
相关资源
- 原创:51单片机操作ds18b20ds1302,lcd1
- 51单片机驱动步进电机(含电路图和
- 51单片机DIY制作:旋转LED数字显示电子
- 微机接口课设 Proteus 8086 汽车控制系统
- 基于51单片机的12864液晶显示C语言源程
- 基于51单片机多节点RS485通信带Protue
- 正弦波产生C语言源程序代码
- ADC0832 C语言程序很简单的
- 基于keil5和protues仿真的智能温度控制
- 一个基于AD0808的模数转换电路及程序
- c语言源程序直接转换成流程图c语言流
- 10种数字滤波算法(C语言源程序)
- 单片机C语言应用100例_全部C语言源程
- 交通灯的PROTUES+Keil 4的仿真程序
- 单片机控制的可逆红外计数器
评论
共有 条评论