找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5374|回复: 1
打印 上一主题 下一主题
收起左侧

第一个AVR-DIY作品制作过程

[复制链接]
跳转到指定楼层
楼主
ID:71235 发表于 2014-12-28 00:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      虽说喜欢电子DIY,也会那么点,但总觉这个世界上有用的东西都让人给发明完了,我等小辈只管掏钱买来用就是了,犯不着亲自动手做一个,再说自己做的那个成本、功能、外观都跟人家产品没法比,于是每天光看着各种各样的资料,只是为了不让自己把仅会的那点东西忘却掉,却一个东西都不曾做出来。

    去年在家的时候,做出了一个电子钟和GPS时钟,在那以后再也没做什么东西了,话虽如此,脑子里却总还是在想做个什么东西,其中一个就是做一个机房里用的温度报警器,单位的机房空调不太好,偶尔停机了也没人知道,致使机房温度一路飙升,严重的时候甚至使服务器停机,自动控制空调是没那个本事了,做个温度报警指示倒是可以的,于是就把这个当做计划在心里记下了,留待有心情的时候把它变为现实。
   
    掐指一算,上班已经一年有余了,不知什么原因,要去淘宝上买一批元器件,顺便把ATMEGA8以及几个数码管买了回来,这就准备实现一年前的计划了。说是说一个机会,其实还是闲着没事干,找点事情做做,做出来的东西也许就放在家里了。这个计划是这样的:显示部件采用数码管显示,最后是那种大点显眼点的,控制核心还是51单片机或者AVR,要完成的功能就可以设定控制温度,到了指定的温度时,发出刺耳的报警声,很简单,做这个东西人的也许有成千上万了,但是完全实现俺目标的不一定有,所以还是自己实现的好。选控制核心的时候稍微犹豫了一下,最后还是选择了M8,因为M8有很多51不具备的特点:1.有内置的RC振荡源,可以不用外接晶振电路;2.端口驱动能力强,最大灌电流达40ma,驱动一般的数码管甚至不用加三极管;3.端口有内置上拉电阻,做按键输入口的时候不用外接上拉电阻;4.有一个完整的PB端口,可以作为数码管的段显示,剩余端口足够完成所需功能;5.M8是窄列28脚封装,体积够小(我喜欢在最小号的洞洞板上完成所有电路)。
    既然要用M8,就要具备M8的相关知识,先是研究了一下熔丝位的设置方法,发现没网上说的那么恐怖,第一次按手册设置好了,以后不要去动就行了,然后选择CVAVR作为编译器,因为CVAVR支持位操作(对刚从51过来的人,1<<7这样的位操作方法确实有点古怪),重新找出去年网上买的USPASP下载器,然后就是按照M8的手册焊了个小板,整个电路包含一个4位数码管,一个复位电路,DS18B20温度检测电路,ISP下载插座,3个按键(一个作为设置按钮,两个作为数字调整按钮),一个报警器驱动电路,报警器用的是那种5块一个的防盗报警器,声音非常响。经过10多天的测试,编程,再测试,于今日基本完成。如下图:
     整个制作过程经历了不少困难,首先是DS18B20的读取控制问题,刚开始时是按照51的程序写的驱动程序,不行,上网找了几个AVR的驱动程序,还是不行,最后发现是端口读取方法错了,本来读端口应该是用PIND.7这样的形式,但是用51时间多了,不自觉的也按51的方法写成PORTB.7了,这个错误让我耗费了2天时间。然后按键控制问题,一般来说,调整参数时按一下跳一个数字这种方法就足够了,但是我想仿造电子表的操作方式,实现按键的连击(按钮按住不放,数字自动调整),单击(按一下调一次),长击(按住一定时间,则进入某一个功能),经过几天的折腾,终于完整实现了,效果如下:按设置键2秒,系统进入设置参数调整界面,参数开始闪动,按一下加减键,数字加1或者减1,按住不放超过1秒钟,数字自动连续加减,同时参数不再闪动,知道加减键松开,再次长按设置键2秒,退出设置界面。再就是参数如何保存到EEPROM中的问题,能保存在EEPROM中这个在CVAVR中很简单,难得是如何指定保存地址,经查资料,这个问题也解决了;最后一个问题是报警器驱动问题,程序存在问题,还是那个端口如何操作的问题,这个也解决了,然后发现用8050只能让报警器发出断断续续的嗡嗡声,经过另搭电路测试,发现是基级驱动能力不行,换了一个小点的电阻就行了。在整个制作功能基本实现后,又增加了点小小的功能,就是开始报警后,可以按任意键终止报警声,功能虽小,却相当实用。
   最后总结一下:本次制作实现多个第一次,
   1.第一次使用AVR单片机
   2.第一次使用动态数码管驱动电路,以前要么使用专用的数码管驱动芯片,要么使用液晶显示器,使用动态扫描还是第一次
   3.第一次使用高级按键功能
   4.第一次使用ISP下载方式调试程序
   5.第一次使用EEPROM存储参数
   。。。。

   接下来想在电路板的剩余角落搭个RS232的电平转换电路,实现和服务器的通讯功能。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:79544 发表于 2015-5-11 14:24 | 只看该作者
只要制作的大概过程,能详细些就更好啦,比如:程序--
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表