欢迎来到天天文库
浏览记录
ID:51186413
大小:30.00 KB
页数:2页
时间:2020-03-20
《项目三 模拟量输入输出通道接口设计图3_19程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(1)方案1(图3.19)的源程序#include#defineucharunsignedchar#defineuintunsignedint#defineAD1674_DATA1P0//定义P2和P0为A/D转换数据#defineAD1674_DATA2P2sbitAD1674_STS=P3^0;//定义AD1674的各个控制信号对应的引脚号sbitAD1674_12_8=P3^1;sbitAD1674_CS=P3^2;sbitAD1674_A0=P3^3;/*************AD1674的A/D转换子函数**
2、****/uintAD1674_ADC(){uintresult;//定义result存放A/D转换结果uchartemp1,temp2;AD1674_DATA1=0xff;AD1674_DATA2=0xff;AD1674_CE=0;//控制信号初始化AD1674_CS=1;AD1674_RC=1;AD1674_A0=0;//12位转换AD1674_CS=0;//片选信号有效AD1674_RC=0;//转换信号有效AD1674_CE=1;//片允许信号有效,启动转换while(AD1674_STS==0);//等待A/D转换结束AD167
3、4_12_8=1;//输出格式为12位AD1674_RC=1;//读信号有效temp1=AD1674_DATA1;temp2=(AD1674_DATA2)&0x0f;//12位数据的处理result=(temp2<<8)
4、temp1;AD1674_CS=1;//一个周期结束后,AD1674的CS端设置为高电平returnresult;//返回A/D转换结果}/**************延时子函数*************/voidSleep(ucharcount){uchari;while(count--!=0)for(i=0;i<25
5、5;i++);}/**************主函数************/voidmain(){unsignedlonginttt;while(1){tt=AD1674_ADC();//读取温度转换的数字量tt=tt*100/2007;//计算温度值,根据LM35的特性,温度每变化1°C对应的输出电//压为10mV,LM35输出的信号经过放大电路放大了4.9倍,//经过AD1674进行A/D转换得到数字量tt。//所以由tt可得到温度值=数字量tt/409.5/4.9*100if(tt>=50)//温度高于50°C,蜂鸣器报警{Buz
6、=~Buz;Sleep(1);}else//否则蜂鸣器不报警Buz=1;}}
此文档下载收益归作者所有