单片机电压测量后与设定值比较控制继电器输出

单片机电压测量后与设定值比较控制继电器输出

ID:11008248

大小:32.50 KB

页数:8页

时间:2018-07-09

单片机电压测量后与设定值比较控制继电器输出_第1页
单片机电压测量后与设定值比较控制继电器输出_第2页
单片机电压测量后与设定值比较控制继电器输出_第3页
单片机电压测量后与设定值比较控制继电器输出_第4页
单片机电压测量后与设定值比较控制继电器输出_第5页
资源描述:

《单片机电压测量后与设定值比较控制继电器输出》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、单片机电压测量后与设定值比较控制继电器输出#include#include"i2c.h"//--定义使用的IO--//#defineGPIO_DIGP0sbitLSA=P2^2;sbitLSB=P2^3;sbitLSC=P2^4;sbitJDQ=P1^4;//继电器控制ucharoldkey=0xff;//保按键接口状态sbitkey1=P3^7;//定义按键1sbitkey2=P3^6;//定义按键2//--定义PCF8591的读写地址--//#defineWRITEADDR0x90//写地

2、址#defineREADADDR0x91//读地址//--定义全局变量--//unsignedcharcodeDIG_CODE[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码unsignedcharDisplayData[8];//用来存放要显示的8位数的值unsignedintDSU=310;//上线温度unsi

3、gnedintDSD=300;//下线温度//--声明全局函数--//voidDigDisplay();//动态显示函数voidPcf8591SendByte(unsignedcharchannel);unsignedcharPcf8591ReadByte();voidPcf8591DaConversion(unsignedcharvalue);voidDigDisplay();ucharReadKey(void);//读键值返回/****************************************

4、****************************************函数名:main*函数功能:主函数*输入:无*输出:无*******************************************************************************/voidmain(){unsignedintadNum;floatvalue;while(1){switch(ReadKey()){//读取键值做以下相应处理case1:++DSU;++DSD;//1键显示内容加1brea

5、k;case2:--DSU;--DSD;//2键显示内容减1break;}//--显示电位器电压--//Pcf8591SendByte(0);//发送电位器转换命令adNum=Pcf8591ReadByte()*2;//将转换结果读走//--我们8591每读取到一个1就表示5/256V,所以要知道电压值就乘以0.01953--//value=adNum/2*0.01953;//转为电压值adNum=value*100;//保留两位小数if(adNum<=DSD)//低于下线温度关闭继电器{JDQ=1;}if(a

6、dNum>=DSU)//达到上线温度启动继电器{JDQ=0;}DisplayData[0]=DIG_CODE[adNum/1000];//发送显示数据DisplayData[1]=DIG_CODE[adNum%1000/100]

7、0x80;//或上0x80是加小数点DisplayData[2]=DIG_CODE[adNum%100/10];DisplayData[3]=DIG_CODE[adNum%10];DisplayData[4]=DisplayData[0];DisplayData[5]=DIG_CODE

8、[((DSU+DSD)/2)/100]

9、0x80;//或上0x80是加小数点DisplayData[6]=DIG_CODE[((DSU+DSD)/2)%100/10];DisplayData[7]=DIG_CODE[((DSU+DSD)/2)%10];DigDisplay();//--DA输出--//Pcf8591DaConversion(adNum/2);//DAC数模转换}}/******************************************************************

10、**************函数名:Pcf8591SendByte*函数功能:写入一个控制命令*输入:channel(转换通道)*输出:无*******************************************************************************/voidPcf8591SendByte(unsignedcharchannel){I2C_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。