关于设计,生活和电子的二三事

Learning to PIC with a PIC-EL — Part 2

从PIC-EL开始学PIC
——第二部分
借助这款简单的外设接口控制器(PIC)演示板,快速掌握如何使用PIC微控制器
作者:Craig Johnson,呼号是AA0ZZ
翻译:LifeWieller
本文已发表于《电子制作》2015年7月刊

在上一期杂志中我介绍了我设计的PIC-EL演示板。结合由John McDonough(呼号是WB8RCR)编写的在线课程(更多课程正在制作中),初学者可以学习如何使用外设接口控制器(PIC微控制器)【注释1:C. Johnson,呼号是AA0ZZ,“Learning to PIC with a PIC-EL – Part 1”,QST,2007年5月刊,37-42页,可从www.arrl.org/files/qst-binaries/Johnson0507.pdf下载】。本文的目的是帮助初学者理解如何使用PIC微控制器。通过详细讲解PIC-EL硬件组成及对应的软件代码和Elmer-160课程【注释2:www.amqrp.org/elmer160】,爱好者可以学到如何将PIC 应用于很多有趣的应用。一起开始吧!

PIC-EL硬件电路
上一期杂志中我已经简单介绍了PIC-EL演示板上的接口和硬件电路。这篇文章将会详细介绍板子上的电路模块,并介绍如何将模块用于自己的制作。PIC-EL板子的演示板部分可以让爱好者了解PIC微控制器如何应用于不同用途。借助PIC-EL演示板,你可以学会从PIC的基本使用到如何使用PIC控制复杂电路。板子上提供以下资源可供爱好者使用:
⚪ 18脚PIC微控制器(如16F84/A,16F628/A或16F88等型号);
⚪ 4MHz晶振;
⚪ 2行16字符液晶显示屏;
⚪ 旋转编码器;
⚪ 三个通用按键;
⚪ PIC微控制器复位按键;
⚪ 三个发光二极管;
⚪ 带三极管驱动的扬声器;
⚪ 连接NJQRP DDS子板的连接器【注释3:www.njqrp.org】;
⚪ 连接CW电键的双声道耳机插座;
⚪ 带三极管驱动的双声道耳机插座,可用于监听发射键控信号;
⚪ 三极管输入电平转换电路,可将低电平信号转换成PIC能够检测的信号电平;
⚪ 多用途BNC连接器,可配置为DDS信号输出或信号输入;
⚪ 提供2排6引脚连接器供连接外部编程器使用。

电路组成
因为多数PIC微控制器引脚都有两种或以上功能,PIC-EL电路原理图(见第一部分图1)看起来比较复杂,需要将电路图分解成基本功能模块以方便理解。本文会介绍如何将不同功能模块应用于其他用途。
在上一部分我介绍了PIC-EL演示板上的编程接口部分(电路图左半部分),在这篇文章中我会介绍板子上的功能模块,带你了解它们是如何工作的。

PIC系统时钟
系统时钟部分由4MHz晶振和两个22pF谐振电容组成。这部分也可以用RC振荡电路或16F628内部振荡器代替。在板子上提供的功能中,有些功能,如频率计,对时间要求比较严格,因此板子上采用晶振作为时钟源。
PIC运行所需的基本电路十分简单,如图5所示。

发光二极管
图6中表示出两种常用的连接发光二极管的电路。一种是将发光二极管负极接地,正极串联电阻后接到PIC引脚上。需要点亮发光二极管时,在程序中控制连接发光二极管的引脚输出高电平(通常是+5V),为发光二极管提供电流。另一种是将发光二极管正极接+5V,负极串联电阻后接到PIC引脚上。这种接法需要控制PIC引脚输出低电平以点亮发光二极管,PIC引脚在此起到吸收电流作用。这种方法的不足之处是控制逻辑和实际发光情况是相反的,即当引脚输出低电平时发光二极管点亮,输出高电平时发光二极管熄灭。
在PIC-EL板子中使用的是第二种方法,即将发光二极管负极串联电阻后连接至PIC引脚。
正常情况下,根据型号不同,发光二极管需要的电流在1mA ~ 20mA之间,通常会使用电阻限流,流过的电流大小与串联电阻大小有关。因为在PIC-EL板子上每个引脚具有多个功能,为减小流过PIC引脚的电流,避免不同功能之间相互影响,PIC-EL使用的电阻(R16,R17,R18)为2.2kΩ。通常发光二极管压降约为1.8V,即电阻两端的电压约为3.2V,计算可知流过电阻和发光二极管的电流约为1.4mA,这足以使发光二极管正常发光。如果你想让发光二极管更亮一些,可以减小电阻阻值,比如改用1kΩ电阻(此时流过发光二极管的电流约为3.2mA)。

