回 帖 发 新 帖 刷新版面

主题:60岁的我学编程--别笑我,我用笨办法入门! (续)[回复都加分]

说出来大家可别笑我,前面我讲了有关亮灯,闪灯和流水的单个程序,后来也学了数码管静态点亮的有关程序,期间也学了调用了程序,有了这几项,为了加深我对学习的印象,我在想能不能把二个程序放在一起呢?这好比做房子,我先做了一间房,后来我想在原来的基础上再加一间呢!不能说把原来的房子折掉,再重新建吧,这样不是有很大的浪费吗!如是,我把单只LED的程序与静态闪亮的数码管程序和在一起,看看能不能二种功能不能二种功能同时实现。
   我们知道,在改造房子时,以有的通道是可以利用,谁也不会重新再建一个通道,这不是浪费吗!有了这种想把我就开始把二个不同的程序进行合并;
    先看一只发光管闪灯的小程序;
   

    #include<reg52.h>             //1
#define uint unsigned int         //2
#define uchar unsigned char       //3
sbit D1=P1^0;                     //4
/*void delay();*/           //5
void delay(uint);//5
void main()  //6
{
while(1)//7
{
D1=0;//8
delay(10);//9
D1=1;      //10
delay(15);//11
}
}
void delay(uint z)//12
{
    uint x,y;//13
    for(x=100;x>0;x--)//14
      for(y=z;y>0;y--);//15
}
以下是数码管静态点亮的小程序;
  #include<reg52.h>            //1
#define uint unsigned int    //2    
#define uchar unsigned char    //3    
sbit du=P2^6;                //4    
sbit we=P2^7;                //5    
uchar a;
                //6    
uchar code bable[]={        //7    
0x3f,0x06, 0x5b, 0x4f,         
0x66, 0x6d, 0x7d, 0x07,      
0x7f,0x6f,0x77,  0x7c,        
0x39, 0x5e,0x79,0x71,};  
 
void delay (uint z);        //8    
void main()                    //9    
{
we=1;                    //10
P0=0xc0;
we=0;                    //11
while(1)
{
    for(a=0;a>16;a++);//12
    {
        du=1;               //13
        P0=bable[a];      //14
    du=0;                //15
    delay(100);          //16
    }
}

}
void delay (uint z)              //17
{
    uint x,y;                //18
    for(x=z;x>0;x--)         //19
     for(y=100;y>0;y--);     //20
}

   下面是将上面二个小程序合成的一个程序;“发光管闪亮和数码管静态显示程序”

     #include<reg52.h>//1
#define uint unsigned int//2
#define uchar unsigned char//3
sbit D1=P1^0;
sbit du=P2^6;                //4    
sbit we=P2^7;                //5    
uchar a;

uchar code bable[]={        //7    
0x3f,0x06, 0x5b, 0x4f,         
0x66, 0x6d, 0x7d, 0x07,      
0x7f,0x6f,0x77,  0x7c,        
0x39, 0x5e,0x79,0x71,}; 
void delay(uint);
void delay (uint z);
void main()
{    we=1;                    //10
P0=0xc0;
we=0;
while(1)
{
    {
    for(a=0;a>16;a++);//12
    {
        du=1;               //13
        P0=bable[a];      //14
    du=0;                //15
    delay(100);          //16
    }
}
D1=0;
delay(10);
D1=1;
delay(15);
}
}
void delay(uint z)
{
    uint x,y;
    for(x=100;x>0;x--)
      for(y=z;y>0;y--);
}


   现在就可以将二个小程序进行比较了,在第一个和第二个小程序中,凡是公共部分,我在第三个程序保甾,比如说,我把第二个程序作为基本程序,然后再把第一个程序公共部分不加入,只把第一个程序必须的语句按要求加入,就成了第三个程序;闪灯和数码管都工作的程序,我用这种方法合成后,在仿真时都很正常,实现了我起初的想法。如果没有这个想法,直接编第三个程序,我是绝对一下编不好的。
   通过 这个例子,对于我们初学者来说,是不是只要我们把每个单元部分学好,如下的问题是看如何组合了,不知道是不是这样,我这种想法也不知道对不对,上面的例是不是巧合我也说不清,请各个高手指点指点,如果是这样,那我们的入门速度就会大大加快了,是这样吗?请指教!!谢谢(回复都都加分)

回复列表 (共5个回复)

沙发

这样写对我们这些初学者,很有帮助,通俗易懂,谢谢!
对初学者,特别是刚开始编程的格式和开头真是很麻烦,能不能再多写一点入门知识,感激不尽!!!

板凳

老爷爷! 
           谢 谢!

3 楼

活到老,学到老...赞

4 楼

给你介绍一个拥有10年的PHP工作经验的老师他还是一个上海网务网络信息有限公司的经理-肖飞,我朋友就是他教的,很厉害的,最近还把他花了5年的时间开发的BIWEB php网站管理系统,开源给大家使用,好东西部能一直自己用,所以他选择了开源,让更多的程序员使用和学习BIWEB系统。记得最好的还能用手机浏览网页,别人的开源的根本就不会有,还有很多好的功能我就不一一说了,只能你们自己去看,去研究学习,要是不懂或想和肖飞老师聊聊你们的想法或是问题都可以。

爷爷你要加油哦!你的精神很值得大家学习,希望更多的程序员学习更好,薪水更高,做一个轻松的程序员,城市的白领!不要忘了看看学习BIWEB系统,希望您不要错过学习的好机会!我把网址告诉你好了,方便大家学习研究使用:http://www.biweb.cn ,要是有问题还可以到他们的biweb论坛:http://biweb.cn/bbs/发表贴子,肖飞老师都会去耐心的帮助我们解决问题的.

5 楼

精神可嘉!!!!!
值得发扬!!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册