传感器检测到目标物,输出高电平,基于单片机用C语言怎么写程

传感器检测到目标物,输出高电平,基于单片机用C语言怎么写程,第1张

抄来的:

/*******************************************************

* 程序名称:jiance.c

* 程序大旦功能:传感器检测到目标物,输出高电平

* 程序作者:

* 创建时间:

* 修改时间:

* 程序版本:V0.1

******************************************************/

/*

* 包含头文件

*/

#include "inc/hc595.h"

#include "reg51.h"

/*

* 定义引脚

*/

/* 时钟信号线引脚定义 */

sbit HC595CLK = P0^5

/* 片选信号线引脚定义 */

sbit HC595RCK = P0^6

/* 数据输入引脚定义 */

sbit HC595DATA = P0^7

/******************************************************

* 函数名称:SendData

* 函数功能:74HC595数据的发送滚薯扰

* 入口参数:unsigned int uiDataOne, unsigned int uiDataTwo

* 出口参数:void

*******************************************************/

void SendData(unsigned int uiDataOne, unsigned int uiDataTwo)

{

unsigned int i = 0

/* 将片选信号置为低电平 */

HC595RCK = 0

/* 输入第一个数据:uiDataOne */

for (i = 0i <8i++)

{

/* 给出脉冲信号,首先将CLK置为0 */

HC595CLK = 0

if (0 != (uiDataOne &0x80))

{

HC595DATA = 1

}

else

{

HC595DATA = 0

}

/* 给出脉冲信号,首先将CLK置为1 */

HC595CLK = 1

/* 准备第二个数据 */

uiDataOne = uiDataOne <<1

}

/* 输入第二个数据:uiDataTwo */

for (i = 0i <8i++)

{

/* 给出脉冲信号,首先将CLK置为0 */

HC595CLK = 0

if (0 != (uiDataTwo &0x80))

{

HC595DATA = 1

}

else

{

HC595DATA = 0

}

/* 给出脉冲信号,首先将CLK置为1 */

HC595CLK = 1

/* 准备第二个数据 */

uiDataTwo = uiDataTwo <<1

}

/* 将片选信号置为高手历电平 */

HC595RCK = 1

}

/sendtimebetweenbeatswitha/在LCD12864上显示BPM

}

delay(138)9Set/发送并处理原始脉搏传感器数据

if(QS==true){//fadeRateVariableto255tofadeLEDwithpulse

sendDataToProcessing(BQi++){

delay(1000)}

if(Pressure<100){

beep=0}}

if(BPM<60|BPM>100){

for(i=0i<显示信息4

while(1)

{

sendDataToProcessing(}

}

}

//AD转换结果result

ADC_CONTR&=0xf8/依次执行写入 *** 作

{

putchar(ucStr3[i])

}

for(i=0

_nop_()/延时19.6ms

LCD_disp_list_char(4,DisBuff2)设置ADCCONTR控制寄存器后/S确定发现一个心跳

fadeRate=255,0/voidledFadeToBeat(){

//,BPM)///analogWrite(fadePin,fadeRate)/:GetADCResult

函数功能:获取AD转换结果函数

入口参数,Signal)

sys_init()

beep=1

LCD12864_DisplayOneLine(0x80,ucStr1)//,255)//prefix

QS=false/,IBI),4/resettheQuantifiedSelfflagfornexttime

LCD_disp_list_char(2:BYTEch(通道选择)

返回值:result(枣大A///依次执行写入 *** 作

{

putchar(ucStr2[i])

}

for(i=0、CHS1、CHS0(清除通道选择乎岩搜)

_nop_()//显示信息1

LCD12864_DisplayOneLine(0x90,ucStr2)//keepLEDfadevaluefromgoingintonegativenumbers!

/B}

for(i=0i<3i++)

{

putchar(DisBuff[i])/清除ADC控制寄存器ADCCONTR的CHS2,DisBuff)/16i++)/和心率

sendDataToProcessing(setLEDfadevalue

//,要加4个空 *** 作延时才可以正确读到ADCCONTR寄存器的值

_nop_()4i++)//,4i++){

delay(1000)}

if(BPM<60|BPM>100){

beep=0i<16/i++)//8

}

for(i=0Q/}

/******************************************************************************

函数名称岁历显示信息2

LCD12864_DisplayOneLine(0x88,ucStr3)//ledFadeToBeat()显示信息3

LCD12864_DisplayOneLine(0x98,ucStr4)//i<16}

for(i=0i<

unsignedintGetADCResult(BYTEch)

{unsignedintresult//依次执行写入 *** 作

{

putchar(ucStr1[i])/fadeLED

/i<16fadeRate=constrain(fadeRatei++)///发送一个fadeRate-=15//D转换结果)

备注:无

*******************************************************************************/

_nop_()

ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|ADC_START//开ADC电源,选择AD转换速率,并选择AD通道,开始AD转换

_nop_()//设置ADCCONTR控制寄存器后,要加4个空 *** 作延时才可以正确读到ADCCONTR寄存器的值

_nop_()

_nop_()

_nop_()

while(!(ADC_CONTR&ADC_FLAG))//等待AD转换结束

ADC_CONTR&=~ADC_FLAG//关闭ADC

result=ADC_RES//将AD转换结果的高两位赋给result

result=result<<8//将result循环左移8位

result+=ADC_RESL//将AD转换结果的底8位加高两位共10位给result

returnresult//返回10位AD转换结果

}

voidsendDataToProcessing(charsymbol,intdat){

putchar(symbol)//symbolprefixtellsProcessingwhattypeofdataiscoming

printf(\"%drn

objectMainextendsApp{

varreverse_pairs = 0//逆巧耐慧序数

defmsort[T](cmp:(T, T) =>Boolean)(l:List[T]):List[T] = {

defmerge(l1:List[T], l2:List[T]):List[T]=(l1, l2)match{

case(Nil, _) =>孝答 l2

case(_, Nil) =>l1

case(x::left1, y::left2) =>

if(cmp(x, y))

x::merge(left1, l2)

else{

reverse_pairs += l1.length

y::merge(l1, left2)

}

}

valn = l.length /亩基 2

if(n == 0)

return l

else{

val(l1, l2) = l.splitAt(n)

merge(msort(cmp)(l1), msort(cmp)(l2))

}

}

println(msort((x:Int, y:Int) =>x<y)(List(5, 4, 3, 2, 7,6 )))

println(reverse_pairs)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12372436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存