二、实验板应用实例彩灯控制程序
在电子市场上,销售有各种彩灯控制器,供节日活跃气氛和娱乐用,彩灯花样也是多种多样的。早期电子市场上的彩灯控制器,主要是用数字集成电路制作的。由于数字集成电路功能有限,所以彩灯的花样越多,所用的集成块也越多,电路也相应复杂。一旦彩灯控制器用上单片机(微控制器).则电路大大简化,因为所有的彩灯花样,都是用软件完成的。
这里介绍用PIC16F84制作的节日彩灯控制器,主要想说明PIC单片机循环程序的应用及编辑彩灯控制器程序的方法。由于PIC16F84的I/O口数量的限制,所介绍的程序应当说是实验性质的。
1.PIC16F84节日彩灯控制器的硬件电路
鉴于将介绍的彩灯控制器具有实验的性质,所以所介绍的彩灯程序,可用前图PIC16F84/627/628实验板电路进行演示,演示的功能如下:在前图电路中,因PIC16F84的A口RAO~RA4位,接有微动开关和位的上拉电阻,可以设定A口为输入。B口外接有8只LED,所以设定B口为输出。
电路的功能是,每按动A口的某一位,即可产生一种彩灯花样,B口的LED即可进行模拟显示。因A口有5个微动开关,所以可以分别模拟显示5种彩灯花样。若要把这种模拟性质的彩灯变成实用产品,只需对前图电路作必要修改。因为实用彩灯,其耗电较大,此时可将前图电路的B口加功率接口电路,而PIC单片机的输出,仅仅作为彩灯的控制信号。
2.PIC16F84节日彩灯控制器的程序流程和源程序
根据以上所述彩灯控制器的电路功能,编制的程序流程如右图所示。
根据上述流程图,建立的源程序定义为PICO01.ASM,其清单可从本刊网站下载。
3.关于源程序PICO01.ASM的特点
PIC16F84的A口共有5位,这里把A口作为输入,利用判断指令BTFSC(也可改用BTFSS)作PIC007.ASM程序的起动信号,引导程序分支(SET1—SET5的标号程序),并完成一种独立功能(一种彩灯花样),用该实例,可学会任意起动判断指令BTFSS的使用方法。
4.关于5种花样彩灯程序
PICO01.ASM花样彩灯程序,分别由标号SET1~SET5引导的5种花样彩灯程序。每一种彩灯程序,是由一种主要指令完成的,以便于练习一种指令的灵活应用。
5.关于延时子程序
在PIC007.ASM中,用了两种由标号DELAY和DELAY1引导的延时子程序,其目的是配合B口的高、低电平持续时间,使产生的彩灯信号,给人的视觉有动感。所以编制彩灯花样程序非常灵活,无严格的时间设置要求。
6.对源程序PICO01.ASM的修改
可以把独立的5种花样彩灯程序,进行简单修改,让5种花样彩灯合并为5种花样混合成一种彩灯花样。方法是把标号SET1引导的程序中的GOTOSET1;标号SET2引导的GOTOSET2;标号SET3引导的GOTOSET3;标号SET4引导的GOTOSET4和标号SET5引导的SET5全部删除,仅把GOTOSET5改为GOTOSET1即可,此时即可人工起动PIC16F84的A口任何一位(按微动开关),即可产生合成的花样彩灯程序。
7.关于PICO01.ASM源程序的注释
单片机源程序的注释,是以程序的功能为目标,而不是对指令的作用注释。注释的目的是便于自己阅读,这里加以说明,以便阅读以上源程序中的注释。
三、PICO01.ASM源程序实验
在PC机上一旦建立了PICO01.ASM源程序后,即可利用MPLAB集成开发软件进行汇编,生成目标码PICO01.hex.即可在编程器上将其目标码烧写到PIC16F84的芯片中(若芯片是PIC16F84A.只需在源程序中先将LfSTPIC16F84改为PIC16F84A和INCLUDEP16F84.INC改成INCLUDEP16F84A.INC即可)。
把烧写好的芯片,放在PIC16F84/16F627/16F628实验板的活动插座上,再按以下方法操作。
1.将实验板上的8位拨动开关RBOB~RB7B拨到ON位置(在实验板上靠边的地方),再将实验板上的5位拨动开关(在实验板上靠另一边的)拨到ON位置,其它拨动开关全部关闭。此时的实验板电路等效于《PIC单片机速成教程》书中第6页的前图-4电路。
2.上述操作完成时,即可插上电源适配器,此时只需触动一下实验板上任意位的微动开关,即可完成B口LED的设定的显示功能。
四、关于动态扫描实验
限于版面限制,有兴趣时,可将《PIC单片机速成教程》书中的第106页PIC16.ASM的6位计数动态扫描程序中简化为4位,同样可以用16F84/627/628实验板作相应的显示。
若难于实现修改,可在《电子制作》的网上查讯其4位数码管LED的源程序。