欢迎来到天天文库
浏览记录
ID:51186410
大小:29.50 KB
页数:2页
时间:2020-03-20
《项目三 模拟量输入输出通道接口设计图3_20程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(2)方案2(图3.20)的源程序#include#defineucharunsignedchar#defineuintunsignedintsbitTLC549_SCLK=P1^5;//定义P1.5引脚位名称为TLC549_SCLKsbitTLC549_SDO=P1^3;//定义P1.3引脚位名称为TLC549_SDOsbitTLC549_CS=P1^4;//定义P1.4引脚位名称为TLC549_CSsbitBuz=P3^0;//定义P3.0引脚位名称为蜂鸣器的控制引脚/**********TLC549的
2、A/D转换程序*******************/ucharTLC549_data(){ucharresult;//定义result存放A/D转换结果uchari=0,j;TLC549_CS=1;//TLC549的CS引脚输出高电平,为A/D转换做准备TLC549_CS=0;//TLC549的CS引脚输出低电平,开始一个A/D转换周期result=0;//A/D转换结果清零TLC549_SDO=1;//51单片机读数据时得先把管脚置1for(i=0;i<8;i++){if(TLC549_SDO==1)result=res
3、ult
4、(0x80>>i);//从高位到低位依次获取A/D转换的结果TLC549_SCLK=1;TLC549_SCLK=0;//输出TLC549的下降沿,从SDO端送出一位A/D转换结果for(j=0;j<2;j++);//下降沿产生后,400ns后新的位被写到数据线上,所以需延时}TLC549_CS=1;//一个周期结束后,TLC549的CS端设置为高电平returnresult;//返回A/D转换结果}/************延时子函数*******************/voidSleep(ucharcount){
5、uchari;while(count--!=0)for(i=0;i<255;i++);}/************主函数*******************/voidmain(){uinttt;while(1){tt=TLC549_data();//读取温度转换的数字量tt=tt*100/250;//计算温度值,根据LM35的特性,温度每变化1°C对应的输出电压//为10Mv,LM35输出的信号经过放大电路放大了4.9倍,经过//TLC549进行A/D转换得到数字量tt。//所以由tt可得到温度值=数字量tt/51/4.9
6、*100if(tt>=50)//温度高于50°C,蜂鸣器报警{Buz=~Buz;Sleep(1);}else//否则蜂鸣器不报警Buz=1;}}
此文档下载收益归作者所有