智能电扇(4)

2019-04-21 20:57

微机原理(单片机)课程设计报告

srem=95; break;

case 0x08:key5=0;display();break; //按key5则退出计时设置功能

case 0x04: //按key6则确定计时设置 mcnt=0; scnt=19;

for(i=1;i<=4;i++) mcnt=mcnt*10+inset[4-i]; key5=0; display(); }

}else{ //如果没按下key5,则为调速功能

switch((~keynow)&keypast){ //key1~key4分别对应停止、低速、中速、高速,在LED屏幕上分别以0、1、2、3显示 case 0x80:speed_regulation(0);break; case 0x40:speed_regulation(1);break; case 0x20:speed_regulation(2);break; case 0x10:speed_regulation(3);break; case 0x08: key5=1; srem=100; sdig=0;

for(i=0;i<=3;i++) inset[i]=0; } }

keypast=keynow; }else{

keylast=keynow; }

if(scnt!=0){ scnt--; }else{

scnt=19;

if(mcnt!=0){ mcnt--;

if(mcnt==0) speed_regulation(0); else if(!key5) display(); } }

if(key5){ //按下key5进入计时设置功能时,被选中的位会闪烁20次,若20次内没有其他操作,则退出计时设置功能 srem--;

13

微机原理(单片机)课程设计报告

if(srem==0){ key5=0; display(); }else{

if(srem%5==4) display(); } } }

void uart () interrupt 4 //串口发送接收函数 {

static unsigned char rxbuf[3]={0x00}; static unsigned char rbi=0,tbi=0; unsigned int temp; if(RI){ //下位机从上位机接收数据 rxbuf[rbi]=SBUF; rbi++; RI=0;

switch(rxbuf[0]){ //检测收到的是调速还是计时信息 case 0xff: //调速信息 if(rbi<2) break;

if(rxbuf[1]<=3) speed_regulation(rxbuf[1]); rbi=0; break;

case 0xfe: //计时信息 if(rbi<3) break;

temp=rxbuf[1]*256+rxbuf[2]; if(temp<=9999){ mcnt=temp; scnt=19; display(); key5=0; }

rbi=0; break;

default:rbi=0; }

}else{ // 下位机给上位机发送数据 TI=0;

tbsize--;

if(tbsize==0) tbi=0; else{

14

微机原理(单片机)课程设计报告

tbi++;

SBUF=txbuf[tbi]; } }

}

B.上位机程序图

15

附录


智能电扇(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2019年高考政治专题复习:专题十 效率与公平

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

马上注册会员

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