按键
按键部分电路如图7所示。三个常开单刀单掷按键(PB1,PB2,PB3)分别连接至PIC微控制器的RA4,RA3,RA2引脚。根据需要它们可以设定为任何功能。另外一个常开单刀单掷按键连接至PIC的芯片复位引脚,用来复位PIC微控制器,让程序从头开始运行。三个通用按键通过10kΩ上拉电阻(R22,R21,R34)连接至芯片电源正极VDD(+5V)。通常外部上拉电阻可以认为是强上拉,可以提供较大的上拉电流,保持引脚电平为相对稳定的状态。在某些情况下,PIC的一些引脚(16F628是端口B)可以通过软件打开内部弱上拉(通过清除PIC内部OPTION寄存器第7位实现),在此模式下相当于在每个端口和+5V电源间连接了约50kΩ电阻,因此可以不使用外部上拉。对于按键应用,可以使用内部上拉代替外部上拉电阻。
PIC芯片的复位引脚(第4个引脚)通过10kΩ上拉电阻连接至+5V,并通过按键PB4和100Ω电阻连接至地。PIC微控制器正常工作时MCLR引脚需要保持+5V,并且只需要很小电流,因此这里使用10kΩ上拉电阻。和按键PB4串联的100Ω电阻可以防止电压突变情况下锁死PIC微控制器。

液晶显示屏(LCD)
PIC-EL演示板上使用的是2行16字符液晶显示屏,每个字符显示区域由5×10点阵构成,液晶屏使用Hitachi 44780控制器。为减少对其他功能的影响,液晶屏和PIC微控制器仅使用7根线连接,使用PIC编程器(也用到PB6和PB7引脚)时液晶屏对编程器没有影响。
R14,R15构成分压电阻,为液晶屏对比度调节引脚(第3个引脚)提供合适的电压。液晶屏的15引脚为背光正极引脚,通过串联电阻连接到+5V,16引脚为背光负极引脚,连接到地。PIC-EL使用的液晶屏背光大约消耗75mA电流,如果使用其他型号的液晶屏,需要根据液晶屏规格改变串联电阻阻值。图8为液晶屏和PIC微控制器连接的电路图。

旋转编码器
旋转编码器使用PIC微控制器两个引脚,RA3和RA4,并通过R23和R24上拉电阻连接到+5V。编码器本质上是两个随着轴转动闭合和断开的开关。C3和C4与R25和R26一起构成滤波器,消除开关抖动。如果没有这几个元件,在操作编码器时可能产生误动作。
PIC-EL板子上的旋转编码器每圈产生24个脉冲,因此每旋转一圈PIC微控制器能够在两根信号线上检测到96次电压改变。旋转编码器输出的信号是部分重叠的格雷码,可以通过检测两个信号边沿产生时间判断旋转方向。图10为旋转编码器工作时两个引脚上的波形,表1提供一种检测旋转方向的方法。

扬声器
PIC-EL演示板提供一个由三极管驱动的小型扬声器(SPKR-1),如图11所示。三极管驱动部分可以将PIC引脚输出的信号放大,驱动扬声器发声。对于多数应用,连接到三极管基极上的二极管和电容不是必须的,但对于PIC-EL演示板这两个元件非常重要,它们可以避免无意中将连接扬声器的引脚设为输出高电平时扬声器一直发声。三极管Q5这里作为开关使用,当Q5打开时电流流过扬声器,扬声器发声,Q5关闭时扬声器关闭。
通过给PIC编程控制PIC对应引脚产生脉冲,脉冲经过电容C11控制三极管Q5打开和关闭,使扬声器发声。调节PIC引脚输出脉冲频率可以改变声音音调。由于PIC运行速度很快,而人耳可闻的声音频率较低,在程序中需要使用延时函数以产生所需的频率。

连接NJQRP的DDS子板
通过J6插座,你可以将AmQRP的DDS子板连接至PIC-EL。子板所需的信号及电源通过J6提供。关于子板的详细信息可以在www.amqrp.org/kits/dds60/找到,PIC与DDS子板连接的电路图见图11下方。
DDS子板产生信号通过J6插座输出,信号最大电平约600mV,频率范围根据子板型号从0到30MHz或60MHz。

输入电平转换电路
输入电平转换电路如图12所示,可以将输入的小信号转换成PIC能够检测的信号电平。DDS子板输出的信号电平太低,不能直接用PIC采样进行频率计数,因此需要通过电平转换电路提高信号电平。注意这部分电路并非线性放大电路,输出信号不是放大后的正弦波,而是方波,但是对于频率计数来说,方波和正弦波效果一样。
HDR2用于选择输入电平转换电路的输入信号源。两个输入信号源分别为DDS子板输出和BNC连接器J7输入.

