微波炉控制系统c语言编程.doc_第1页
微波炉控制系统c语言编程.doc_第2页
微波炉控制系统c语言编程.doc_第3页
微波炉控制系统c语言编程.doc_第4页
微波炉控制系统c语言编程.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #define nop _nop_#define uchar unsigned char#define uint unsigned int/*/定义sbit WEI_LE=P11;/数码管控制sbit DUAN_LE=P10;sbit RS=P20;/LCD端口sbit RW=P21;sbit E=P22;#define DB P0sbit PSB=P23;sbit NC=P24;sbit RST=P25;sbit BEEP=P10;/蜂鸣器sbit KEY1=P34;/按键sbit KEY2=P35;sbit KEY3=P32;sbit KEY4=P33;uchar key_up,key_x;/按键变量uchar fire,min,sec;/火力和时间变量uchar o_hour,o_min,o_sec;/预约时间变量/*/辅助函数/延迟函数void delay50us(uint m)/for双重嵌套型。公式:t=m*(2*n+12)+偏差值。m比较小时,偏差为+13;m=0时,t=14。uchar n;for(;m0;m-)for(n=19;n0;n-);void delay500us(uint m)/for双重嵌套型。公式:t=m*(2*n+12)+偏差值。m比较小时,偏差为+13;m=0时,t=14。uchar n;for(;m0;m-)for(n=244;n0;n-);/*/底层驱动/LCD驱动void lcd_wcom(uchar com)/写指令函数delay50us(1);RS=0;RW=0;DB=com;E=1;delay50us(1);E=0;void lcd_wdat(uchar dat)/写数据函数delay50us(1);RS=1;RW=0;DB=dat;E=1;delay50us(1);E=0;void lcd_init()/初始化lcd_wcom(0x30);delay50us(2);lcd_wcom(0x30);delay50us(1);lcd_wcom(0x0c);delay50us(2);lcd_wcom(0x01);delay500us(20);lcd_wcom(0x06);delay50us(2);void lcd_wstr(uchar *s)/写字符串while(*s!=0)lcd_wdat(*s+);void lcd_clr()/清屏lcd_wcom(0x01);delay500us(3);/按键驱动void key_get()/按键录入if(KEY1=1 & KEY2=1 & KEY3=1 & KEY4=1)key_up=1;else if(KEY1=0 & key_up=1)key_up=0;key_x=1;else if(KEY2=0 & key_up=1)key_up=0;key_x=2;else if(KEY3=0 & key_up=1)key_up=0;key_x=3;else if(KEY4=0 & key_up=1)key_up=0;key_x=4;delay500us(100);/防抖/*/应用层函数/显示相关信息void dis_author()/作者lcd_clr();lcd_wcom(0x80);lcd_wstr(作者:);lcd_wstr(黄志辉);lcd_wcom(0x93); lcd_wstr(董晓敏);lcd_wcom(0x8b); lcd_wstr(蔡定材);while(key_up=0)key_get();key_x=0;/预约时间void order_mark(uchar sel)/预约光标switch(sel)case 1:lcd_wcom(0x89);lcd_wcom(0x0e);break;case 2:lcd_wcom(0x8b);lcd_wcom(0x0e);break;case 3:lcd_wcom(0x8d);lcd_wcom(0x0e);break;case 4:lcd_wcom(0x9a);lcd_wcom(0x0c);lcd_wdat(0x10);break;void order_shift(uchar sel)/预约调整uchar quit=0;char a;dolcd_wcom(0x89);lcd_wdat(o_hour/10+0x30);lcd_wdat(o_hour%10+0x30);lcd_wstr(时);lcd_wdat(o_min/10+0x30);lcd_wdat(o_min%10+0x30);lcd_wstr(分);lcd_wdat(o_sec/10+0x30);lcd_wdat(o_sec%10+0x30);lcd_wstr(秒);order_mark(sel);lcd_wcom(0x0f);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:quit=1;break;case 3:quit=1;break;case 2:a=1;break;case 1:a=-1;if(key_x=2 | key_x=1)switch(sel)case 1:o_hour=o_hour+a;if(o_hour=24)o_hour=0;if(o_hour=-1)o_hour=23;break;case 2:o_min=o_min+a;if(o_min=60)o_min=0;if(o_min=-1)o_min=59;break;case 3:o_sec=o_sec+a;if(o_sec=60)o_sec=0;if(o_sec=-1)o_sec=59;while(quit!=1);key_x=0;void order()/预约界面static uchar sel=1;uchar quit=0;dolcd_clr();lcd_wcom(0x82);lcd_wstr( 预约);lcd_wcom(0x92);lcd_wstr(倒计时:);lcd_wcom(0x89);lcd_wdat(o_hour/10+0x30);lcd_wdat(o_hour%10+0x30);lcd_wstr(时);lcd_wdat(o_min/10+0x30);lcd_wdat(o_min%10+0x30);lcd_wstr(分);lcd_wdat(o_sec/10+0x30);lcd_wdat(o_sec%10+0x30);lcd_wstr(秒);lcd_wcom(0x9b);lcd_wstr(开始);order_mark(sel);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:switch(sel)case 1:case 2:case 3:order_shift(sel);break;case 4:break;break;case 3:quit=1;break;case 2:sel-;if(sel4)sel=1;while(quit!=1);lcd_wcom(0x0c);key_x=0;/调整火力和时间void shift_mark(uchar sel)/调整光标switch(sel)case 1:lcd_wcom(0x92);lcd_wcom(0x0c);lcd_wdat(0x10);break;case 2:lcd_wcom(0x8b);lcd_wcom(0x0e);break;case 3:lcd_wcom(0x8d);lcd_wcom(0x0e);break;case 4:lcd_wcom(0x98);lcd_wcom(0x0c);lcd_wdat(0x10);break;case 5:lcd_wcom(0x9c);lcd_wcom(0x0c);lcd_wdat(0x10);void dis_fire_time()/显示火力和时间uchar f;lcd_wcom(0x90);lcd_wstr(火力 );f=fire;while(f-)lcd_wdat(0x04);f=8-fire;while(f-)lcd_wdat(0x20);lcd_wcom(0x88);lcd_wstr(时间 );lcd_wdat(min/10+0x30);lcd_wdat(min%10+0x30);lcd_wstr(:);lcd_wdat(sec/10+0x30);lcd_wdat(sec%10+0x30);void shift_fire_time(uchar custom_sel)/进行调整uchar quit=0;char a;dodis_fire_time();shift_mark(custom_sel);lcd_wcom(0x0f);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:quit=1;break;case 3:quit=1;break;case 2:a=1;break;case 1:a=-1;if(key_x=2 | key_x=1)switch(custom_sel)case 1:fire=fire+a;if(fire=0)fire=1;if(fire=9)fire=8;break;case 2:min=min+a;if(min=60)min=0;if(min=-1)min=59;break;case 3:sec=sec+a;if(sec=60)sec=0;if(sec=-1)sec=59;while(quit!=1);key_x=0;void custom_heat()/自定义uchar quit=0;static uchar sel=1;static uchar custom_fire=1,custom_min=00,custom_sec=00;fire=custom_fire;min=custom_min;sec=custom_sec;dolcd_clr();lcd_wcom(0x82);lcd_wstr( 自定义);dis_fire_time();lcd_wcom(0x99);lcd_wstr(预约);lcd_wcom(0x9d);lcd_wstr(开始);shift_mark(sel);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:switch(sel)case 1:case 2:case 3:shift_fire_time(sel);custom_fire=fire;custom_min=min;custom_sec=sec;break;case 4:order();break;case 5:break;break;case 3:quit=1;break;case 2:sel-;if(sel5)sel=1;while(quit!=1);lcd_wcom(0x0c);key_x=0;void fast_heat(uchar menu_sel)/快速加热uchar quit=0;static uchar sel=5;dolcd_clr();switch(menu_sel)case 1:lcd_wcom(0x82);lcd_wstr( 烧烤);fire=6;min=10;sec=0;break;case 2:lcd_wcom(0x82);lcd_wstr( 汤类);fire=7;min=1;sec=30;dis_fire_time();lcd_wcom(0x99);lcd_wstr(预约);lcd_wcom(0x9d);lcd_wstr(开始);shift_mark(sel);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:switch(sel)case 4:order();break;case 5:break;break;case 3:quit=1;break;case 2:sel-;if(sel5)sel=4;while(quit!=1);key_x=0;/菜单void menu_mark(uchar sel)/菜单光标switch(sel)case 1:lcd_wcom(0x90);break;case 2:lcd_wcom(0x88);break;case 3:lcd_wcom(0x98);break;lcd_wdat(0x10);void menu()/进入菜单static uchar sel=1;dolcd_clr();lcd_wcom(0x82);lcd_wstr( 菜单);lcd_wcom(0x91);lcd_wstr(烧烤);lcd_wcom(0x95);lcd_wstr(解冻);lcd_wcom(0x89);lcd_wstr(汤类);lcd_wcom(0x8d);lcd_wstr(蒸菜);lcd_wcom(0x99);lcd_wstr(自定义);menu_mark(sel);while(key_up=0)key_get();while(key_up=1)key_get();switch(key_x)case 4:switch(sel)case 1:case 2:fast_heat(sel);break;case 3:custom_heat();break;case 3:dis_author

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论