赔本的单片机毕业设计



毕业设计结束了一年多,为什么今天还带着怨气又重新提起这个话题呢。

当然是因为头顶上的语气严肃的告知,是告知不是询问,一定要我辅导沙阿小哥完成毕业设计,这涉及到两国邦交、国际友谊...关键点在这里:他(沙阿小哥)最后要是做不出来的,得我来做...不服气能行?

经询问,沙阿小哥连最基础的技术文献都读不懂并没学过,专业并上公共课(都是挂掉的)16门没考完,表示各种忙,表示看不懂我给他的中文资料。把他所有的对白总结起来就一句话:我啥都不会,你看着办

...呵呵呵呵...看来就算纯粹浪费有限的人生与存活的意义,也得把时间如同海绵宝宝脑子里面的水一样挤出来为他人做贡献。

做的毕业设计很简单,AVR atmega16单片机+光敏传感器+温度传感器DS18B20。感兴趣的朋友可以按照下列步骤很简单复现。(文章结尾奉上全套资料的网盘地址)

具体内容: 连接电路,设计制作PCB板,烧制.hex文件下载到单片机,焊接元件。

步骤

  1. 购买元器件,淘宝京东实体电子市场都可以。

  2. 在面包板上搭建电路验证单片机最小系统能否工作正常(我们跳过Protues仿真,毕竟功能单一,系统简单,不需要额外浪费时间)。设计单片机的各个模块。

  3. 在CVAVR软件上编写atmega16单片机对应的代码,编译链接生成.hex文件,下载到单片机里面,测试传感器能否工作。

  4. 在altium designer软件上绘制单片机系统原理图,导入原理图绘制PCB电路板。

  5. 把绘制好的PCB板发给淘宝上专门打印PCB板的商家并付钱。

  6. 取快递,把各个元器件焊接到PCB板上。

正文:

第一章: 元件

全是槽点,本科的时候在工作室,一堆元器件摆在我面前,我没有去珍惜,等到读研究生了要掏钱买,才后悔莫及。幸而我还保留了当时元器件的购买清单,附上如下表所示:

名称 数量 描述
AVR单片机 1 atmega16
ISP-USB下载器 1
ISP-USB下载口 1 (这是个10针的插槽,焊接在电路板上供下载器连接PC和单片机)
晶振 >=1 8M
瓷片电容 22pf(建议买一套,多的少的一点钱而已)
电解电容 nf-mf(同瓷片电容)
按键 酌情
电阻 >=16 4.7k+10k(同瓷片电容)
共阳极数码管 >=1 4个装
排针 4排
LED灯 若干,主要是单独几个商家也不卖
温度传感器 1
光敏传感器 1
面包板 >=2
导线+杜邦线 若干 直插、公母头、公公、母母

 PS:电子元器件一般不做活动,邮费自理,(包邮的都是在元件上补差价了),如果自己购买,一定多挑几家店铺。

除了以上元器件 ,在焊接的时候还需要电烙铁,焊锡之类。

第二章:最小系统

就其属性而言,最小系统是保证单片机能用正常运行的基础。正如麦之于馍,馍之于泡馍,泡馍之于羊肉泡馍是也。

简单来说,最小系统就需要三个电路连接:

  • VCC和GND

  • ISP下载端口

  • 时钟(可忽略由内部RC振荡器供应)

在这里需要注意的是,直插式ATMEGA16芯片上40个引脚中,有两个GND引脚,要连在一起

图1 直插式ATMEGA16芯片引脚图


ISP下载电路可以连接PC端的调试软件和单片机芯片,进而把编译好的机器代码下载到芯片中运行,或者对单片机的端口进行数据传输调试。

要想实现这个功能,则需要做以下几件事情:

  • 针对单片机

先连接ISP电路,和时钟电路。在测试阶段,没有设计PCB且ISP接口在面包板上不方便安装,需要直接把单片机上用到的ISP端口电路连接到图3所示的ISP口上,使用公母头杜邦线。

图2 ISP电路连接图

图3 USB-ISP实物

图4 时钟发生电路图

值得说明一下的是,图4中晶振和瓷片电容的公共端所连线的端口标注了引脚名,与图1中芯片所示的引脚相连接。

  • 2. 针对PC机

