您的位置:首页 > 其它

单片机小学期总结

2016-07-14 19:15 253 查看
  本次数字电子钟的单片机课程实习是一次从硬件到软件,从设计到焊接的全方位的工程性的电子产品研发。在实习中我觉得自己首先是复习并巩固了单片机的基本知识(如中断、单片机芯片硬件结构等),然后是学会了PCB绘制(Altium designer)的基本操作。同时,我也学习了如何去看懂一个芯片的说明书,看懂它的应用时序,并据此实际编写C语言程序使芯片正常工作起来。

  在硬件电路焊接中,我认为自己焊工还是比较扎实的,焊点基本没有虚焊,漏焊,错焊等问题,一次焊接便成功实现电路板的功能。而期间在帮助其他同学检查电路板无法正常运行测试程序时发现,很多错误都是因为CH341A芯片的焊接出现芯片焊反、引脚漏焊、虚焊,SHT11芯片出现虚焊,二极管(LED)正负极焊反,芯片没插却直接下载测试程序,结果以为是自己电路板焊接的问题等等,其实这些都只是因为粗心大意。所以,我觉得总结起来,硬件电路焊接成功的关键还是细心和耐心,多留一份心,可能便省下几小时甚至一天的无辜纠错时间。

  在软件部分的设计中,我首先花了两天时间学习LCD、DS1302、SHT11芯片的手册(主要看引脚说明、寄存器、时序和注意事项),之后上网查阅一些例程资料,又看了些单片机教学视频,慢慢地,LCD字符显示、DS1302时间读取、按键中断功能实现、SHT11温湿度数据读取和计算等功能便都相继实现了。接下来我开始设计main()主控部分的状态跳转和对外围芯片的功能调用,期间大概花了两天时间,然后便一直在着手软件的BUG修改。其中,我发现的BUG及相应修复操作如下:

  (1)频闪问题。画面一直在闪烁,结果发现是因为一直在执行清屏操作,将清屏命令进行相应调整后成功解决了这个问题。

  (2)闹钟时间存储位置。一开始将闹钟和生日时间存在内部RAM空间,结果复位后信息都丢失了,后来把它们存入了DS1302芯片的31个RAM空间中,解决了这个缺陷。

  (3)光标定位问题。在时间调整时,由于每写一个字后,LCD DDRAM地址会自动加一指向下一个位置,而光标是在当前指示的地址处显示,这便导致光标显示与预期发生错位,之后我在每次字符显示后将地址减一,从而解决了这个问题。

  (3)清除GDRAM问题。由于图形是写入GDRAM空间,字符是写入DDRAM空间,而这两个空间的信息都会在屏幕上显示出来,所以显示图形后。必须清楚GDRAM空间里的数据,否则会产生花屏现象。

  (3)消抖问题。按键中断响应函数中需对按键进行消抖处理,否则会出现一次按键,多次响应的情况。

  (4)图形显示问题。在研究LCD时,发现其实LCD中图形显示是每次先写行地址,然后写列地址,之后再连续写入两个字节的数据,而之前一直没看懂这个操作导致显示出现乱码。

  (5)变量定义过多问题 code段。因为没有把图形等数据表信息存在code段,结果频频出现地址空间不足的error,变量定义时加了code后问题终于解决。

  (6)延时函数问题。部分延时函数导致时间显示时,秒的显示是不连续的,有时快,有时慢,之后进行相应调整,也解决了这个缺陷。

  (7)蜂鸣器问题。根据电路图分析,本电路板上的有源蜂鸣器是在IO口置0时响,置1时不响,之前弄反了这个,导致蜂鸣器一直警报不停。

  (8)修改时间模式中,不想改了取消的问题。之前因为设计缺陷,四个按键分别是移位/+调整/-调整/确定,并没有取消的操作,导致一旦进入该模式并退出后时间便一定会被更改,之后加了一个取消标志的变量,解决了该问题。

  (9)函数中定义时,unsigned 必须放函数体开头 否则会报错。

  (10)SHT11测量的温度湿度数据不准确,结果发现是因为float型强制换成char型时发生溢出。之后改成转换成unsigned int型便解决了这个问题。

  (11)math.h是SHT11_Func.c计算露点函数里用到了里面的log10函数;reg52.h是SHT11_Func.c用P2、S_DATA、S_CLK,Key_Func.c用P3、EA、ET0、TM0D、TH0、TL0、TR0、p34、ET1、TM0D、TH1、TL1、TR1、p35、EX0、IT0、p32、EX1、IT1,DS1302_Main.c用p33、P1、P2、RST、SCLK、DATA、RW、E、RS、P0、Speaker;intrins.h用nop()

  软件部分的另一块内容是利用Altium Designer 进行PCB制图,这部分主要是学习软件的应用,通过学习视频教程和百度查阅资料,也相应掌握了些知识。从封装到原理图绘制,再到PCB布线,感觉还是有点考验眼力的,期间不断挖掘一些小技巧使布线更快捷,比如统一修改电路板上电源线的宽度时,在电源线上,点右键,选“查找相似对相”,在其弹出的对话框中,将网络,后面的值改为Same.然后点应用。最后点OK。在弹出的对话框中修改宽度时,整个电源网络都会变化。想改大改小都行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: