解释下C程序

[复制链接]
3361|7
 楼主| zxser09 发表于 2010-1-29 22:43 | 显示全部楼层 |阅读模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit sda=P1^4;
sbit scl=P1^5;
sbit cs=P1^6;
uchar bpq=0;
uchar bdata bpqh;//bdata 是表示可位寻址的内存空间?具体什么意思?
sbit m7=bpqh^7;
uchar bdata bpql;
sbit l7=bpql^7;
void tlc()
{
uchar i;
cs=0;
for(i=0;i<2;i++)
{
  if(m7)
  {
   sda=1;
   scl=1;
   scl=0;
  }
  else
  {
   sda=0;
   scl=1;
   scl=0;
  }
  bpqh<<=1;
}
for(i=0;i<8;i++)
{
  if(l7)
  {
   sda=1;
   scl=1;
   scl=0;
  }
  else
  {
   sda=0;
   scl=1;
   scl=0;
  }
  bpql<<=1;//这是什么意思?
}
for(i=0;i<2;i++)
{
  sda=0;
  scl=1;
  scl=0;
}
cs=1;
scl=0;
   
}
void delay()
{
uint i;
for(i=0;i<4105;i++);
}
void main()
{
uint i;
while(1)
{
  i=0;
  bpqh=i/bpq;//与bpq 怎么拉上关系了?
  bpql=i%bpq;
  bpqh<<=6;//这里什么意思
  tlc();
  delay();delay();delay();delay();
  i=1023;//为什么赋这个值?
  bpqh=i/bpq;
  bpql=i%bpq;
  bpqh<<=6;
  tlc();
  delay();delay();delay();delay();
  
  
}
}
望大虾解释下。
gaohq 发表于 2010-1-29 23:19 | 显示全部楼层
建议要抄也抄个好点的。
 楼主| zxser09 发表于 2010-1-30 00:23 | 显示全部楼层
juelang 发表于 2010-1-30 01:31 | 显示全部楼层
哦 ,这程序会把人看疯的,怎么麽一点书写格式呢
juelang 发表于 2010-1-30 01:41 | 显示全部楼层
bdata:指的是51片内RAM的20H~2FH(位寻址区),就是说把bpqh这个变量存储在51片内的位寻址区,所谓位寻址就是说这个变量只能取值为0或1,

bpql<<=1;//这是什么意思?   建议你看哈C语言数,这就相当于bpql=bpql<<1,这你要是还看不懂的话,我就无言了

i=1023;//为什么赋这个值?,你没有附带电路图,你也么说你这个程序是干什么的,我估计只有神仙才知道为撒要赋这个值,我也是新手,才学51,给你个建议了,下次写程序带上注释,要不一般不会有人回复你的贴的
呵呵
icmap 发表于 2010-1-30 20:11 | 显示全部楼层
i=0;
  bpqh=i/bpq;  //既然 i 已经固定为0,为什么不直接写为 bpqh=0?
  bpql=i%bpq;  //同上问

这代码够差的。
zhuang1127 发表于 2010-2-2 20:02 | 显示全部楼层
反质子 发表于 2010-2-3 15:19 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

81

主题

208

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部