电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
楼主: jimsboy

讲讲单片机吧,给想了解它的人作为启蒙吧

    [复制链接]
发表于 2017-5-3 16:26:08 | 显示全部楼层
需要即合理,当你需要的时候,你会迫不急待地进行学习。
发表于 2017-5-4 23:00:25 | 显示全部楼层
期待老师继续开讲,我想做一个自动加水机,用到2个4位数码管,一个显示调好的水量(预设值,单位为g),按下开始键,电磁水阀通电,从水流传感器处获取脉冲计数,脉冲数要转换成水量,然后再用数码管动态地显示出来。且一个脉冲多少克水可通过“+”和“-”按键微调,这个到时实际秤量出来),当达到预设值时自动断掉电磁水阀的电,完成加水。想问下老师,这个是不是非常难,我这个初学者能完成不?
发表于 2017-5-5 14:05:12 | 显示全部楼层
外行人想听懂还是比较难,慢慢学吧
发表于 2017-5-19 16:29:25 | 显示全部楼层
你说的道理很容易理解,学习了!谢谢了!
 楼主| 发表于 2017-5-21 19:19:46 | 显示全部楼层
wxy智友科技 发表于 2017-5-4 23:00
期待老师继续开讲,我想做一个自动加水机,用到2个4位数码管,一个显示调好的水量(预设值,单位为g),按 ...

不错,你这个可以作为一个完整的示例了。
我们就像这个来做一个思路培训,因为这东西,学的是一种思路,和修家电一样,首先,你要明白原理,第二,你要知道检查的方法。那就够了,余下的,可以随时上网搜,网上什么样的学习内容都有,关键是你要会提出问题。

就拿你这东西开讲吧。
首先,你要了解你用的材料。
除了单片机,这里用到了4位的数码管。
两个按键。
电磁阀
水流传感器。
所以你必须对它们了解一下

先说第一个器件,四位的数码管。四位的数码管(带小数点的)一般会有12条腿。4个是公共脚,一个位一个脚,另外8个,分别对应数码管的8个笔划。根据公共脚是作为正极还是负极,分为共阴和共阳两种。
现在有两个问题,一是怎么才能让数码管显示0-9中的某一个字?
这个,你只要用万用表测一下或者用3V的小电池去接一下数码管,你就能想到了:0-9是由7个笔划组成的,我只要控制这7个笔划的亮和灭,就能形成这10种数字。 这是第一个重点:你必须了解你要用的器件,有条件的话,买回来先试试。如果你连怎么使用数码管都不会,余下的事就别谈了。
第二个问题:怎么才能让数码管显示1234.你用电池或万用表试了,你就会发现,它们要显示就显示一样的内容,而根本做不到显示不同的内容,你让我显示1111或2222还比较容易,但是要显示1234这种不同的,好像做不到。

发表于 2017-5-22 22:50:10 来自手机 | 显示全部楼层
要不接个4位的数码电压表,v表示kg,精确到小数点后2位数,用单片机的DA口,将脉冲计数转换为电压量,问题是:预设值该怎么设计,还有达到预设值要有开、关电平输出又要怎样设计。再有就是,水流传感器送来多少个脉冲电压增加0.01v,这个要方便调试,怎样才做得到呢?
 楼主| 发表于 2017-5-23 18:48:03 | 显示全部楼层
wxy智友科技 发表于 2017-5-22 22:50
要不接个4位的数码电压表,v表示kg,精确到小数点后2位数,用单片机的DA口,将脉冲计数转换为电压量,问题 ...

哈,你想得太多了。当然是可以实现的。我只是留了一个疑问给大家思考的,因为这是重点,所以我故意写了一半就不写了。
所以,学习单片机并不是学习这么一个器件,它的神奇之处在于,你怎么用那么可怜的一点资源(以我来看,单片里能提供的东西是很少的),把你要的东西在上面实现。所以,编程思路才是学习的重点。这点上面,说大一点就是学无止境。当然,也没那么难,因为这东西用得太多了,很多都是套路了。只要按常见的套路走就行了。

比如我说了,要显示不同的内容,好像做不到。我只是说了好像。你立即想到了,用电压表来显示。但你有没有想过,为什么电压表可以实现呢?我能不能借用它的方法?
下面,我就讲一下,怎么能让一个四位的数码管上面显示1234。当然,这也是套路了,以后遇这个问题,也就可以这么干,遇到新的,再去百度。

让一个四位的数码管显示1234,这是怎么做的?
我们先看一下单个的数码管,上面是一个8字。从最上面的一横起为第一笔为了和管脚区分,它没有叫1,而是叫a,然后顺时针转下来b,c,d,e,f。中间那一横叫g,小数点小dp,再加一个共同脚,也就是说,一个数码管要9个脚才够。那么4连体的如果这么玩,得36个脚,太多了,你一般的单片机都不足36个脚,也就是说,如果这么玩,一个单片机想点两个4连体的数码管,你会发现,管脚根本不够用啊。那怎么办呢?在四连体的内部,所有的a是连在一起的,但每个数码管的公共端还是各自的,这样就只要8+4=12个脚就行了。过这12个管脚,我可以让任意一个数码管显示一个数字(不是同时),但同时显示的时候,它们只能显示一样的数字了?
这个问题怎么破? 下面套路来了:
我先让第一位显示,让它显示1,其他三个不显示
然后,我让第二位显示2,其他三个不显示
再然后,我让第三个显示3,其他三个不显示,
再后,我让第四个显示4,其他三个不显示。
再然后,重复前面的过程。
这个如果给一个学生讲这东西,它还有点蒙圈,但是对坛子里的师傅来说,这个应该很好理解:这就是扫描啊。和电视机的场扫描一样,先让第一行显示,再让第二行显示,扫到最后一行,重复前面的过程。电视机还要分行扫和场扫,将一个点转成一个显示面,而这个,只要控制一个方向。所以它比电视的扫描简单多了。它和电视一样,当扫描的频率能达到每秒二三十次以上的时候,你看到的它们就是一起亮了。

原理讲完了,下面就是怎么实现的事了。很多时候,想这种解决方案比动手实现要难太多了。
那现这么做,用单片机的12个脚,8个连数码管的正,它占用一个IO口,正好8个位,4个连各个位的公共端,第一个时间,我要让它显示1,根据刚才abcdefg的关系,显示1时,B和C应该亮,其他都要灭,那么转出来就从高到低排列就是00000110,然后第一位的公共脚输出低电平。这时,数码管第一位就显示1了。然后你让所有公共脚都为高,这时所有的都灭了,这时进行切换,让a-g显示2,对应下来就是01011011,这样继续下去。就可以让数码管显示1234了。
今天就讲到这里了,下次继续

发表于 2017-5-28 07:12:28 | 显示全部楼层
好文章,谢谢讲解。
发表于 2017-5-28 08:40:13 | 显示全部楼层
谢谢兄弟讲解,赞!
发表于 2017-6-2 18:35:09 | 显示全部楼层
楼主辛苦了,讲的太好了,通俗易懂,期待继续讲解单片机。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2024-11-22 00:42 , Processed in 0.057019 second(s), 3 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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