首先需要一个PROGISP软件,用来沟通PC机和芯片。软件界面如图5:

图5 PROGISP软件界面截图

将图3所示的USB口插在电脑上,需要安装下载线的驱动usbasp。但是对于win10系统会有一个问题。即驱动程序强制签名会组织该驱动的安装。所以需要以下步骤:

win->左栏中的设置->更新和安全->恢复-> 高级启动 ->立即重新启动->疑难杂症->高级选项->启动设置->重启->7(禁用驱动程序强制签名)

第四层状态,你在哪里。这一层同样建立在第三层基础之上。掌握了以上三层,只要基本不涉及复杂算法的程序,可以组织小规模的程序的编写了。在这个时候,如何有效区分系统中的状态,利用状态来进行迁移,变得尤为重要。有人说通用结构好。反而我认为,针对特定应用来规划更优秀。对于单片机程序而言,几乎没有能够一摸一样的项目。而对于可移植性而言,能够做到函数级别的复用,已经非常难能可贵了。

通过以上步骤设置过后重新打开的win10系统,即可以安装没有签名的驱动(可能不同的win10系统界面不一样,但是都在恢复这个选项里)。

图6 部分步骤示意

  • PROGISP软件设置

首先在select Chip 选项,选择ATmega16。其后打开“...”,对熔丝位进行设置,只用把图7中的高位值设为D9就行。

图7 熔丝位设置

其后在文件栏目选择调入Flash,选择你经过CVAVR(或者AVRstudio)之类的EDA工具生成的 .hex文件。擦除->自动。若消息框中提示写入成功,则代码已成功加载到单片机内存。

第三章:给单片机加外设

这里我们使用了几个简单的外设,LED灯、按键、光敏传感器、温度传感器DS18B20、数码管,这些外设都很使用,其具体功能容易理解。将这些外设按照电路图连接到单片机上即可。具体原理在这里就不介绍了,感兴趣的同学请转身问度娘。

图8 电路原理图

加上外设后再次烧录代码进单片机进行测试,如果功能都能实现,则进行PCB板的制作。

第四章:制作PCB板

使用软件: Altium Designer 9

步骤:

  • 创建工程、创建schametic文件和PCB文件。

  • 添加元件、Vcc、GND,给元件添加封装,给元件引脚命名,连接元件之间的电路。(元件的封装有特定的封装库和封装模型,当然可也以使用系统自带的封装,对于我们所制作的PCB板,要求并不严格)

  • 检查设计规则。

  • 导入到PCB。

  • 设置PCB线宽,移动PCB进行布局,其后布线。

  • 交付完成的PCB板给淘宝商家,或者有条件的自己在覆铜板上打印出来进行后续处理。

图9 完成PCB布线布局

图10 制作好的PCB板

上图使用的是双层布线,为了节约时间,布线很随意。在PCB板上焊接元器件,即完成本设计。

图11 焊接好的开发板

小结

本文讲了小制作的过程。能实现的功能主要两个:

  1. 测量环境温度并显示

  2. 光敏电阻周围光照强度下降到一定的阈值会点亮LED灯

这篇文章中单片机的功能很简单,重要在于涉及到了硬件设计的一整套流程,并且在我制作的过程中遇到的问题也在上文反映出来。在本文中没有介绍程序如何编写,没有介绍CVAVR、Altium Designer 软件具体如何操作。

在网盘给出的文件中有Altium Designer 9的简单使用视频,给吃了CVAVR版本的编程文件和.hex文件,给出了设计好的PCB文件,这些文件对于想要学习这个软件的朋友会有帮助。

对于那些想立刻上手使用的同学,可以直接购买元件,交付淘宝商家打印PCB板,焊接,通过PROGISP将制作好的.hex烧录进单片机,即可使用。

或者后台回复190627获取网盘

下节展望:

(我这个人就是太懒了,开公众号到现在快一年了才发了两篇文章——包括这篇,所以我专门为自己设了这个版块,把下一篇文章要写的东西提前说出来,督促自己更文)

使用Quartus II和Modelsim仿真一个 RISC CPU的工作过程。

转自公众号:水银系与黑  


在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称"看门狗"(watchdog)。

生成海报
点赞 0

thePro

我还没有学会写个人说明!

相关推荐