zoukankan      html  css  js  c++  java
  • 89C51单片机的学习

    好久都没来写一些东西了

    最近老是忙着玩了,都忘记认真学习了。

    大概从明天开始就要开始忙了。

    1,英语四级

    2,单片机课程

    3,安卓课程

    4,PS

    感觉事情好多。

    但是我还是心不在焉。好奇怪。

    反正就是谈恋爱有点动心吧。好了,不说恋爱问题,头疼。说说最近一些好玩的,不是很无聊的项目。

    最近跟着熊旻燕老师学单片机连自己的专业课都不上。做了几个小project(这个英文咋翻译。。)感觉还行吧。

    就大概的介绍一下最近的课程吧

    1,点亮第一个灯

    sbit LED=P1^1;

    LED=1;

    这就点亮了。。就是这么短的代码。。。

    然后做了流水灯

    源码找不到了,用一个最后流水灯的“大”project顶上吧。。这个project实现的就是几个灯的变换方式。代码的注释里写的有。。好,贴代码。

     1 void main(void)
     2 {
     3     //声明变量
     4     unsigned int nums[]={0x7E,0xBD,0xDB,0xE7};
     5     unsigned int j;
     6     unsigned char temp;
     7     unsigned int i;
     8 
     9 
    10     //最大的循环
    11     while(1)
    12     {    
    13 
    14        
    15        while(i<=5)
    16        {
    17 
    18     //1111111    碰头     部分
    19         for(j=0;j<4;j++)
    20         {
    21             P2=nums[j];
    22             delay(600);
    23         }
    24         i++;
    25         }
    26         while(i<=3)
    27         {
    28     //2222222    流水   部分        
    29           temp=0xfe; //只亮第一个灯    fe=1111 1110 
    30         for(j=0;j<8;j++)
    31         {
    32             P2=temp;
    33             temp=(temp<<1)+1;//补0
    34             delay(600);
    35         }
    36         i++;
    37         }
    38     //3333333    第三部分1,2,3,4种情况亮灯
    39     //1
    40     P2=0xFC;
    41     delay(1200);
    42     //2
    43     P2=0x0f;
    44     delay(1200);
    45     //3
    46     P2=0xc0;
    47     delay(1200);
    48     //4
    49     P2=0x00;
    50     delay(1200);
    51     
    52      
    53     //444444444     全灭
    54     P2=0xff;
    55     delay(1200);
    56     i=0;     //重置i  以免死循环在第3部分
    57     }//while end
    58 }//main end

    之后就自己淘宝上买了些电子元件,(妈的说的就来火,忘记买芯片了。然后坐车去广埠屯买的)

    买了烙铁,买了胶枪。然后把板子焊好了。

    没圆口电源线就找了路由器的电源线,没USB线就找了个合适的分线器,没串口线就找老师借了一根。

    最后亮灯的时候发现有灯脚焊反了。又倒腾了半天。最后不错还是全部弄好了。

    好,点灯就到此为止了。

    下一步开始学示波器。。。

    因为有C#基础,点灯的小程序根本不是什么事,写的比14级的同学快,有点小骄傲,就没跟着老师走了。

    讲示波器的那天听得很大概,然后自己回来也没写作业,第二天去了之后啥都听不懂,一脸懵逼。看着老师都不好意思。

    最后厚着脸拍了别人的代码一点一点分析,一点一点写注释——————还是没搞好。。。妈的。

    晚上回去之后自己好好写了几作业,定时器示波器算是多多少少有些理解了。

    示波器的代码就不贴上来了。太尴尬了哈哈哈哈。

    好,然后就到了今天,写了一个显示按键次数的程序。

    两种方法在课堂上都写完了,第二种有bug然后在老师的催促下找了bug然后修复了。。。

    贴代码吧。————出现吧代码君!、

    这是方法一的代码

    void main(void)
    {	//初始化	
    	TMOD=0x60;
    	TF1=0;
    	TH1=0xff;
    	TL1=0xff;
    	P2=0x00;
    	//启动
    	TR1=1;
    	while(1)
    	{
    		if(TF1==1)
    		{
    			P2=(P2+1)%10;
    			TF1=0;
    		}		
    	}
    }
    

     

    这是方法二的代码

    #include<reg51.h>
    sbit btn=P3^6;
    void delay(unsigned int i)
    {
        unsigned char j;
        for(i;i>0;i--)
        {
            for(j=255;j>0;j--);
        }
    }
    
    void main(void)
    {
        unsigned char i,n;
        while(1)
        {    n=0x00;
            while(i<10)
            {
                if(btn==0)
                {
                    n=n+1;
                    i++;
                    
                    delay(600);    
                }
                P2 = n;
            }
            P2=0x00;
            i=0;
        }
    }

    好了,大概就是这些。。

    最后。。想祭出我的“表白杀器”

    就是控制八位数码管哈哈哈哈。。。。

    写了我好长时间的。。

    有点长但是不复杂。

    #include<reg51.h>
    #define L1  P0
    //power
    sbit con1=P3^0;
    sbit con2=P3^1;
    sbit con3=P3^2;
    sbit con4=P3^3;
    sbit con5=P3^4;
    sbit con6=P3^5;
    sbit con7=P3^6;
    sbit con8=P3^7;
    unsigned char code SEG[]={0xc0,0xf9,0xa4,0xb0,
                         0x99,0x02,0x82,0xf8,
                         0x80,0x90,0x88,0x83,
                         0xa7,0xa1,0x86,0x8e};
    void delay(unsigned int k)
    {
        unsigned char j;
        for(k;k>0;k--)
        {
            for(j=255;j>0;j--);
        }
    }               //dalay的函数
    void LED_Display(unsigned char *p,unsigned char n)
    {
      unsigned char i;
      for(i=1;i<=n;i++)
      {
          L1=0xff;
        switch(i)
        {
            //控制第1位
            case 1:
            con1=1;
            con2=0;
            con3=0;
            con4=0;
            con5=0;
            con6=0;
            con7=0;
            con8=0;
            break;
            //控制第2位
            case 2:
            con1=0;
            con2=1;
            con3=0;
            con4=0;
            con5=0;
            con6=0;
            con7=0;
            con8=0;
            break;
            //控制第3位
            case 3:
            con1=0;
            con2=0;
            con3=1;
            con4=0;
            con5=0;
            con6=0;
            con7=0;
            con8=0;
            break;
            //控制第4位
            case 4:
            con1=0;
            con2=0;
            con3=0;
            con4=1;
            con5=0;
            con6=0;
            con7=0;
            con8=0;
            break;
            case 5:
            con1=0;
            con2=0;
            con3=0;
            con4=0;
            con5=1;
            con6=0;
            con7=0;
            con8=0;
            break;
            case 6:
            con1=0;
            con2=0;
            con3=0;
            con4=0;
            con5=0;
            con6=1;
            con7=0;
            con8=0;
            break;
            case 7:
            con1=0;
            con2=0;
            con3=0;
            con4=0;
            con5=0;
            con6=0;
            con7=0;
            con8=1;
            break;
            case 8:
            con1=0;
            con2=0;
            con3=0;
            con4=0;
            con5=0;
            con6=0;
            con7=0;
            con8=1;
            break;
        }  //switch
        L1=SEG[*p];
        p++;
        delay(10);
      }     //for
      L1=0xff;
    }    //display
    int main(void)                              
    {
    
       unsigned char p[8]={2,0,1,6,0,3,2,8};
       while(1)
       {     P1=0xc0;
                LED_Display(p,8);    
       }
    }

    最后。。。也不知道说啥。。哦!对了。。。没电路图简直就是耍流氓啊。。。。啊哈哈哈电路图没有。。。因为不喜欢new project,就总是把前面的器件删掉然后直接改掉。。

    现在就只有按键跟一位数码管了哈哈哈哈。。。

    另外,还有啥处分那事。咋说呐。。就是那样吧,没什么交代的。就这样。

    别等下一更哈哈哈。。。我自己都不知道啥时候才会回来写一次博。。。

    如果我明天来了。。。说明我真的准备搞学习了哈哈哈哈哈

  • 相关阅读:
    [洛谷][P1503][鬼子进村][Treap]
    [noi 2004] 郁闷的出纳员
    bzoj 3224,tyvj 1728普通平衡树
    Treap
    [模拟赛]棘手的操作
    bzoj 4551[Tjoi2016&Heoi2016]树
    bzoj2527 [Poi2011]Meteors
    bzoj4152 [AMPPZ2014]The Captain
    bzoj4516 [Sdoi2016]生成魔咒
    bzoj4547 小奇的集合
  • 原文地址:https://www.cnblogs.com/-SANG/p/5356650.html
Copyright © 2011-2022 走看看