标题: 对单片机初入门级的理解及应用 [打印本页]
作者: 慢慢思考 时间: 2018-1-8 20:11
标题: 对单片机初入门级的理解及应用
本帖最后由 慢慢思考 于 2018-1-8 20:45 编辑
单片机这东西,它是人设计出来的,而人设计出来的东西,必然是根据人的实际需要来设计,所以,我们可以从“需要”来从头理解,也就是先从“知道它能做什么”开始学习,然后再学习“怎么让它做到”,之后如果你有兴趣,你可以去学习“它是如何做到的”,犹如汽车,我们知道它能装着你在路上跑,然后你再学习如何操作这东西在路上跑,至于它为什么能在路上跑,你需不需要知道,那要看你的需要。
比如说流水灯吧,我们知道灯要亮就必须给它加上电即一头接高电位一头接低电位,要它灭就必须断开电(严格说是让两头的电位一致),没有其它方法的。实现它的基本电路,就是灯加开关加电源,一个灯上一个开关,8个灯就接8个开关,然后顺序操作各个开关进行开关,让灯两端电位一致或不一致。最简单的操作方法,就是用你的手嘛。
真让你去做这个事你肯定烦,其实老板也烦,这点小事,付不起工资啊。于是,可以用单片机啊,怎么用?前面说了,除了用开关的办法来实现流水灯外没别的办法,所以,单片机在这里,它就是起个开关以变换电位的作用。
如何实现开关功能?我们知道单片机的引脚是实现各种功能的应用途径,也就是说要实现这些功能,实际上就是对引脚的应用。
单片机的引脚,其中的电源端、晶振端(也许有也许没有)那是为其自身能够工作而设置的,其它的引脚才是应用引脚即称为端口。其实端口的功能很简单:输出、输入、检测。简单解释就是自身输出高电位或低电位或者不输出、接收对方送过来的高电位或低电位或者拒绝接收、检测自身是处于高电位还是低电位,就这,没别的,真没别的。然后我们要知道,通过程序,我们可以控制端口做这些事。
下面我们就清楚了,即然单片机的端口的电位可以高可以低,那么我们可以将8个灯(假设是8个灯)的一头全部接高电平,而另一头接单片机的8个端口,在程序中首先将8个端口全部设为高电位,然后将第一个端口在程序中设为低电位——拉高为高电位——将第二个端口设为低电位——拉高为高电位......顺序执行下去并循环,流水灯就形成了。当然,你每一步操作之后,要停留一段时间,不然的话,你的眼睛是看不到变化的(太快了之后看不到变化,那是人的问题,不是单片机的问题)。单片机就这么简单。
前面说了,要让灯不亮,是要让其两头的电位一样,所以,你也可以将所有灯的一头全部接低电平,让端口输出高电平亮、低电平灭也行,当然,你硬要混着来那没人能拦着你,因为这样也能实现流水灯。
在程序设计时,对于初学者,我的建议是:一个步骤一个步骤地硬写,这样你会很快地上手并实现你所想实现的功能,否则,你会因为对编程技巧的不熟练而在编程中消耗很多时间,进而会直接影响你的兴趣,比如说流水灯的编程,你要一条一条地逐个端口写操作程序,等你熟练后再去对程序进行优化。
另外,一定要从自己搭建电路开始,开发板可以买,只是在买时加一个面包板、一些线、数码管、几个LED、电阻就行了(最节省的做法,这个可以玩转LED灯及数码管和点阵屏,再买一个可调电阻还可以玩1602及12864屏。当然你也可以买更多的东西用于搭建其它类型实验电路),至于电源及下载则从开发板上的接点引出,包括晶振也可以从开发板上引出。用这些东西搭建电路的目的是快速入门,之后就用开发板上的东西了。
以上知识,足够你在数码管、点阵屏上显示出你想要显示出来的东西了。同样的,在编程时,先一条一条地硬编,这样你就可以很快地将数码管、点阵屏的显示玩转,同时学习编程技巧,然后再从头设计程序。然后呢?就是学习程序设计语言,领略单片机的内部功能了。
PS:个人认为,学习单片机,首先得能理解其端口的功能并熟练地操作端口,然后再进阶。
作者: 慢慢思考 时间: 2018-1-8 21:12
我写的东西,都是站在初学者的角度,为解决初学者的疑惑并开拓思路,并非是因为我也是个初学者,而是因为自己的习惯喜欢究其原因却又在书本上找不到,又不喜欢跟在别人后头跑(自我感觉良好,认为书本上没有)。
单片机不过是数字电路,完全没什么神秘的,有多简单?中国第一套数字化可视化半自动加油系统,不过是一个小学文化程度在上世纪八十年代中期设计制造的,他当时的条件,不过是让现代人完全不入眼的陶瓷封装逻辑器件和单色摄像头。咳,怎么度娘没有?
作者: 慢慢思考 时间: 2018-1-8 21:44
这里对开发板的厂商倒是有个建议,那就是考虑购买者自建电路的需要,并出元器件搭配建议和相应搭建电路图及搭建教材。有些元器件,基于自建电路需要可以考虑用插座。反正开发板也可以当作下载器及电源的。
作者: izhineng 时间: 2018-1-9 04:02
正如楼主的网名一样,楼主写的东西都是值得深思的,看了以后对于工作和学习都是绝对有好处的,谢谢分享,大赞一个
作者: 花花骑士 时间: 2020-11-30 08:31
学习了,虽然搞到现在有一点理解,但没楼主说的那么清楚
作者: 嗷嗷嗷.12 时间: 2020-11-30 19:26
说的对!
作者: 汤勇辉 时间: 2023-2-22 14:25
受益匪浅,谢谢
作者: LhUpBJT 时间: 2024-12-25 11:58
虽没天赋,不太感兴趣,也用不着,但既然是主流科技,去学学又何妨,
谁料,居然没有开发板售卖,我也是醉了,关键工具得不到,我还能怎样。
作者: lzw991101 时间: 2024-12-31 10:50
立创上有很多开发板售卖啊,而且站内资源也有仿真开发板可以用
作者: D1ngevice 时间: 2024-12-31 15:10
感谢楼主 非常有用,最近正好在学习51单片机
作者: cy123321 时间: 2025-1-1 15:53
说的很对,学到了很多
作者: 谭1234 时间: 2025-1-4 10:04
就如同我现在设计产品功能就是要如何简化复杂度一样,你需要让使用者玩上几次就明白,哦是这样玩的,而不是玩上10几次才明白,那么我就不是一个合格的设计者。如同偶尔的三级菜单可接受但是大量的三级那么这就是一个失败的产品
作者: 电子保险 时间: 2025-1-10 21:05
感谢作者帮我打消了对单片机编程的畏惧心理,虽然我还没有接触单片机,以后我肯定好好学习单片机,提高自己。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |