如何利用单片机和传感器信号控制LED的亮暗?

来源:百度知道 编辑:UC知道 时间:2024/08/23 06:14:12
我现在的情况:
单片机电路已经搭好了,现在从51单片机p3^2口(此口是否适合作信号输入口??)外接一个热释电传感器,这个传感器每当有接近人体温的热源从表面经过时,就会产生一个很规整的脉冲方波(我用示波器看过,由0V跃变到5V,经过一小会儿时间又跃变到0V,很规整的波形),现在想实现这样一个功能:
单片机开机时,接在p3^4口的LED暗;然后手划过传感器,产生一个脉冲,LED变亮;手再划过传感器,产生一个脉冲,LED变暗。如此反复,实现奇偶次脉冲分别控制LED亮暗的功能。
请问这样的功能单片机要怎么接呢?C语言程序(或汇编)要怎么写?
小弟刚学C51编程,希望高手指教!非常感谢~^_^
我自己用C语言写了整个程序,实现了我的需要的功能,谢谢各位高手的解答~~~~
#include<reg51.h>
sbit clock=P1^0; //CLOCK 时钟信号
sbit enable=P1^1; //ENABLE 使能
sbit half=P1^2; //HALF 半步/全步控制
sbit cw=P1^3; //CW 转向控制
sbit p3_2=P3^2; //中断0入口
sbit p3_4=P3^4;
int i,j;
i=0;
void main()
{
EX0=1;
EA=1;
while(1);
}
void _int() interrupt 0
{
i++;
j=i%2;
if(j==1)
{
p3_4=0;
}
else
{
p3_4=1;
}
}

哇。。。真是的。怎么都不想自己做啊。我当时自己做 了一个星期也没有做出来。慢慢自己整整看了。总比一点不动强,大学时光不要浪费。过来人。不信你会后悔的,就乡当初别人警告我们一样,不听,现在后悔啊。不要做让自己后悔的事情

ORG 0000H
AJMP BOOT
BOOT: MOV R1 #02
BOOT1:JNB P3.2 BOOT1
AJMP DELAY ’这个是延时1S的,根据脉宽更改
DJNZ R1 LOOP
AJMP BOOT1
LOOP: MOV R1 #02
CPL P3.4
RET
DELAY: MOV R5,#08H
F1: MOV R6,#0FFH
F2: MOV R7,#0FFH
F3: DJNZ R7,F3
DJNZ R6,F2
DJNZ R5,F1
RET