打印
[51单片机]

从业将近十年!手把手教你单片机程序框架(连载)

[复制链接]
楼主: jianhong_wu
手机看帖
扫描二维码
随时随地手机跟帖
601
itelectron 发表于 2014-3-5 22:49
MOV  A,31H                                       
        XRL  A,41H                       ...

感觉可以有多种方法;
第一种;
uint a31, a31hContents;
uint a41hContents,a40hContents;
uint a30 ,a30hContents;


a31=a31hContents;
a31^=a41hContents;
if(--a31==1)//这个jnz指令是否为1才跳转?不是(--a31>0)
{
  if(--a31==0)
     p1_0=1;
  else
   {
     40h=a30hContents;
     41hContents=a31hContents;
     p1_0=1;
   }
}
else
{
  a30=a30hContents;
  a30^=a40hContents;
  if(--a30==0)
    p1_0=1;
  else
    {
     40h=a30hContents;
     41hContents=a31hContents;
     p1_0=1;
    }
  
}


第二种;
//uint a31hContents,a41hContents,a40hContents,a;
void cal(uint b)
{
   if(b--)
   {
     a40hContents=30hContents;
     a41hContents=31hContents;
   }
   p_0=1;

}

a=a31hContents;
a^=a41hContents;

if(--a==1);///或(--a>0)
cal(a);
else
{
a=30hContents;
a^=a41hContents;
cal(a);
}

使用特权

评论回复
602
tcc8073| | 2014-11-19 15:27 | 只看该作者
我觉得楼主发的东西是有实际用处的,关键要看读的人怎么去理解,我做单片机,LINUX,上位机十多年了,我觉得有些地方说的对我来说都有很多领悟,每个人都有每个人的观点,做技术的没有必要去讨论技术之外的东西,对自己有用的就吸收,觉得没有作用也不需要说那么多,什么技术对人特定的人群都是有作用的,多看,多想,总会有感悟的,做技术,如果真的想做,我觉得那就是做大老学到老,武功再高,也怕菜刀,武功再好,板砖撂刀,再厉害的人都有缺点,多听多看,也能学到不少东西.

使用特权

评论回复
603
jianhong_wu|  楼主 | 2014-11-20 11:31 | 只看该作者
a15851404012 发表于 2014-11-18 20:18
谢谢吴老师,刚开学习单片机,以前也没学过C能不能推荐下好的C教程,还有您的每一章节我都打印认真的反 ...

C语言的教程很多,都大同小异的,到书店随便买一本入门就可以了。谭浩强的是大家入门用的最多的。

使用特权

评论回复
604
jianhong_wu|  楼主 | 2014-11-20 11:35 | 只看该作者
armxu 发表于 2014-11-18 21:11
赶快出书吧!!!发打印出来好厚,只打印了一部分,二百多页。希望出书时程序也能打印,要分多本出,好出差 ...

书稿计划要到明年下半年才开始整理。

使用特权

评论回复
605
jianhong_wu|  楼主 | 2014-11-20 11:36 | 只看该作者
261854681 发表于 2014-11-19 08:06
其实,吴工出书必定会火,大多数初学者会感受到吴工的**与真诚,至少,坛子里没发现第二人 ...

感谢夸奖和支持。

使用特权

评论回复
606
jianhong_wu|  楼主 | 2014-11-20 11:36 | 只看该作者
tcc8073 发表于 2014-11-19 15:27
我觉得楼主发的东西是有实际用处的,关键要看读的人怎么去理解,我做单片机,LINUX,上位机十多年了,我觉得有些 ...

感谢前辈的鼓励与支持。

使用特权

评论回复
607
guyuexibei| | 2014-11-25 20:19 | 只看该作者
jianhong_wu 发表于 2014-3-5 21:58
第四节:累计定时中断次数使LED灯闪烁。

开场白:

TH0=0xf8;   //重装初始值(65535-2000)=63535=0xf82f
TL0=0x2f;
初值装载应该是65536……
吧?

使用特权

评论回复
608
jianhong_wu|  楼主 | 2014-11-25 21:43 | 只看该作者
guyuexibei 发表于 2014-11-25 20:19
TH0=0xf8;   //重装初始值(65535-2000)=63535=0xf82f
TL0=0x2f;
初值装载应该是65536……

对。应该是65536。我搞错了。

使用特权

评论回复
609
jie_wu| | 2014-11-28 10:37 | 只看该作者
jianhong_wu 发表于 2014-3-7 12:35
第二十三节:独立按键控制跑马灯的速度。

开场白:

鴻哥:能否直接將代碼粘貼出來呢?
公司電腦看不了簡體字,下載打開全是亂碼。。。。
前面寫得太棒了,我一口氣看到這,突然看不了了~~~
謝謝了!!

使用特权

