//ad转换子程序
//返回的是12位的int型数据
//max186通道ch0对应的是0,它是max186第1脚
//max186通道ch1对应的是1,它是max186第2脚
//max186通道ch2对应的是2,它是max186第3脚
//max186通道ch3对应的是3,它是max186第4脚
//max186通道ch4对应的是4,它是max186第5脚
//max186通道ch5对应的是5,它是max186第6脚
//max186通道ch6对应的是6,它是max186第7脚
//max186通道ch7对应的是7,它是max186第8脚
//比如:int ch3;
// ch3=ad186(3);
//ch3就是从max186的第4脚输入的模拟电压信号大小,单位是mv,如果此时max186的第4脚(ch4)——输//入1.000伏的电压,则返回0x3E8H(就是十进制的1000)。
//同理:ad186(4)表示的是从第5脚(即ch4)输入的信号。(参看附图)
uint ad186(uchar ss)
{
uchar i,kki,s;
uint i_data,i_datatransfer,addata;
switch(ss)
{
case 0: s=0x8E;break;
case 1: s=0xCE;break;
case 2: s=0x9E;break;
case 3: s=0xDE;break;
case 4: s=0xAE;break;
case 5: s=0xEE;break;
case 6: s=0xBE;break;
case 7: s=0xFE;break;
default: s=0xAE;break;
}
CS=1;
SCLK=0;
CS=0;
SCLK=0;
for(i=0;i<8;i++)
{
uchar adaddresstransfer;
adaddresstransfer=s;
adaddresstransfer=(adaddresstransfer>>(7-i))&0x01;
DIN=adaddresstransfer;
for(kki=0;kki<2;kki++);
SCLK=1;
for(kki=0;kki<2;kki++);
SCLK=0;
}
CS=1;
for(i=0;i<20;i++);
CS=0;
SCLK=1;
for(i=0;i<12;i++)
{
SCLK=1;
for(kki=0;kki<2;kki++);
SCLK=0;
for(kki=0;kki<2;kki++);
i_datatransfer=DOUT;
i_datatransfer=i_datatransfer<<(11-i);
i_data=i_data|i_datatransfer;
}
addata=i_data;
for(i=0;i<4;i++)
{
SCLK=1;
for(kki=0;kki<2;kki++);
SCLK=0;
for(kki=0;kki<2;kki++);
}
CS=1;
i_data=i_datatransfer=0;
delay(5);
return(addata);
}
读取MAX188/MAX186的C51程序
5星 · 超过95%的资源 需积分: 10 79 浏览量
2011-12-05
14:00:26
上传
评论 1
收藏 47KB RAR 举报
南山学子
- 粉丝: 0
- 资源: 6
最新资源
- 基于python实现的三次样条插值和均值插值法实现
- Python语言教程2-python批量图片大小处理-多文件夹
- Python语言教程1-python批量图片重命名,将后缀某几个不想要的字去除
- Space Combat Kit 太空战斗套件Unity游戏开发插件资源unitypackage C#
- Universal Device Preview 通用设备预览Unity游戏开发插件资源unitypackage
- Paladin Anim Set 圣骑士动画集Unity游戏动作动画插件资源unitypackage
- 计算机财务管理期末考报表部分题目及答案.doc
- 计算机软件维护论文.doc
- 计算机软件著作权授权书.docx
- 计算机键盘教学案例.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