完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ADN2850为一个数字电位器,我用STC89C52来控制,用串口发送它的阻值,我编写了一个C语言的程序,可是无法起到改变阻值的作用。下面是我自己写的程序,只写了发送数据控制1的阻值发生变化,可是无论串口发送何值,W1引脚和B1引脚间的电阻都不发生变化,求大神指点迷津,万分感谢!
//以十六进制的形式输入2850的电阻值 #include #include #define uint unsigned int #define ulint unsigned long int #define uchar unsigned char ***it cs=P1^4; // 将p1.4口模拟片选 ***it sclk=P1^5;// 将p1.5口模拟时钟输出 ***it sdo=P1^7;// 将p1.7口模拟主机输出 ***it tec_en=P2^5; ***it sdi=P2^6;// 将p2.6口模拟主机输入 ulint b,c,d,h; uchar e; uchar buffer[2]; /**********简单的延时函数***************/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /**********adn2850初始化函数***************/ void adn_init() { sclk=0; sdi=1; sdo=1; } /**********串口发送数据函数***************/ char comsenf() { uint a; TMOD=0x20;//设置定时器1为工作方式2 TH1=0xfd; TL1=0xfd;//给T1赋初值 TR1=1;//打开定时器1 REN=1;//启动串行口接受数据 SM0=0; SM1=1;//设定串行口为工作方式1 EA=1; ES=1; if(RI==1)//判断是否接受到停止位 { a++; for(a=0;a<2;a++) { RI=0;//取消接受中断申请 buffer[a]=SBUF; } return buffer[a]; } } /**********从机接收数据函数************/ void spi_write(ulint dat)//上升沿输入sdi,下降沿输出sdo { uchar i; adn_init(); while(cs==0) //检测是否有数据的传输 { for(i=0;i<24;i++) // 循环24次 { sdi=(dat&0x800000); // dat最高位输出到sdi dat<<=1; // 低一位移位到最高位 sclk=1;//上升沿写入数据 delay(5); //等待数据的稳定 sclk=0; // sclk置低 delay(5); } } } /***********主程序**************/ void main() { tec_en=1; cs=0; comsenf(); b=0xb0;//将数据写入RDAC1 c=(b<<14)|buffer[0];//将b作高8位和buffer[0]作低8位合成22位 e=buffer[1]<<6;//将buffer[1]的低2位移到高2位 d=(c<<8)|e;//将c作高22位和buffer[1]作低2位合成24位 h=d<<2;//将合成的24位放于32位的前24位 spi_write(h); spi_write(0x200000);// 将RDAC1寄存器数据存储到EEMEM1中。 } |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
72 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
509 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
546 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
545 浏览 0 评论
1008 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:37 , Processed in 0.602119 second(s), Total 69, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号