爱总结的人不会太差

这应该算是我的第一次写博客,想了很久也不知道写什么,就连标题也想了好久。算了,那就给自己一个总结吧。我目前也是大二刚结束,可能这段时间也处于迷茫期吧。在思考人生的同时不妨对自己先做一个总结,这样有利于更清楚的认识自己。
首先我对电脑编程也是比较感兴趣的,但至于为什么我的大学专业却选择了一个电气工程及其自动化专业,这中间的曲折还有很多,我就不一一说了,但还好的一点是我对自己现在的专业也是比较喜欢的,所以我把电脑编程当作的一种爱好而不是职业。
记得第一次进入大学时充满了期待,因为从小就听大人们说只要你进入了大学你就解放了。高中老师也说过只要你上了大学想怎么玩就怎么玩。直到现在我才明白那些话还真是骗小孩子的,无知的我竟然也信了那些鬼话。
其实大学社团确实是一个可以真正锻炼自己的地方,我大学就加了一个社团,那就是我们电信学院的科学与技术学会,简称科协。也就是在这个地方,我了解到了一个叫51单片机的东西,也从此走上可技术开发之路。
首先想学51,除了硬件电路的基础外还必须掌握的就是软件编程,还记得那个Hellow Word!吗?相信每个学过C语言的人都会记得,这是人生写得第一条代码。在大一快结束时,我就买的一本谭浩强的C语言程序设计基础第5版,这本书确实不错,我就利用大一寒假期间自学了C语言,到了大一第二学期,有了C语言的基础,然后我就开始尝试练习开发51,这里的开发专指软件编程,至于硬件设计也没有系统的学习,不过男生嘛对于那些简单的电路设计也不会太差。
自己做的第一个51作品就是4x4x4光立方,这个完全是练手,电路图什么的都有,程序也是现成的。只需焊接好硬件电路就可以。然后就是学校的循迹车比赛,在参考源程序后,我自己总结修改出了一套循迹车程序,可遗憾的的是车的硬件电路出了问题,导致最后与比赛无缘。
4X4X4光立方
在这里插入图片描述
就此51的开发就先告一段落,大一也快结束了,而我也花了很多功夫在课外的知识上,导致挂了一科,但我相信我做的是对的,大一暑假期间我就开始学习开发网站,在阿里云上买了一个学生轻应用云服务器用来为自己的开发做基础,接下来就是买域名备案等等,将近整了一个月才将所有的搞到手,然后就开始网站的开发练习,最初我的网站设计主要是放一些我的简历以及我的一些51作品及教程。后来由于才大一啥都没有,简历也写不出啥,所以网页的基础框架是做出来了但内容确是空的,也是等了好长一段时间不知道该在自己网站上放点什么,就这样一直挂着,服务器每个月也得缴费的,虽然只有9.8元也不贵(这是阿里云专为学生出的优惠)但是每个月也是白白的开着,而且对与网络版权的那方面法律也是不太懂生怕一不小心触犯法律,因为看到过有一个大学生也是开了一个网站,放了一些小说上去给读者下载,却被出版社起诉索赔300多万,想想就可怕,法律意识淡薄还是不触碰的好。再说自己现在也基本学会了基本的简单网页开发,可以制作个人简历等。所以网站运行了将近一年后成功倒闭,为什么说是倒闭,因为我实在不想续费服务器了,然后就…对吧。
从大二开始我就凭借着自己的51基础疯狂的参加各种比赛无论是学校的还是校外的,当然还是取得一些小成绩,比如学校的电子制作大赛,在大一时没获奖,在大二获得了校级一等奖。参赛作品:手机红外控制灯树在这里插入图片描述循迹车大赛,大一没获奖,大二也同样获得了校级一等奖。
那就给出我自编的一般常规驱动代码吧!
至于高级代码,这属于机密。。。代码适用范围要根据你的硬件设计来定

