本次的实验,使用9个按钮作为输入,并以一个数码管作为输出。当我们没有按一下任何按钮时,数码管会显示出"0"的字样;而输入的9个按钮,则分别对应阿拉伯数字的1到9。 1. 目的 □电路上,学习如何用7447译码器来显示数码管。 □程序上,学习写出一个程序,来避免接收到按键抖动的杂讯输入。 2. 材料
3. 电路
图5-12 原理图
4. 实照
图5-13 实照
5. 步骤 1. 首先连接PIC的基本操作电路: □将Vcc与MCLR引脚接上+5V,Vss引脚接上+0V。 □将石英振荡器的两个引脚,分别接上PIC的OSC1、OSC2引脚。 □将两个电容的其中一个电容,一脚接OSC1、另一脚接+0V,而另外一个电容,则是一脚接OSC2,另一脚与前一个电容的作法一样,接+0V。 2. 再来连接数码管的电路 □将7447的Vcc接+5V,Vss(或叫GND)接+0V。 □在这次的应用中,将7447的引脚RBINPUT(PBI)、RBOUTPUT(RB0)、 LAMP TEST(LT)都接+0V。 □7447的1、2、4、8输入引脚对应PC的端口A连接,如表5-11所示。 表5-11 7447输入引脚与PIC RA的对应情况 PIC16C54 RA3 RA2 RA1 RA0 74LS47 8 4 2 1 7447剩下A、B、C、D、E、F、G七个输出引脚,则是与共阳型的数码管连接,但在接上前必须串接班人220Ω的电阻。(数码管引脚请参考实验5-4的数据) 3.最后接上键盘电路: □安放47kΩr的排阻,并将其共地点接+5V。 □从排阻的引脚上引出三条线来,分别和PIC的RC0、RC1、RC2的连接。 □每个按钮都有两个引脚。将按钮的其中一个脚,接到上个步骤的引线,每条引线接三个按钮,三条引线共有九个按钮,此时九个按钮的另一脚都尚未连接。 □将按钮未连接的引脚,每三个三个短接在一起,但是短接的三个按钮不可以是来自同一引线的。 □短接的结果剩下三条线,将这三条线,分别接上PIC的RC4、RC5、RC6引脚,即告完成。
6. 流程
图5-14 流程图
7. 程序 □标号说明 ·RESET:起始程序的进入点 ·ZERO;显示"00"操作的进入点 ·SCAN:首次扫描默认的进入点 ·RE-SCAN:重复扫描操作的进入点 ·WAIT-KEY:等待按钮被按下的程序进入点 ·CANCAN:读值循环,有键按下才能跳出 ·DISP:显示程序的进入点 ·OSCAN:等待按钮被放开的程序进入点 ·OAK:读值循环,按钮全放才能跳出 ·JSCAN:细致确认按钮被放开的进入点 ·JAK:列判断未结束前的重复进入点 ·DELAY-15MS:延时子程序,请参照实习先例 ·DELAY1:延时子程序,请参照实习先例 ·DELAY1:延时子程序,请参照实习先例 ·TABLE:查表子程序的进入点 □寄存器使用配置情形 ·F2:程序计数器,查表子程序中使用 ·F3:提供运算后的标志位以供程序判断 ·F5:输出显示用的BCD码给7447 ·F7:扫描并输入按钮值用 ·F28:延时用,请参照实习先例 ·F29:延时用,请参照实习先例 ·F30:按钮值保存处 ·F31:扫描输出值保存处

|