欢迎来到天天文库
浏览记录
ID:51186411
大小:25.50 KB
页数:3页
时间:2020-03-20
《项目三 模拟量输入输出通道接口设计图3_39程序.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(2)方案2(图3.39)的程序设计程序设计#include#include#defineucharunsignedchar#defineuintunsignedint#definekey_inP1//对P1口进行宏定义sbitsclk=P3^0;//定义TLC5615的3个引脚sbitcs=P3^1;sbitdin=P3^2;voidTLC5616(unsignedintdat);//TLC5615的DA转换子函数声明voiddelay(unsignedintn);//延时子函数声明uintdac_data=0;//D/A转换的数字量
2、/***TLC5615的D/A转换子函数*****/voidTLC5616(uintdat){uinttemp;uchari;temp=dat<<4;//取10位有效数据cs=1;din=1;sclk=0;cs=0;//CS为低电平时,sclk上升沿将din数据移入16位移//位寄存器for(i=0;i<12;i++)//有2位为填充位{if(temp&0x8000)din=1;elsedin=0;temp=temp<<1;sclk=1;_nop_();sclk=0;}cs=1;//上升沿将16位移位寄存器的10位有效数据所存在10位DAC寄存器中//CS的上升沿和下降沿都必
3、须发生在sclk为低电平的期间}/****12MHz晶振,延时i毫秒的延时子函数****/voiddelay(uinti){uintk,j;for(k=0;k
4、3)//如果还是有键按下{while((key_in&0x03)!=0x03);//等待按键释放key_value=key_value&0x03;//以下程序判断是哪个按键按下if(key_value==0x02)//如果是"+"键按下,函数返回0return0;else//如果是"-"键按下,函数返回1return1;}else//无键按下,函数返回0xffreturn0xff;}else//无键按下,函数返回0xffreturn0xff;}/***主函数*****/voidmain(){uinttemp;ucharkeystates;while(1){keystates=
5、key_scan();if(keystates==0)//如果按下"+"键{if(dac_data!=540)//数字量在0~540范围内加5dac_data=dac_data+5;}if(keystates==1)//如果按下"-"键{if(dac_data!=0)//数字量在0~540范围内减5dac_data=dac_data-5;}temp=dac_data<<2;//10位的数据处于TLC5615移位寄存器中bit11~bit2TLC5616(temp);//D/A转换实现直流电源的步进控制}}
此文档下载收益归作者所有