全球旧事资料 分类
超声波模块显示程序i
cludereg52hdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
tdefi
eulo
gu
sig
edlo
gsbitTxP33产生脉冲引脚sbitRxP32回波引脚sbitfmqP17ucharcodeSEG7100xC00xF90xA40xB00x990x920x820xF80x800x90数码管09ui
tdista
ce4测距接收缓冲区uchargeshibaitempflagoutcomeHoutcomeLi自定义寄存器bitsucceed_flag测量成功标志
voidco
versio
ui
ttemp_data显示数据转换程序ucharge_datashi_databai_databai_datatemp_data100temp_datatemp_data100取余运算shi_datatemp_data10temp_datatemp_data10取余运算ge_datatemp_databai_dataSEG7bai_datashi_dataSEG7shi_data0x7fge_dataSEG7ge_dataEA0baibai_datashishi_datagege_dataEA120us延时函数voiddelay_20usucharbtforbt0bt22bt
1ms基准延时程序voiddelay1msu
sig
edi
ti
fu
sig
edcharjwhileiforj0j115j
产生1KHZ频率声音的函数voidbeepfmq0delay1ms500fmq1delay1ms500主程序voidmai
voidui
tdista
ce_dataabucharCONT_1i0flag0Tx0首先拉低脉冲输入引脚TMOD0x11定时器0,定时器1,16位工作方式TR01启动定时器0IT00由高电平变低电平,触发外部中断ET01打开定时器0中断EX00关闭外部中断EA1打开总中断0
while1EA0
程序循环
Tx1delay_20usTx0
产生一个20us的脉冲,在Tx引脚
fwhileRx0等待Rx回波引脚变高电平succeed_flag0清测量成功标志EX01打开外部中断TH10定时器1清零TL10定时器1清零TF10TR11启动定时器1EA1whileTH150等待测量的结果,周期65535毫秒(可用中断实现)TR10关闭定时器1EX00关闭外部中断ifsucceed_flag1dista
ce_dataoutcomeH测量结果的高8位dista
ce_data8放入16位的高8位dista
ce_datadista
ce_dataoutcomeL与低8位合并成为16位结果数据dista
ce_data12因为定时器默认为12分频dista
ce_data58微秒的单位除以58等于厘米为什么除以58等于厘米,Y米(X秒344)2X秒(2Y米)344》X秒00058Y米》厘米微秒58ifsucceed_flag0dista
ce_data0没有回波则清零dista
ceidista
ce_data将测量结果的数据放入缓冲区iifi3dista
ce_datadista
ce0dista
ce1dista
ce2dista
ce34adista
ce_dataifbaCONT_10ifbaCONT_1ifCONT_13CONT_10baco
versio
bifb0b200
ffmq0delay1ms100fmq1i0外部中断0,用做判断回波电平INTO_i
terrupt0外部中断是0号outcomeHTH1取出定时器的值outcomeLTL1取出定时器的值succeed_flag1至成功测量的标志EX0r
好听全球资料 返回顶部