微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

【单片机编程】易于编程的芯片让电路做你想要的事情

2017-07-27 03:22 来源:火花实验室 编辑:Janet

按一个键就能点亮一个特定的闪光图案,是什么使它闪光呢?在电视机里,它们接受从你的遥控器里发出的红外线编码信号并且把它们解码。它们操作洗衣机和烤面包机。它们就是:微控制器——单片机。你可以教它们按照你的意愿做自己的项目。

微控制器,相当于一台把所有的系统都集成到一个芯片上的微型计算机。这个单片机包含中央处理单元(CPU)、程序储存器、数据储存器和输入输出接口(I/O),这些数据接口可以连接各种各样的设备。这个芯片的CPU依靠执行储存在程序储存器里的程序指令来读写数据储存器,来导入和输出各种数据到I/O接口。

对微控制器进行编程指的是编写指令并“烧制”到程序储存器里。微控制器使用的是由二进制指令(0和1)组成的汇编语言,你可以直接用汇编语言写程序,但是大多数人还是愿意用更高级一点的C语言或BASIC语言来编程,这是因为用高级编程语言更容易懂些。如果你用这种方式编程,一个微控制器编程一般都需要下边的四部曲。

53-07-屏幕快照 2017-07-17 上午11

这篇文章介绍了这些过程。在我们的例子中,单片机将只是简单地使LED闪烁。这看起来不复杂,但难点在于建立你的编程环境并把它们组合起来使用。如果你能让灯光闪烁起来,你就也能接管整个世界!

低级微控制器VS. BASIC Stamp 微控制模块

首先,要决定是用低级微控制器还是BASIC Stamp微控制模块。便宜的低级微控制器(又叫做生产信息控制器)例如微芯科技公司或爱特梅尔公司的产品,它们徐亚额外的零件、软件、辅助电路等。BASIC Stamp微控制模块比如美国视差公司和网媒公司的产品,更适合初学者,但要贵一点儿。BASIC Stamp实际上是集成了单片机、晶振以及周边部件在一块印制电路板上,简化了外部电路的设计。芯片还集成固化了所有的开发硬件和软件。

在我们示例的电路中,我们使用了微芯科技公司的2美元的低级微控制器PIC12F675.

21-21-屏幕快照 2017-07-17 上午11

单片机编程的硬件和软件

给一个低级单片机编程,你需要三个硬件设备:一台计算机、一套带兼容电缆的硬件编程器和你准备插入单片机的目标电路,另外你还需要一些软件。

1、计算机

绝大多数单片机编程软件工具都是基于Windows平台的。你不需要太好的计算机,任何一台有匹配的端口能连到硬件编程器上的计算机都可以(串口、USB等)。

2、硬件编程器

当你把单片机芯片插到这个东西上面,就能用它把程序从计算机烧到你的单片机里,传统意义上讲,接下来你拔出单片机芯片插回到你的电路里就行了。不过有些硬件编程器允许你在线直接烧录,不用来回拔插,直接在你的电路上编程,这样调试起来就方便多了。

我们示范的例子里,使用的是微信科技公司的PICkit1集成开发套件,价格为35美元的,带USB编程器,还包括一块小的实验板,能对大多数微芯公司8~14针的单片机芯片进行编程。

3、目标电路

如果你刚开始接触单片机编程,你可以先搞一套实验电路板,就像PICkit1这样的东西,它是一块印制电路板,包含了芯片插座和各种输入输出设备,例如按键、LED指示灯、微调电位器等。使用这样的万能电路板,你可以开发各种功能,运行各式各样的程序而不必担心线路的问题。

如果你有专门的电路设计想法的话,下一步就是制作你自己的东西啦。网上有大量的电路设计图。你可能会找到最接近你设想的电路。如果你是老手,你也可以自行设计。

56-44-屏幕快照 2017-07-17 上午11

软件:

除了硬件之外,你还需要一整套软件开发工具。这包括你写代码用的文本编辑程序、一套编译软件、驱动你的硬件编程器的软件(通常买编程器时都自带)、微处理器的仿真和调试工具软件。

你可以从微芯公司或其他的开发实验室买到整套的集成开发环境(IDE)。我们用的是“质子”简化版,一套可免费试用的集成开发工具包,限制是你只能编写不超过50条BASIC指令代码——对于我们的闪灯程序来说已经足够了。

设计一个电路

首先你要考虑都需要什么样的输入输出电路:诸如开关、传感器、灯光、电动机等,然后确定供电系统。为了简单起见,我们的电路使用电池供电,但是用带隔离保护的供电装置会更保险些。

接下来,确定采用什么型号的单片机芯片。芯片的有些IO引脚例如逻辑输入端只接收数字信号,5V表示1,0V表示0。这里通常的规则是电源是高电平,地是低电平。用一个按钮开关就能把逻辑输入端的信号从0变成1。比如,用一个电阻把逻辑输入端接地,再用一个按钮开关一端连接逻辑输入端,另一端接上电源正极。这样一来,按下按钮就是1,松开按钮就是0。

有些单片机具备模拟、数字信号输入功能,你可以把它连上多种模拟传感器,比如转动可调电位器按钮能改变其滑动端的电阻值,从而改变模拟信号输入端的电压值。如果把它接在单片机的模数转换器(ADC)上,通过读取分压值,微控制器就能判断出滑块触点的具体位置,从而给出旋钮旋转的角度数值。

一个LED可以直接接到单片机的输出端,但是像电动机之类的设备就需要更大的驱动电流。你可以把输出端通过一个缓冲驱动器连接到用大电流驱动的类似的设备。电动机之类的磁电设备通常会产生反向电动势,这会损坏你的单片机芯片。通过串联一个二极管就能克服这种反向冲击电压。

你需要查看单片机芯片的参考资料来了解什么类型的传感器能接到什么类型的端口上。像PIC12F675这类的单片机具备多功能数据端口,可以通过在程序中设置寄存器来定义引脚功能,从微芯公司网站上的数据表中的寄存器表格中,我们可以看到TRISIO寄存器能够定义了哪个引脚接通模数转换器。这些寄存器为8位,每1位对应1条引脚,若要连接一个简单的二值按钮到某条引脚,就把TRISO寄存器中的对应的位置1(输入),并把ANSEL寄存器中的对应位设为0(不连接)。若要连接一个LED,则把TRISIO设为0(输出)。若要读一个可调电位器的值,则把该引脚的TRISIO设为输入(1),并把ANSEL设为与模数转换器相连接。

07-46-屏幕快照 2017-07-17 上午11

20-46-屏幕快照 2017-07-17 上午11

制作一个LED闪灯

后4

后3

后2

后1

欲查看其他类似文章,请点击链接:【神奇的电路扰动】奇特声音合成器之详细制作

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

相关阅读

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006