gogl的专栏

佛曰:一枯一荣,皆有定数。圣经上说:欠著我的,我会记下。梁朝伟说:出来混,总归是要还的。主席说:哪里有压迫,哪里就有反抗。小平同志说:贫穷不是社会主义。

原创 从零开始学单片机全过程(三)收藏

新一篇: 从零开始学单片机全过程(四) | 旧一篇: 从零开始学单片机全过程之(二)

从零开始学单片机全过程(三)
(声明:属于个人体会,不涉及任何商业目的,请转载时注明出处,谢谢)
 作者:field 
 E-MAIL: field01@gmail.com 转载时请保留这些信息
 
三、开发实战篇
3.1  第一个试验使单片机唱歌
这个是我在刚刚做好ez51编程器,搭建好第一个小系统后,做的一个比较有趣的试验,一开始的试验就是试验着把一个发光二极管接在p1.0口上,然后控制其灭暗,然后,我在学习资料里看到了单片机唱歌的试验,有源代码和hex文件,我就从坏掉的文曲星上拆下一个喇叭,接在p1.0口上,再把单片机唱歌的源码,把其输出口改为p1.0然后烧了块芯片,单片机过然唱歌了,这个试验极大的激发了我的兴趣。虽然代码不是我写的,但是我从中也了解到小喇叭发声的原理,就是向p1.0口送出不同频率的脉冲信号,使喇叭震动发声。由于已经将其拆卸,所以就看不到这个试验的照片了。这个试验给了我兴趣。
    
3.2  七段数码管制作99秒计时器
  作了此试验后使我彻底搞清楚了显示器的工作原理。为了验证老师所说的数码管原理,我还用方形的发光二极管自己拼了成了一个数码管,尽管样子比较难看,我去扎扎实实的理解了显示器的原理。
 
3.3  32个发光二极管的霓虹灯
     作这个是发现我的芯片中竟然有坏掉一两个引脚的,特别是在做数码管的试验时,我做来做去,不知道怎么搞的,就是由几个地方不亮,检查错误查了很久都没有查出来,后来才怀疑到可能芯片的某个引脚坏了,换了块芯片,结果问题全都解决了。我才知道原来芯片还会坏某几个引脚,所以就不怕麻烦制作了32个灯的霓虹灯。
 
3.4  16*16到点阵显示
以下是原理图:刚刚学会用protel,时间又紧所以就画了大概的关键点

制作步骤:
1.作全局的大概考虑,比如我的想法是把p3口空出来,p0,p1口用来给行数据。P1口正好和isp下载线多出来5个口用四个来作译码(行选定部分)。
2.   显示器部分
用万用表的欧姆档测量出8*8小点阵的引脚情况。记录在纸上,根据原理将四块点阵的32个引脚连接,布置成原理图的样子,就是一排16个脚可以控制行,另一排可以控制列,这样就可以通过连接不同的引脚来控制总共256个发光二极管了。
3.   译码部分
查找译码芯片的用法74LS138,上网找到其相关文档,查其真值表。如下图:
通过看文档,看真值表,理解了74LS168的大概特性,发现其有三个脚G1,G2A,G2B可以控制译码芯片的有效和无效,本来我还以为要单独得每个译码芯片接3个引脚的,后来经过思考,再在ewb上做了仿真试验,证明我的想法(原理图的译码部分)是可行的。译码部分解决。
     4.开始焊接组装调试。
    即把各个功能块拼合在一起,当然,其中还有很多小的测试部分,比如说要用几个三极管才能控制点阵中发光,在这里我遇见了许许多多的问题:
开始时,我试验三极管放大多少电流才能控制点阵时,用的是p2口,实验,实验通过,但是当我连万了电路通电后才发现,有一半的点阵根本不亮,查代码原因,电路焊接问题,都没有找到答案,最后想起,在我制作32个彩灯的试验中曾经出现的同样问题,在p0口作正逻辑,发光二极管不亮,于是我就把发光二极管反过来接,用腐6逻辑解决了这个问题。我后来也跟孔老师提过这个问题。她当时给我说p0时高阻端,要接上拉电阻。当时,我脑子里根本不知道上拉电阻是何意思。但现在的确碰到问题了。我本来还想用把发光二极管翻过接,做反逻辑的方法解决此问题,当我把显示部分与译码部分的导线,都拆到,重新焊接时,才发现,由于译码部分出来的是7个高电平1个低电平,根本无法做反逻辑。这好痛苦。后来正好在一次上课的机会上,把这个问题请教了费老师,他很耐心给我讲解其中的原理,与道理,让我回去再查阅一些资料,可以算出发光二极管的工作电流,和查看ATMEL89s51的相关资料,看看p0口的结构。查找相关的资料,搞清楚了p0口是高阻口的大概含义,极怎样接上拉电阻。还知道了发光二极管发光的电流大小,和其他的一些参数。如下:
计算出上拉电阻的大小,这是我第一次在单片机的制作过程中涉及到了计算问题,算出来的结果是用10k的电阻,但后来看到有些参考资料上用了4.7k的,由于我的我觉得亮度有问题,所以也该到了4.7k.但是,在强光下看字幕,还是觉得有些暗。
三极管的放大问题,由于强光下,点阵的显示效果总不是很好,电子电路,学得不太好,就不了些模拟电路的知识,但是临近考试,也没有太多的时间看,稍微懂了些皮毛。所以,点阵的显示效果问题并没有很好的解决。但是我在这个上面作的尝试是最浪费时间的,大概花了5天的时间搞这个,其实后来的编程也只用了这点天的时间。
 
右图是最后的实物图。

发表于 @ 2006年01月14日 16:55:00|评论(loading...)|编辑

新一篇: 从零开始学单片机全过程(四) | 旧一篇: 从零开始学单片机全过程之(二)

评论:没有评论。

发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © gogl