阅读:1618回复:3
lsn_061 请进,帮忙注释以下这个程序,我看不懂。
我也刚学c51。
/************************************** 名称:read2543 功能:TLC2543驱动模块 输入参数:port通道号 输出参数:ad转换值 *************************************/ uint read2543(uchar port) { uint ad=0,i; CLOCK=0; _CS=0; port<<=4; for(i=0;i<12;i++) { if(D_OUT) ad|=0x01; D_IN=(bit)(port&0x80); CLOCK=1; delay(3); CLOCK=0; delay(3); port<<=1; ad<<=1; } _CS=1; ad>>=1; return(ad); } |
|
|
沙发#
发布于:2005-01-17 18:23
不好意思....灌水去了,没看到
功能好像是一个处理器外连一个2543(没用过)12位的A/D器 我也刚学c51。 瞎猜,指正.............嘻嘻 结论:8通道的12位A/D装换器 [编辑 - 1/17/05 by lsn_061] |
|
|
板凳#
发布于:2005-01-17 19:58
哈哈,我不明白的你也不明白阿!
if(D_OUT) ad|=0x01; ;D_OUT好像是定义了个I/O,就叫DATA吧 D_IN=(bit)(port&0x80);;仿真一下看看结果,我一时半不明白 我就这两行不明白! 我没C语言仿真器! |
|
|
地板#
发布于:2005-01-17 20:30
哈哈,我不明白的你也不明白阿! 赫赫.....我很少用c....你到www.manley.com.cn上下一个吧// 支持软件仿真// if(D_OUT) ad|=0x01; ;D_OUT好像是定义了个I/O,就叫DATA吧 ad<<=1; ;左移一位那就是8个通道3位+12位AD了 这两条语句加起来就是封装数据了 因为D_IN刚开始比ad多移了4位,那最后应该是AD转换的最高位....代表数据的正负的意思,哥哥我没看spei.....为难了..给分吧 |
|
|