论文自动干手器毕业设计(6)

2019-05-26 21:18

西南科技大学高等教育自学考试毕业论文

void delayms(unsigned int ms); unsigned char GetKeyboardVal();

volatile unsigned int timecount,settimecounter;

volatile unsigned char timesecond,ctrlcount,Flag,settime; unsigned char code

LED_tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; main() {

unsigned char key; Relay_0=1; Flag=START; settime=15;

Time2_xkHz_inital(); delayms(2000);

frequent_test_inital(); timesecond=0; while(1) {

if(Flag==RUNNING) {//显示 }

else if(Flag==SETINGTIME) { }

key=GetKeyboardVal(); switch(key) {

case 1: {

if(Flag!=RUNNING) {

if(settime>0)settime--;

LED_all_print(settime); LED_all_print(timesecond);

26

西南科技大学高等教育自学考试毕业论文

settimecounter=0; Flag=SETINGTIME;

}

break;

}

case 2: { if(Flag!=RUNNING) { if(settime<30)settime++; settimecounter=0; Flag=SETINGTIME;

} break;

}

}

}

}

void T1_interrupt() interrupt 3 using 2 {

unsigned int fre_count; TF1=0; TR1=0; TR0=0;

if(Flag==RUNNING) { timecount++; if(timecount==100) { timecount=0; timesecond--; if(timesecond==0)

{

27

//定时器1中断程序

西南科技大学高等教育自学考试毕业论文

}

}

}

//停止吹风 Relay_0=1; Flag=STOP;

else if(Flag==INVERIFY) {

if(ctrlcount<200) { }

Flag=HAVE_INVERIFY; ctrlcount++; if(ctrlcount==200)

}

if(Flag==SETINGTIME) { } else {

fre_count=(256*TH0+TL0); //TH0和TL0为得到的计数值高位和低位。计算出频率

if((fre_count>=FREQUENT_MIN)&&(fre_count<=FREQUENT_MAX)) //如果有

接收频率符合发射频率,说明有物体

if(fre_count>=FREQUENT_MIN) {

if(Flag==START) {

settimecounter++; if(settimecounter==200) {

Flag=START;

}

28

西南科技大学高等教育自学考试毕业论文

}

}

}

ctrlcount=140; Flag=INVERIFY;

else if(Flag==HAVE_INVERIFY) {

//开吹风 Relay_0=0; Flag=RUNNING;

Start_timing(settime);//开始倒计时15秒

}

else { }

//清除频率计数值 if(ctrlcount==0) { } else { }

ctrlcount--; //停止吹风 Relay_0=1; Flag=START; Stop_timing();

TH0=0; TL0=0;

TH1=TIMER_H; //重装定时器1 TL1=TIMER_L;

TR1=1; TR0=1;

//开定时器

29

西南科技大学高等教育自学考试毕业论文

}

void Time2_xkHz_inital() {

T2MOD=0x02; //设置定时器2自动外部输出,输出脚一定是P1^0 T2CON=0;

RCAP2H=RCAP2_H; RCAP2L=RCAP2_L; EA=1;

ET2=0; //关T2中断 TR2=1; }

void frequent_test_inital() //初始化 {

TMOD = 0x15; //T0计时

TH0 = 0;

TL0 = 0; //值

TH1=TIMER_H; TL1=TIMER_L;

EA = 1; // TR0 = 1; // TR1 = 1; // ET1 = 1; //}

void Start_timing(unsigned char settime) {

timecount=0;

30

红外接收T0计数,T1清空T0计数开总中断 开定时0 开定时1 开T1中断 西南科技大学高等教育自学考试毕业论文

timesecond=settime; }

void LED_bit_print(unsigned char num,unsigned char printdata) {

switch(num) { }

LEDPORT=LED_tab[printdata]; delayms(2); LED_0=1; LED_1=1; }

void LED_all_print(unsigned char printdata) {

printdata%=100;

LED_bit_print(0,printdata/10);

LED_bit_print(1,printdata); }

//个位 //十位

case 0:{LED_0=0;LED_1=1;}break; case 1:{LED_0=1;LED_1=0;}break;

31


论文自动干手器毕业设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年监理工程师继续教育(机电)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: