zenghua520 发表于 2014-11-19 13:25

itelectron 发表于 2014-3-5 22:49 static/image/common/back.gif
MOVA,31H                                       
      XRLA,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);
}

tcc8073 发表于 2014-11-19 15:27

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

jianhong_wu 发表于 2014-11-20 11:31

a15851404012 发表于 2014-11-18 20:18 static/image/common/back.gif
谢谢吴老师,刚开学习单片机,以前也没学过C能不能推荐下好的C教程,还有您的每一章节我都打印认真的反 ...
C语言的教程很多,都大同小异的,到书店随便买一本入门就可以了。谭浩强的是大家入门用的最多的。

jianhong_wu 发表于 2014-11-20 11:35

armxu 发表于 2014-11-18 21:11 static/image/common/back.gif
赶快出书吧!!!发打印出来好厚,只打印了一部分,二百多页。希望出书时程序也能打印,要分多本出,好出差 ...

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

jianhong_wu 发表于 2014-11-20 11:36

261854681 发表于 2014-11-19 08:06 static/image/common/back.gif
其实,吴工出书必定会火,大多数初学者会感受到吴工的**与真诚,至少,坛子里没发现第二人 ...

感谢夸奖和支持。

jianhong_wu 发表于 2014-11-20 11:36

tcc8073 发表于 2014-11-19 15:27 static/image/common/back.gif
我觉得楼主发的东西是有实际用处的,关键要看读的人怎么去理解,我做单片机,LINUX,上位机十多年了,我觉得有些 ...

感谢前辈的鼓励与支持。

guyuexibei 发表于 2014-11-25 20:19

jianhong_wu 发表于 2014-3-5 21:58 static/image/common/back.gif
第四节:累计定时中断次数使LED灯闪烁。

开场白:


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

jianhong_wu 发表于 2014-11-25 21:43

guyuexibei 发表于 2014-11-25 20:19 static/image/common/back.gif
TH0=0xf8;   //重装初始值(65535-2000)=63535=0xf82f
TL0=0x2f;
初值装载应该是65536……


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

jie_wu 发表于 2014-11-28 10:37

jianhong_wu 发表于 2014-3-7 12:35 static/image/common/back.gif
第二十三节:独立按键控制跑马灯的速度。

开场白:


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

armxu 发表于 2014-11-28 21:23

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

你太厉害了!

jianhong_wu 发表于 2014-11-29 10:13

jie_wu 发表于 2014-11-28 10:37 static/image/common/back.gif
鴻哥:能否直接將代碼粘貼出來呢?
公司電腦看不了簡體字,下載打開全是亂碼。。。。
前面寫得太棒了,我 ...

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

fang316 发表于 2014-11-29 12:31

有需求的话我可以来整理一下

fang316 发表于 2014-11-29 12:31

本帖最后由 fang316 于 2014-11-29 12:50 编辑

我已经整理了一些了


angus118 发表于 2014-11-30 15:15

tokuhou 发表于 2014-11-30 15:44

好东东啊   相当不错的

jie_wu 发表于 2014-12-3 10:20

if(ucRcregBuf==0xeb&&ucRcregBuf==0x00&&ucRcregBuf==0x55)//数据头eb 00 55的判断

73.               {

74.                              if(ucRcregBuf==0x01&&ucRcregBuf==0x02)//有效数据01 02的判断

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

jstiger 发表于 2014-12-3 17:20

果然是好东东

jianhong_wu 发表于 2014-12-3 18:30

fang316 发表于 2014-11-29 12:31 static/image/common/back.gif
我已经整理了一些了

感谢你的整理和分享。

jianhong_wu 发表于 2014-12-3 18:32

jie_wu 发表于 2014-12-3 10:20 static/image/common/back.gif
if(ucRcregBuf==0xeb&&ucRcregBuf==0x00&&ucRcregBuf==0x55)//数据头eb 00 55的判断

73.                ...

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

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);
页: 21 22 23 24 25 26 27 28 29 30 [31] 32 33 34 35 36 37 38 39 40
查看完整版本: 从业将近十年!手把手教你单片机程序框架(连载)