(一)程序现象
(DS1302+超声波)上电显示超声波,按下S7切换为时钟,松开切换为超声波测距
(二)程序思路
关键按键如何去设置,以下是按键程序。
if(s4==0)
{
Delay10ms();
if(s4==0)
{
while(1)
{
DS_get();
saomiao[0]=abile[TIME[2]/16];
saomiao[1]=abile[TIME[2]%16];
saomiao[2]=0xbf;
saomiao[3]=abile[TIME[1]/16];
saomiao[4]=abile[TIME[1]%16];
saomiao[5]=0xbf;
saomiao[6]=abile[TIME[0]/16];
saomiao[7]=abile[TIME[0]%16];
if(s4!=0)break;
}
}
while(!s4);
}
当按键按下的时候(没松开),按键会一直在while里不出来。当按键松开的时候就可以跳出去。短按直接在while外面进行设置就好了。
(三)程序设计
main.c函数
#include <stc15f2k60s2.h>
#include <intrins.h>
#include "ds1302.h"
void shumaguan();
void Timer0Init();
void Delay500ms();
unsigned char abile[]={
0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF};
unsigned char saomiao[]={
0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};
unsigned int distance;
void Send_Wave();
sbit TX=P1^0;
sbit RX=P1^1;
sbit s4=P3^0;
unsigned int t=0;
void Delay12us();
void mdistance();
void xianshi(