我希望阅读了关于编程PIC16F84A的帖子的每个人现在都能熟练地将程序下载到控制器,并检查控制器的工作。在之前的文章中,我们讨论了使用PIC16F84A产生输出(开关led)。在这里,我将告诉你如何处理输入——你将如何向PIC提供输入,以及如何对其做出响应。众所周知,控制器有13个I/O引脚。这13个引脚可以配置为输入或输出。正如大家所知,在大头针上产生输出相当容易。只需将引脚标记为输出,并发送一个高信号给它。但是如何使PIC接受输入呢?

有两种方式,PIC(或任何控制器)可以感应数字输入-低到高和高到低的转换。

低到高:

在这种方法中,选择一个引脚,把它标记为输入,用大电阻(说10K)连接到地,然后检查引脚的高电压。在输入端和地之间连接的电阻被称为“拉下电阻”,因为当没有输入时,它拉下连接的引脚的电压水平。

高到低:

在这种方法中,选择一个引脚,标记它为输入,将输入连接到大电阻的Vcc(如10K),然后检查引脚的低电压。在这里,连接在输入引脚和Vcc之间的电阻被称为“拉升电阻”,因为当没有输入时,它拉升连接引脚的电压水平。

程序和电路获得一个输入和切换一个LED:

开始BSF地位,05年h
MOVLW B ' 11110000 '
MOVWF TRISB
供应量的地位,05年h

循环BTFSS PORTB 4
GOTO循环
净水器PORTB 0
转到开始

这个程序什么也不做,但当你按下一个连接到RB4的开关时,一个连接到RB0的LED被打开。下面是对上述代码的解释。

开始BSF地位,05年h- START只是一个标签。下一条指令BSF STATUS,05H设置STATUS寄存器的第5位-导航到银行1。
MOVLW B”11110000' -将值11110000移动到w寄存器。
MOVWF TRISB-将w寄存器的内容移动到TRISB寄存器。设置PORTB的前四个引脚为输入,后四个引脚为PORTB输出。
供应量的地位,05年h—清除STATUS寄存器的第5位。这显然会导航回银行0
循环BTFSS端口,4 -LOOP也是一个标签。BTFSS是一条新指令(Bit test File skip if set),这意味着测试引脚RB4(在本例中),如果设置了,则跳过下一步。
GOTO循环-解释很明显。这条指令告诉控制器进入LOOP标签。这里发生了什么是,指令BTFSS检查RB4销低到高过渡,如果没有找到任何RB4的变化,它会按顺序和自去再次BTFSS指定下一个指令,程序循环直到RB4设置在这里。当设置RB4时,BTFSS指令将跳过下一行。因此跳过GOTO LOOP。因此,程序失去循环并正常地继续。
净水器PORTB 0-该指令设置RB0。因此,将LED连接到RB0将驱动LED到高。
转到开始-再次从头开始启动程序。

电路:

将程序下载到控制器上,并将控制器组装在如上所示的无焊料面包板上。按下按钮,LED发光,这是完美的输出。

2评论

  1. 西班牙

    嗨Nipuna,使用oshon PIC模拟器。你可以很容易地编译和运行你的汇编代码在那个ide,而且,设置频率和控制器也是一个门外汉的工作。

  2. Nipuna Hasanka

    哪个应用程序用来编程?我用Micro C进行Pic编程,它比Mp实验室简单。

Baidu