完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
在仿真时为什么老是出现无论给一个多大电阻值,数码管显示的总是一个不变的数,可是此时的ad转换后的值也在变。想问大家这是什么问题 #include #include #define uint unsigned int #define uchar unsigned char uint datah,datal,i,ad,b; uint date1; char a; ***it CLOCK=P2^1; ***it CS=P2^2; ***it EOC=P2^0; ***it ADIN=P2^3; ***it DOUT=P2^4; int duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int wei[]={0x06,0x05,0x03}; char zhong[]={0,0,0}; void init_ding() //定时器初始化 { TMOD=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; } uint readTLC1543(uchar port) // ad转换函数 { CLOCK=0; CS=0; EOC=1; port<<=4; for(i=0;i<4;i++) //进行通道的选择 { ADIN=(bit)(port&0x80); CLOCK=1; CLOCK=0; port<<=1; } for(i=0;i<6;i++) //产生6个时钟脉冲,进行数据的采样 { CLOCK=1; CLOCK=0; } CS=1; delay(10); CS=0; for(i=0;i<2;i++) //读出高两位数据 { CLOCK=1; datah<<=1; if(DOUT)datah|=0x01; CLOCK=0; } for(i=0;i<8;i++) //读出后八位数据 { CLOCK=1; datal<<=1; if(DOUT)datal|=0x01; CLOCK=0; } EOC=0; CS=1; ad=datah; ad<<=8; ad|=datal; return(ad); } void main() { init_ding(); while(1) { date1=readTLC1543(0x01); zhong[2]=date1%10; zhong[1]=date1%100/10; zhong[0]=date1/100; } } void timer0() interrupt 1 //定时器中断函数 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; P3=0; P0=duan[zhong[a]]; P3=wei[a]; a++; if(a==3) a=0; } |
|
相关推荐
3个回答
|
|
急求!谢谢大家了
|
|
|
|
只是不希望沉了!
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11764 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 06:51 , Processed in 0.556885 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号