银行一米线的c程序 芯片AT89C52,语音模块接单片机的P34,P35端口,激光模块接单片机的P24,P25端口,语言是
作者&投稿:师温 (若有异议请与网页底部的电邮联系)
这电路简单啊,你只要把你的信号接一个IO口,报警控制接一个IO口。程序去判断信号IO,为低的时候就把控制IO赋值1就可以了。
如图:P3口具有除了基本I/O口以外的第二种功能,所以P3口比P1口多了一个“第二输入功能线”和“第二输出功能线”。“第二输出功能线”与锁存器的输出端Q通过一个与非门和管脚部分连接。这样,如果“内部总线”向锁存器Q端输入1时,根据与非门的逻辑关系,与非门的输出端(即场效应管的栅极G)则反相跟随第二输出功能线的电平,此时,如果第二输出功能线为高电平,场效应管输入为低电平,于是场效应管截止,这样,管脚P3.X输出高电平;反之亦然。
当P3.X口作第二功能输入时,输入信号通过一个缓冲器进入“第二输入功能线”,在“读管脚”之前就把第二功能的输入信号读走。
//程序一直检测激光模块接口,
//如果先检测到里面的接口,延时一段 时间后,又检测到外面的接口信号,说明有人往外走,启动语音“谢谢光临”
//如果先检测到外面的接口信号,延时一段时间后,检测到里面的接口信号,说明有人走进来,启动语音“某某银行竭诚为你服务”
//当有人还在里面的时候,后续的人进来,提示“请退到一米线外”
#include<AT89X52.H>
//端口定义------------------
sbit WELCOME =P3^4;
sbit BYE =P3^5;
sbit INSIDE =P2^4;
sbit OUTSIDE =P2^5;
// 语音(P3.4和P3.5)和激光模块(P2.4和P2.5)
unsigned char someone; //有人 为1,无人0
//延时---------------------
void delay()
{
unsigned char i,j,k;
for(i=0;i<200;i++)
for(j=0;j<200;j++)
for(k=0;k<200;k++);
}
//主程序------------------
void main()
{
while(1)
{
if(INSIDE) //出去
{
delay();
if(OUTSIDE)
{
someone=0;
BYE=0;
}
}
if(OUTSIDE) //进来
{
delay();
if(INSIDE)
{
someone=1;
WELCOME=0;
}
}
if(someone)
{
if(OUTSIDE) //后面有人进来
{
delay();
if(INSIDE)
{
//请退到一米线外
}
}
}
}
}
具体还要按 实际 调整
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rst=P3^4;
sbit sda=P3^5;
uchar flag;
//sbit key=P2^0;
//sbit l1=P1^2;
//sbit l2 =P1^3;
//sbit fm=P1^7;
sbit j1=P3^2;
sbit j2=P3^3;
uchar flag1,flag2,flag3,flag4;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delayus(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
void send_oneline(uchar add)
{
uchar i;
rst=0;
delay(1);
rst=1;
delay(17); /*复位延时 17MS*/
rst=1;
delay(6); /* delay 6ms */
sda=0;
delay(5); /* delay 5ms */
for(i=0;i<8;i++)
{sda=1;
if(add & 1)
{delayus(4); /* 400us */
sda=0;
delayus(2); /* 200us */
}
else {
delayus(2); /* 200us */
sda=0;
delayus(4); /* 400us */
}
add>>=1; }
sda=1;
}
void main()
{
uchar num;
while(1)
{
if(j1==0)
{
flag=1;
num++;
while(!j1);
while(flag)
{
if(j2==0)
{
while(!j2);
if(num==1)
{
send_oneline(0);
delay(3000);
}
if(num>=2)
{
send_oneline(2);
delay(2500);
}
flag=0;
}
}
}
if(j2==0)
{
flag=1;
num--;
while(!j2);
while(flag)
{
if(j1==0)
{
while(!j1);
if(num==0)
{
num=0;
send_oneline(1);
delay(3000);
}
if(num>=1)
{
send_oneline(3);
delay(2500);
}
flag=0;
}
}
}
}
}
柞谦济迪:[选项] A. 有教养的人胸怀宽广,不应该有隐私 B. 侵犯他人隐私是违法行为,都要受刑罚处罚 C. 隐私权受到法律的限制,没有绝对的隐私权 D. 银行执行“一米线”的法律强制规定,保护了储户的隐私权
合浦县13524327148: 谁能简单的说一下 由AT89C52 DS12C887 DS18B20 1602 构成的电子钟的工作原理?
柞谦济迪: 第一 构成电子钟的器件是不包含18B20的 它是温度传感器 第二 1602与12c887都是定时时钟芯片 只要任意一片就可以 其中1602使用的是串口传输 硬件简单 不过软件稍微复杂,12c887是并行传输,硬件要求资源多,不过软件容易写
合浦县13524327148: 麻辣烫底料怎么做 - ?
柞谦济迪: 一、麻辣烫配方骨、肉汤大量(随时加汤)以下是10份(锅)汤料油炒郫县豆瓣 800克郫县豆瓣...
合浦县13524327148: 现实生活中,我们会遇到各种各样的“标志线”,下列属于关爱公民生命健康权的“标志线”是() ①横穿马路的“斑马线” ②施工现场的“警戒线” ③银... - ?
柞谦济迪:[选项] A. ①②③ B. ②③④ C. ①②④ D. ①③④
合浦县13524327148: STM32VET6单片机的工作频率最高是多少? - ?
柞谦济迪: 相当于普通8051的0~80MHz,实际工作频率可达48MHz. 单片机,全称单片微型计算机
合浦县13524327148: 谁能告诉我银行一米警示线系统的工作原理啊,救命啊.....?
柞谦济迪: 你可以用两个激光探头,放在银行一米线的位置,一前一后.检测到有人进入时,提示“某某银行欢迎你”,当这个人还没有离开,又检测到有人进来时,提示“请退出一米线外等候”,如果这个人退出一米线了,提示“谢谢您的合作”,如果没有离开,继续提示“请退出一米线外等候”.直到第一个人离开,提示“欢迎下次光临”用两个激光探头和接收头就够用了!
合浦县13524327148: 求ADS1112的工作原理和工作过程 - ?
柞谦济迪: ADS1112是TI公司生产的一款具有两个差动或三个单端通道的自校准ADC,可配置为提供12位到16位精度.该产品使用板上2.048V参考电压(精度为0.05%,漂移为5ppm/C)执行转换过程,其可编程数据速率为15、30、60或240采样/每秒....