培训总结
经过暑假半个多月的培训,我们的51单片机终于学完了。总计几千行代码在我脑子里面,刚开始是毫无章法,到最后逐渐变得脉络清晰明了起来,我也收获了许多。
7月25号到7月26号,课程的安排就是复习之前所教的c语言以及51单片机的相关内容。对于之前早早的进去实验室的人来说,当然是复习;对于我刚进来实验室不久的人来说就相当于刚刚开始学习单片机。趁着这两天,我边看视频边学习单片机的基础知识;从学会头文件一直到点亮51单片机第一盏流水灯,一步步的跟着视频的进度,了解串口通信,了解串口通信的时序图,并且根据时序图写代码;认识12864和1602的区别,12864液晶屏 能显示汉字,显示字符及数字;1602不能显示汉字,能显示数字以及字符。认识数码管是由8个发光二极管组成,通过不同的段亮度可显示数字0-9,字符A~H符号‘-’及小数点“.”。数码管又分为共阴极和共阳极两种结构。数码管主要是通过点亮某字段,根据发光字段 的不同组合可显示出各种数字以及字符。
单片机的按键主要分为独立按键和矩阵按键。独立按键通俗的讲就是一个引脚单独控制一个按键;矩阵按键比独立按键节省较多的引脚,应用于按键数目较多的场合。它在运行是首先进行行扫描,扫描完后保持按键值,最后把行和列的按键值相或。无论哪种按键按下都会出现抖动现象。我们可以通过机械消抖和软件消抖两种方法去进行消抖。
51单片机还有中断系统结构,常用的中断主要有外部中断,定时/计数器中断,串口中断,还有内部AD中断。外部中断是根据外部信号来触发,外部中断有外部中断0、外部中断1,外部中断0通过INT0(P32)触发外部中断1通过INT1(P33)触发。学习中断,我还认识了几个寄存器:AUXR寄存器主要是辅助寄存器,它不可以位寻址;TMOD寄存器主要用于定时器/计数器模式配置,它不可以位寻址。定时器/计数器有4种工作方式,俗称方式0,方式1,方式2,方式3;方式0和方式2的自动重装不太一样,自动重装方式主要包括八位重装和十六位重装。定时器0与定时器1的初始化流程都一样:主要先配置定时计数器模式以及工作方式也就是配置TMOD寄存器,其次就是要配置辅助寄存器是否分频即配置AUXR寄存器,再然后就是配置定时时间(THO,TLO),然后再开启定时器中断(IE寄存器),最后在开启定时器(TCOM寄存器)。在每个部分的学习中都有一个课后的任务,我会按照任务去完成,我尽量把布置的课后任务全部都完成,就是这样。两天过得很快,我大概就了解了单片机的怎么去运行的,慢慢的有了感觉。
7月27日,我们学习了DS18B20温度传感器的应用。DS18B20具有独特的单线接口方式,与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,他的温度,它的测温范围-55℃~+125℃之间,支持多点组网功能,在使用中不需要任何外围元件。
在编写DS18B20的代码上时,我因为不会对代码进行封装,所以我写的代码总是很乱很繁杂,而且单片机是模块化编程,不会封装函数就显得单片机学得不好。所以我看了一些封装函数得视频,了解封装函数的过程以及用法,然后我再自己操作一番,就懂得了它的用法。
7月28日,我们学习了 DHT11温湿度传感器的应用。它与温度传感器一样也具有自己独特的特点。它是一款有已校准数字信号输出的温湿度传感器。 精度湿度±5%RH, 温度±2℃,量程湿度20-90%RH, 温度0~50℃。它在编译的过程当中主要包括读数据函数 ,通过读数据响应主机信号,从机再响应信号,最后再进行传送数据,整个过程就完成了温湿度传感器的工作过程,在写代码的时候我遇到了一个错误,通过同学提醒才知道创建函数文件时应该尽量不能用中文名,尽量用数字和字母。
7月29日,我们学习了DS1302时钟芯片。DS1302是时钟芯片,那它就有计时的作用。他和我们日常接触的电子表差不多,可以对年月日、时分秒、星期计时。我们可以用单片机往DS1302里面写入时间进行时间设置,也可以用单片机从DS1302中读取时间,读出来的时间也可以放在液晶上显示。也就是学习了时钟芯片之后,我在之后的考核中也加入了一个时钟成分。DS1302的特点也是非常的显著:时钟计数功能,可以对秒、分钟、小时、月、星期、年的计数,年计数可达到2100 年;有318 位的额外数据暂存寄存器(即RAM,掉电丢失);少I/O 引脚传输,通过三个引脚控制工作电压,2.0-5.5V工作电流小于320 纳安(2.0V)读写时钟寄存器或内部RAM(318 位的额外数据暂存寄存);可以采用单字节模式(一次读写单个字节)和突发模式(一次读写多个字节)8-pin DIP (直插封装)或8-pin SOICs(贴片封装);具有可编程的涓流充电功能,这对于经常断电的场合,意义重大。时钟芯片的代码也要经过读程序和写程序两个过程 。写代码的时候细心一点也就没有那么多的错误了。
7月30日和31日,我学习了NRF24L01无线模块和小车的电机转动,学习了两个单片机之间可以用无线模块去通信,接收和发送的代码有所相同又有所区别 。小车的转动主要是通过控制轮子的转速来实现的。
8月2日开始,我们开始学习MSOS系统,我们主要学习MSOS系统框架介绍及界面显示,MSOS系统的显示控件原理及消息机制和进程,MSosPLC电路乃GPI0口控制(ADC. )并在12864上显示AD电压。MSosPLC电路乃GPI0口控制(DO,DI. PWM ) 并且通过PWM控制电机正反转。最后我们实现了MSOS的储存原理、节拍、串口通讯等等。
一直到8月7号所有的培训就结束了,我们就开始做项目了,做考核了。
这么多天的学习让我认识了许多有趣好玩的朋友,在培训期间,我们共同努力,相互进步。