完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
uint adread()
{ uchar tlccon,adi=0; uint k=0x0000; P0_1=~P0_1; adi=0; tlccon=0x00; k=0x00; tlceoc=1; tlccs=1; tlccs=0; tlcclk=0; if(tlcsdo) { k++; P0_2=~P0_2; } k=k<<1; _nop_(); _nop_(); P0_3=~P0_3; for(adi=0;adi<0x0c;adi++) { P0_4=~P0_4; if(adi<8) { tlcsdi=((tlccon>0x7f)?1:0); tlccon=tlccon<<1; } if(adi<11) { tlcclk=1; _nop_(); _nop_(); tlcclk=0; (tlcsdo)?(++k):0; k=k<<1; _nop_(); _nop_(); } } P0_5=~P0_5; k=k>>1; while(!tlceoc); tlccs=1; return k; } void main() { float c=0,n=881.9; SP=0x5f; LCD_Init(); clrscr(0,8,0,128); P0=0xff; while(1) { num_put(0x00,0x00,n); dra(0x00,0x40,chinese,16); n=adread(); P0_0=~P0_0; num_put(0x02,0x00,n); for(c=0;c<1000;c++); } } 程序如上,adread()是这个芯片的程序,nuo_put()是显示程序,dra在这里没用, 我的问题是ad转换程序中for语句只执行一遍,后面调用的时候根本进不去for循环里面,里面有P0_4取反(P0口接的是LED灯),灯根本不闪,不知道为什么进不到for循环里面去其它的灯P0_0-----P0_5都闪(除了P0_4)。为什么,?每次调用这个adread()函数,里面的参数adi都赋值成0了啊? 附上仿真图
|
|
相关推荐
3 个讨论
|
|
|
|
|
|
偏置电路与宽带偏置电路(Bias-Tee)-----电感器比较与选择
1786 浏览 0 评论
5645 浏览 0 评论
3236 浏览 2 评论
6233 浏览 2 评论
4120 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:37 , Processed in 0.545545 second(s), Total 40, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号