CW电键输入
CW电键可通过1/8英寸双声道耳机插座连接至PIC,如图13所示。电键插头的最前端和中间金属环分别连接至PIC两个引脚,并通过上拉电阻连接至+5V【注:此处电路图有错误,R22应该是连接至+5V】,可以像使用单刀单掷按键那样使用CW电键。一个电键演示程序可从我的网站或PIC-EL Yahoo群组的FILES部分下载。

使用键控控制电台
PIC-EL板子上提供一个用于连接电台的键控插座,图14为键控插座部分电路图。PIC引脚输出的键控信号通过三极管驱动连接至双声道耳机插座的最前端。键控使能时,三极管导通,将插座前端和地短接,控制电台发射;键控禁止时三极管断开,插座前端和地断开,电台不发射。多数新型号电台使用正键控,可以直接配合PIC-EL板子使用。这种电台在键控禁止状态下插头前端有约+3V到+5V电压,将插头前段与地短接使能键控。一些早期电台(特别是电子管电台)使用负键控,在键控禁止状态下通常在插头前端有-30V左右电压。PIC-EL板子只能配合正键控电台使用,如果你用的是负键控电台,或者是高压阴极真空管键控式电台,那么你需要额外的继电器或驱动电路以便通过PIC-EL 控制电台。

频率计
使用前面提到的输入电平转换电路,PIC-EL可以实现频率计功能。输入电平转换电路的输出连接至PIC微控制器第3个引脚(RA4/T0CKI引脚),这个引脚可以作为通用输入/输出引脚,也可以配置为计数器输入引脚。在做为计数器输入引脚使用时,可将脉冲计数数值存入TMR0寄存器,以供频率计程序使用。

使用PIC控制继电器
PIC-EL演示板本身没有提供控制继电器的功能。PIC引脚能够提供最大20mA电流,对于需要较大电流的元器件需要增加额外的驱动电路。图14上方为使用额外驱动电路控制继电器的示意图,图中RX阻值需要根据继电器线圈所需电流选择。2N7000为通用MOSFET,可以适用于绝大多数应用。对于某些应用,如控制LCD背光,IRLML2502之类的低导通电阻MOSFET更合适,因为IRLML2502漏极到源极的导通电阻约0.045Ω,而2N7000导通电阻RDS在2~5Ω之间。

遇到问题?
如果使用PIC-EL过程中遇到问题,或者需要相关文档或详细资料,可以通过我的网站,www.cbjohns.com/aa0zz,Yahoo PIC-EL群组或[email protected]联系我。

总结
我不希望学习PIC的过程是枯燥乏味的,而是能在学习过程中找到乐趣,因此这两篇文章只是简单介绍PIC-EL的使用和硬件电路。我希望你能将PIC-EL作为入门的实验平台。当你学会使用PIC微控制器之后,就可以根据自己想法制作出实用的小制作。大胆开始尝试吧!

Craig Johnson,呼号是AA0ZZ,联系地址是4745 Kent St,Shoreview,MN 55126,邮箱是[email protected],个人网站是www.cbjohns.com/aa0zz

图5:PIC运行需要的基本电路

图6:使用PIC微控制器控制LED的两种方法

图7:PIC-EL按键部分电路图,按键PB3一端接地,一端连接上拉电阻后连接至PIC引脚

图8:PIC-EL液晶显示屏部分电路图

图9:PIC-EL旋转编码器部分电路图。旋转编码器通过两个引脚和PIC连接

图10:格雷码波形示意图

图11:PIC通过三极管驱动扬声器。DDS子板通过三个引脚和PIC相连

图12:输入电平转换电路,将输入小信号转换成PIC可以检测的信号电平

图13:CW电键通过1/8英寸双声道耳机插座连接至PIC

图14:PIC键控输出和继电器驱动部分电路图

表1:检测旋转编码器旋转方向的一种方法(参见图10)
正向旋转时,波形产生顺序为a,b,c,d,a,b,c,d,所以两个引脚检测到的电平顺序为:
00,10,11,01,00,10,11,01,00……
逆向旋转时,波形产生顺序为a,d,c,b,a,d,c,b,a,所以两个引脚检测到的电平顺序为:
00,01,11,10,00,01,11,10,00……
检测旋转方向的方法如下:
1、 取检测到两个引脚电平的右侧一位;
2、 将其与下一个状态电平左侧的一位做异或运算
3、 如果结果是1,旋转方向为正向旋转,如果结果是0,为逆向旋转。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据