电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

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

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

    [复制链接]
发表于 2016-4-5 22:54:11 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
没有玩过单片机的可能对单片机还有一定的神秘感,对程序更是如此,为什么一个文件写进去它就工作了,不写就不工作。我写这个帖子的主要作用就是想以浅显的方式让大家了解一下单片机到底是怎么个东西。

首先,单片机是一个芯片(废话)。它和程序是什么样的关系呢。你可以认为单片机是一个可以接受你命令的芯片,你给它命令,它就执行,否则就傻傻地在那里,什么也不会做。但是它能接受的命令只有两个,第一,将某一个管脚连到电源或地。第二个,判断某个管脚上有没有电。只有这么点功能。你能想出什么花样,那么它就能帮你完成。

这里要介绍一下几个名词,这里给出的解释并不严谨。
1高电平和低电平
高电平就是电压是接近于单片机供电电压的状态,低电平是接近于0V的状态。一般情况下,电压高于2V都认为是高电平,小于0.7都认为是低电平。那么0.7到2V之间的呢?对不起,正常工作时不可能出现中间的电压。
IO口
刚才说到了,单片机只能接受两种命令,一是将管脚连到电源或地(输出电平),二是判断管脚电压(输入状态)。IO口就是指这些可以被控制的管脚,I(input 输入)O(output 输出)。它们可以通过命令让它输出一个电压状态,也可以读取外边的状态。记住了,这里是状态,要么为高,要么为低,没有其他结果。


单片机就是这么一个傻傻的东西,余下的是就是程序的范围,注意了,程序运行的速度非常快,基本都是M为单位的,也就是每秒100万次。

那么了,我们从最简单的跑马灯来了解一下,程序是怎么来控制这个傻傻的单片机,让它变成一个有趣的东西的。
前面说了,单片机只能接受两种命令。一是输出,二是输入。所以你必须搭一个电路,让电平变成可见光。这个很简单,把管脚通过一个LED+电阻。这时就有两种接法,一是接到电源,那么管脚上为低电平时就会亮。另一种是接到地,管脚上为高电平就会亮。
既然要做跑马灯,那么至少得准备4个灯吧。否则效果不明显。
那么我们就给这四个灯分别编上号 叫1 2 3 4吧。所以跑马灯占用了4个管脚(4个IO口)

前面是硬件部分,软件部分干什么呢
换句话说,如果让你直接去指挥单片机,你该对它下哪个命令?
我想这个答案应该很容易想到
1.1号脚输出高电平(让1号灯点亮),其他几个都输出低电平(不亮)
2.1号脚输出低电平,2号输出高电平
3.2号输出低电平,3号输出高电平
4.3号输出低电平,4号输出高电平。
5.重复1-4.

这时你自己去想一下,这些灯是不是应该按次序亮的。很显然应该是正确的。那就说明你这个程序已经完成了。
到时候只要把这几句话变成相应的指令(这个过程由电脑上的软件完成,这个过程称为编译),就会生成一个文件,这个文件加到单片机里,单片机就按你的要求运行了。

实际上,如果你把这段程序加到单片机里,你会发现四个灯都是亮的,而不是依次点亮。原因是前面说,程序运行的速度非常快。每秒都是百万次的,所以如果真的这么写,这个灯会按每秒几十万次的速度依次点亮,因为太快了,你看到的就是它们都亮在那里。
这时你要做的是就是改一下程序。变成下面的

1.1号输出高电平,其他输出低
2.等0.5秒
3,1号输出低电平,2号输出高
4.等0.5秒
5.2号输出低,3号输出高
6.等0.5秒
7. 3号输出低,4号输出高
8. 等0.5秒
9.重复1-8

这样改过之后,灯就会按每0.5秒跳一次的速度依次点亮。你可以改变等待的时间,就可以得到不同的跑马速度。你也可以增加灯的数量,让更多的灯参加跑马。还可以加入控制,比如某个额外的管脚为高时才开始跑,为低时就一直在等。这就得到了可以控制的跑马灯。

怎么样?可以发挥的空间很大吧?变成什么,完全就看你的想象力了。

今天 就先讲这些。有什么想问的,欢迎大家提问。谢谢


















评分

参与人数 3威望 +9 金币 +1 收起 理由
徐张青 + 1 谢谢分享,家电维修论坛有您更精彩!
1074007820 + 2 很给力!
松树果 + 6 + 1 鼓励一下,继续

查看全部评分

发表于 2016-4-6 00:46:59 | 显示全部楼层
不错,待续!
发表于 2016-4-7 11:58:39 来自手机 | 显示全部楼层
不错、等待续
发表于 2016-4-7 12:06:41 | 显示全部楼层
这个还真不会玩,给我感觉有点复杂。
 楼主| 发表于 2016-4-7 17:39:51 | 显示全部楼层
松江贵馨家电维 发表于 2016-4-7 12:06
这个还真不会玩,给我感觉有点复杂。

按你的想法做,这是设计
按别人的想法去做,那是维修
发表于 2016-4-7 18:30:02 | 显示全部楼层
有意思,简洁明聊,继续讲解。
发表于 2016-4-8 05:23:00 | 显示全部楼层
期待楼主的后续讲解  非常想学   谢谢楼主的分享
发表于 2016-4-8 07:02:11 | 显示全部楼层
彩电CPU算是单片机吗
 楼主| 发表于 2016-4-8 09:18:10 | 显示全部楼层
1074007820 发表于 2016-4-8 07:02
彩电CPU算是单片机吗

彩电那个 有些电视里边只有一个芯片,俗称“单片机”,类似的还有双片机,三片机。
那种不是我这里讲的单片机。我这里讲的单片机叫“可编程微控制器”,因为它的电路简单,只有一个芯片,所以叫单片机。
而彩电那种“单片机”是将大量的功能集成到同一个芯片里边去。这种称为专用芯片,也叫ASIC芯片。这种做法常用于需求量巨大的情况下,为了降低成本则专门设计的芯片。设计一个比较大的芯片,费用相当吓人,光投片一次就需要几十万甚至几百万。人工设计费用更是个巨大的开销,更要命的是只要一点点设计错误。投片的钱就打了水漂。

现在USB2.0的控制器就是一个小芯片,几块钱就行了。上次在哪个论坛看到的,在没有这个芯片的时候,用了一堆高档的FPGA拼出来的。那堆芯片价值少说上万美元。体积不比一台DVD小。而给开发这些代码的工作量更是无法想像。具体多少我不知道,但我可以保证的是,那堆代码如果让你一行一行地输入到电脑,估计这辈子都别想完成。
如此巨大的工程,最后搞成了专用芯片,就变成几块钱了。所以降成本非常明显。当然,只有数量足够大的时候才会设计专用芯片,否则也是亏本。



发表于 2016-4-8 09:27:20 | 显示全部楼层
不错,点个赞
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

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

GMT+8, 2024-11-21 19:35 , Processed in 0.064287 second(s), 4 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号

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