评论回复
610
armxu| | 2014-11-28 21:23 | 只看该作者
jie_wu 发表于 2014-11-28 10:37
鴻哥:能否直接將代碼粘貼出來呢?
公司電腦看不了簡體字,下載打開全是亂碼。。。。
前面寫得太棒了,我 ...

你太厉害了!

使用特权

评论回复
611
jianhong_wu|  楼主 | 2014-11-29 10:13 | 只看该作者
jie_wu 发表于 2014-11-28 10:37
鴻哥:能否直接將代碼粘貼出來呢?
公司電腦看不了簡體字,下載打開全是亂碼。。。。
前面寫得太棒了,我 ...

其实我也想直接把代码贴出来。但是论坛系统有个限制的,代码太多的时候必须打包成附件才能上传,望谅解。

使用特权

评论回复
612
fang316| | 2014-11-29 12:31 | 只看该作者
有需求的话我可以来整理一下

使用特权

评论回复
613
fang316| | 2014-11-29 12:31 | 只看该作者
本帖最后由 fang316 于 2014-11-29 12:50 编辑

我已经整理了一些了


使用特权

评论回复
614
angus118| | 2014-11-30 15:15 | 只看该作者

使用特权

评论回复
615
tokuhou| | 2014-11-30 15:44 | 只看该作者
好东东啊   相当不错的

使用特权

评论回复
616
jie_wu| | 2014-12-3 10:20 | 只看该作者
if(ucRcregBuf[uiRcMoveIndex+0]==0xeb&&ucRcregBuf[uiRcMoveIndex+1]==0x00&&ucRcregBuf[uiRcMoveIndex+2]==0x55)  //数据头eb 00 55的判断

73.               {

74.                              if(ucRcregBuf[uiRcMoveIndex+3]==0x01&&ucRcregBuf[uiRcMoveIndex+4]==0x02)  //有效数据01 02的判断

鸿哥:这一段不太明白.能提供一些参考资料吗?
谢谢

使用特权

评论回复
617
jstiger| | 2014-12-3 17:20 | 只看该作者
果然是好东东

使用特权

评论回复
618
jianhong_wu|  楼主 | 2014-12-3 18:30 | 只看该作者
fang316 发表于 2014-11-29 12:31
我已经整理了一些了

感谢你的整理和分享。

使用特权

评论回复
619
jianhong_wu|  楼主 | 2014-12-3 18:32 | 只看该作者
jie_wu 发表于 2014-12-3 10:20
if(ucRcregBuf==0xeb&&ucRcregBuf==0x00&&ucRcregBuf==0x55)  //数据头eb 00 55的判断

73.                ...

这个也没有什么参考资料。我的代码已经尽我最大努力加了注释,剩下的要靠个人去领悟它。

使用特权

评论回复
620
lsc201100| | 2014-12-5 09:50 | 只看该作者
P32PM,P33PM,P17PM,P16PM,P31PM;
        delay_10us(5);
  io_32=1;io_33=1;io_16=1;io_17=1;io_31=0;io_14=1;io_13=1;io_21=1;io_37=1;
        nop;nop;nop;nop;nop;nop;
        if(key_pcs<255) key_pcs++;        //检测次数       
        nop;nop;nop;
        P32IM,P33IM,P17IM,P16IM;
        nop;nop;nop;nop;nop;nop;
        if(io_32==0)
        {
          if(key_pcs==6)  key_val=1; //ckey_power;
        }
        else if(io_33==0)
        {
                if(key_pcs==5)  key_val=2;   //TIMER 时间=5*4MS,判为一次按键
                else{
                         if(fbsettime)                         //是连按吗?
                         {
                           if(key_pcs==200)           //69-5=64,大约0.25S连键加一
                           {
                                 key_val=2; key_pcs=6;
                                }
                         }
                   else if(key_pcs==250)         //到了一秒,判为连按键有效
                   {
                     fbsettime=1;         //置连键标志位
                         key_val=2;                           //时间加一标志
                         key_pcs=6;                           //检测次数从6开始
                   }
                  }
        }
        else if(io_17==0)
        {
                if(key_pcs==5)  key_val=3;     //SETTEMP
                else{
                         if(fbsettemp)
                         {
                           if(key_pcs==200)
                           {
                                 key_val=3; key_pcs=6;
                                }
                         }
                   else if(key_pcs==250)
                   {
                    fbsettemp=1;key_val=3;key_pcs=6;
                   }
                  }
        }
   else if(io_16==0)
        {
                if(key_pcs==5)  key_val=4;     //SETMODE
        }
         else
         { key_pcs=0;                   //清检测次数变量
           fbsettime=0;                          //清连键标志位
           fbsettemp=0;                          //清连键标志位
         }
        P32PM,P33PM,P17PM,P16PM,P31PM;   //P2CFG0=0x05;
   return(key_val);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则