您当前的位置:五五电子网电子知识单片机-工控设备PIC单片机输入端口的实验 正文
输入端口的实验

输入端口的实验

点击数:7370 次   录入时间:03-04 12:03:21   整理:http://www.55dianzi.com   PIC单片机
输入端口的实验,可以继续沿用实验5-0的输出端口电路,然后由这个电路再加上一些器件来完成。这次的实验是用一个按键,来控制八个LED的亮灭情形,当按键按下,八个LED一起亮,放开之后,又一同暗下去。

提醒您:
事实上将5-0电路上的LED拆下几个也没关系,只要留下一个就可以显示出按键的操作是否有效即可。

1. 目的
□电路上:学会如何将按键与PIC连接,并可向PIC输出HI、LO信号。
□程序上:学会用PIC指令,来检查I/O端口引脚的HI、LO信号,并利用检测到的信号,来改变程序执行的路径。

2. 材料

表5-2 材料

3. 电路


图5-4 原理图

4. 实照


图5-5 实照

5. 步骤
1. 准备实验5-0的电路。(注1)
2. 将2kΩ的电阻,一端接+5V,另一端接PIC的RA0引脚。(注2)
3. 将RA0引脚接按键开关的一端,而按键开关的另一端接+0V.(注3)
4. 打开电源,按下按键,看到LED跟着按键的按下与放开而一明一灭的话,便是成功了!

∴注1:如果实验5-0的电路已经拆除,请参考以前的步骤,重新完成一份实验5-0的电路。
∴注2:电阻的主要作用,是限制电源的电流,不要超过PIC芯片的端口引脚所能承受的程度,保证PIC芯片不受电流损坏。
∴注3:如果不清楚按键开关的哪些引脚是开路、是短路?可以用万用表的欧姆档来测量。

6. 流程图


图5-6 流程图

7. 程序
□标号说明:
·RESET:起始程序的进入点,PIC复位后即会跳到此处
·TEST:测试按键电位的进入点,除程序执行外,每当执行完LED亮或灭操作后即会跳入此处
·LIGHT:LED亮操作执行的进入点
·DARK:LED灭操作执行的进入点

□寄存器使用配置情况
·F5:测试按键电位操作用
·F6:输出LED亮灭操作用


8. 说明
(1) PIC16C57在复位后(RESET)后,第一个执行的地址是7FFH,此地址我们放了一个GOTO指令,使程序改到另一个地方继续执行(因为地址7FFH之后就没有地方可以放程序了)。
(2) 主程序的开始处放在100H的理由,主要是把每一页的前256字节空间都留给子程序使用。
(3) 由于TRIS指令只允许用W寄存器来指定,所以必须将要写入端口的值,先写入W寄存器中,再用TRIS来设置各端口的状态。本次是将端口B的8个引脚全部设为输出,而端口A的第一个引脚为输入,其他的为输出。
(4) BTFSS指令是个作判断,然后改变执行路径的指令,这里的程序使用这个指令,是用作检查开关的HI、LO,来改变LED的亮灭情形。
(5) 将FFH写入F6,使LED全亮。
(6) 将00H写入F6,使LED全熄。
(7) "END"为虚指令,告诉编译器编译到此行即可结束。

名词解释:虚指令?
在前面的程序列表中,有ORG、END等指令,你在PIC的33个指令中找不到的,这种ORG、END的指令,是不会被编译器译成任何机器码的,也没有可以对应的机器码可以转译。
它们的主要作用只是提醒编译器,在编译过程时必须注意的事项,例如后面的程序码要安排在存储器中的什么地址?编译到何处停止等,还有许多虚指令,也提供各种不同的功能等,都只是为了辅助编译或者是方便编写程序而已,善用虚指令会为你带来许多的方便。

9. 除错
假如按键无法控制LED亮灭的话,可能是下列的原因:

1. 把按键的引脚搞错,例如本来就短路的引脚,误以为是经过按键按下才短路。
2. 按键"抖动"的情形太过厉害,这样可改用下列的电路取代,如图5-7所示。


图5-7 消除抖动的电路




本文关键字:暂无联系方式PIC单片机单片机-工控设备 - PIC单片机

上一篇:输出端口的实验