/**********************循迹**************************/
#include <reg52.H>
sbit  pwm=P2^0;      // 舵机pwm控制
sbit  IN1=P3^2;   // 电机使能控制端
sbit  ENA=P3^3;       //
sbit  IN2=P3^4;   //
sbit  Ghg=P2^4;     // 干簧管 
unsigned int GH,GL,DH,DL,zgg,zgd,zdg,zdd,a,b,c=1310,d;      //实际测试参数2700
unsigned char R,L;         //GH:高电平的高四位
/*****************延时函数 1ms******************/
void delay(unsigned int ms)
{
 while(ms--);  
}
/********************舵机函数********************/
void timer1() interrupt 1 using 0       //中断1  T0溢出中断
{
 pwm=!pwm;    
 if(pwm==0)   
 {
  pwm=0;
  TH0=DH;
  TL0=DL;
 }
 else        
 {
  pwm=1;
  TH0=GH;
  TL0=GL;
 }         
} 
/*********中断程序2****用于控制电机转速*********/ 
void timer2() interrupt 3 using 3       //中断3  T1溢出中断,使用工作组3
{ 
 IN1=!IN1;   // 输出取反
 if(IN1==0)   // 
 {
       IN1=0;
       TH1=zdg;
       TL1=zdd;
 }
 else
 {
       IN1=1;
       TH1=zgg;
       TL1=zgd;
 }         
}
/*****左转45度***********高低电位占空比为0.92:19.08ms**********/
void Left45(void)
{ 
  L=1;
  R=1;
 c=920;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}

/****左转25度****高低电位占空比为1.21:18.89ms*********/
void Left25(void)
{ 
  L=1;
  R=1;  
 c=1210;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/******左转15度****高低电位占空比为1.31:18.69ms*********/
void Left15(void)
{
  L=2;
  R=2;
 c=1310;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/*********复位*****高低电位占空比为1.44ms:18.56ms************/
void Reset(void)
{
  L=2;
  R=2;
c=1440;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/********右转15度***********高低电位占空比为1.58:18.42ms***********/
void Right15(void)
{
  L=2;
  R=2; 
 c=1580;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/********右转25度************高低电位占空比为1.68:18.32ms***********/
void Right25(void)
{
  L=1;
  R=1;
 c=1680;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/********右转45度*****高低电位占空比为1.80:18.20ms*************/
void Right45(void)
{
  L=1;
  R=1;
 c=1880;
 d=20000-c;
 GH=(65535-c)/256;           
 GL=(65535-c)%256;            
 DH=(65535-d)/256;             
 DL=(65535-d)%256;               
 TR0=1;  
}
/***************加速,减速***************/
 void runtest(void)               //前进   高低电位占空比为a:b  
{            
    a=3600;   
    b=10000-a;
 zgg=(65535-a)/256;
 zgd=(65535-a)%256;  
 zdg=(65535-b)/256;
 zdd=(65535-b)%256; 
 }
 /***************停车**************/
  void stop(void)               //停车   
{       
 ENA=1;
 IN1=0;
 IN2=0; 
}
void car_init()              
{    
 TMOD=0x11;    //计时器工作模式  T1,T2都可以配置         
 ET0=1;     //允许打开T0
 ET1=1;     //不允许打开T1         
 EA=1;     //打开允许总开关         
 TR0=0;      //关闭T0计时器
 P0=0Xff;    //1111 1111
 delay(300);
 Reset();     //车头复位
 IN2=0;
 TR1=1;
 Ghg=1;
// delay(50000); 
// delay(50000); 
}
void main(void)           
{    
 car_init();                                                                                                                  
 while(1)                
 {   
  if(Ghg == 0)
     {
  Reset();
  while(1)
  {stop();}
      }   
  runtest();
  switch(P0)
  {     
                      //  0.0 0.1    0.2  0.3         0.4  0.5 0.6    0.7   
  case 0xfe:      // 0   1  1   1      1   1   1  1
  Right45();      
  break; 
  case 0xfd:      //  1    0  1    1   1    1   1   1
  Right25();
  break;  
  case 0xfb:     //  1    1  0    1   1    1   1   1
  Right15();
  break;    
  case 0xf7:    //      1    1  1    0   1    1   1   1
  Reset();
  break;  
  case 0xef:     //  1    1  1    1   0    1   1   1
  Left15();
  break;   
  case 0xdf:     //  1    1  1    1   1    0   1   1
  Left25();
  break;
  case 0xbf:     //  1    1  1    1   1    1   0   1
  Left45();
  break;
    }         
      }   
}

以上数据可根据实际情况进行修改调试

经验是一次一次积累出来的。这是我目前为止的参赛经历在这里插入图片描述
随着比赛的含金量逐渐提高51已经远远满足不了我的开发需求,所以我又开始学习了STM32,怎么说呢32 的功能更强大,而且也比51听起来高了一个档次,我用32 做的第一个作品是车间粉尘防爆系统,这个项目是我和2个大三的学长做的,100%原创,我主要负责的是环境数据参数的采集,硬件也是采用模块化,所以硬件也没什么难度,主要是下位机的编程,另外两个大三的一个负责上位机的开发,另一个负责通信联调。就这样我们拿到项目后就利用大二的寒假在家自学,通过一个寒假我们成功的完成了我们各自负责的那部分。
一个车间粉尘防爆系统在我们三人的努力下由构思变为现实,但这个系统还是处于孵化阶段,需要优化的太多,需要质检的也有太多,所以直到现在我还是在优化该作品,减少代码的出错率以及新功能的加入和BUG的修改,还好总是有点收获的,就我们这初级作品已获得了博创杯省级一等奖,互联网+大赛校级银奖成绩还算是满意。说到这我不仿讲一下我从这几次比赛中学到的知识,对于比赛,你难免会遇到答辩,那你知道如何答辩才能博人眼球吗?首先第一个我要讲的是 “真诚”知而讲,不知而微笑,所有评委都不是傻子,什么话是真话什么是假话他们一听便知。千万不要自以为是把别人当作傻子。第二声音一定要大,特别是男生 ,底气足,是自信的表现,自信不能自满更不能自大。第三也是最重要的,7-38-55定律:人们对一个人的印象,只有7%是来自于你说的内容,有38%来自于你说话的语调,55%来自外型与肢体语言。答辩的目的就是你是否能给评委留下一个好的印象,肢体语言是非常重要的,你不能像一个木头人一样杵在那巴拉巴拉一直讲PPT,这是每个评委最反感的,你要学会肢体语言,这样才会做到绘声绘色,从而拿到高分。
一个项目你做的再好,但你讲不出来或者讲不好这才是最可惜的。团队也固然重要,一个一流团队做二流项目可以成功,但三流团队做一流项目就未必了。
插入了点题外话,大二第二学期参加了大创和电赛,电赛先不说,这次的大创参赛题目是指导老师直接给的,难度对本科生来说也是比较大的,我的项目算是实验室里比较简单的项目:《基于活体检测的PCA多特征人脸识别门禁考勤管理系统》是不是名字听起来就很那个啥,但实质难点在于算法,而且该项目下位机是用树莓派开发,上位机用Python,这就意味着我要在这个暑假里学会Python算法。这也是我现在主要干的事,现在我的Python基础已经差不多学完,但实战还是太少,所以看时间允许下在开始大创前先用Python写一个爬虫练练手,也进一步加深Python的学习,但是还是很迷,现在还不知道从何下手。这次的大创我主要负责上位机,所以很迷,到现在还不知道如何用Python开发上位机,之前的上位机用的是VS开发现在突然转为python就不知从何下手,也没个案例参考。如果有会的人还请评论留言我该从何处下手去开发上位机,目前Python我只学了一个基础,算是小白一枚,最多只会写一个信息管理系统,而且只能在IDE里运行的那种,在代码框里输出显示。如果有大佬能给个学习建议的话,小白我万分感谢。
所以这就是我大学前两年的成果,一天忙忙碌碌的,可惜的一点也是让我最丢人的一点就是我挂科了,因为一天总学课外的,然后该学的却挂了。大一挂了一门,大二又挂了一门,这个就让我很头疼,也感觉到很没面子。但确实挂的这门我是实在无能为力,平时学的不扎实,而且复习只留了一天时间,不挂我挂谁?算了,暑假好好补补,学习是公平的,人家学的时候你在玩,那人家玩的时候你就得学习。这些东西躲你是躲不掉的。那你只能坦然接受,承认自己的愚昧,然后努力用功。
总结完后,下来就是方向了,现在大致方向已经定了,考研就是接下来一年半该干的事,目标学校还每选好,但专业方向已经定了。当所有事情都具备时,那么剩下的就只有你的努力了。
第一次写博客,感觉写着写着就写成了日记,希望这篇文章能对刚进入大学的学生一点方向,不要荒废大学的美好时光,干好自己手底下的每一件事情,时常总结自己,这是准大三学长给你们的建议。也是给我自己的一个忠告。
爱总结的人永远不会太差,一个总将考研挂在嘴边的人,他未必能考中,但他清楚此时自己该干什么。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值