南京工程学院单片机课程设计九微波炉控制程序_第1页
南京工程学院单片机课程设计九微波炉控制程序_第2页
南京工程学院单片机课程设计九微波炉控制程序_第3页
南京工程学院单片机课程设计九微波炉控制程序_第4页
南京工程学院单片机课程设计九微波炉控制程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、自动化学院112 朱凡#include<reg52.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int#define com8255 XBYTE0x8003 /8255控制口地址#define pa_8255 XBYTE0x8000 /A口地址#define pb_8255 XBYTE0X8001 /B口地址#define wela XBYTE0X8002 /位码地址#define dula XBYTE0X8004 /段码地址sbit LED1=P11;uchar num,fe

2、nh,fenl,miaoh,miaol,huo=0x10,flag=0,flag1=0;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3f; /共阴数码管显示码void delayms(uint z) /延时Z毫秒(6M晶振)uint x,y;for(x=z;x>0;x-)for(y=55;y>0;y-);uchar keyscan(void) /键盘扫描子函数wela=0x1f;pb_8255=pb_8255&0x0f;i

3、f(pb_8255!=0x0f)delayms(15);if(pb_8255!=0x0f)switch(pb_8255)case 0x0e:num=0;break;case 0x0d:num=1;break;case 0x0b:num=4;break;case 0x07:num=7;break; flag+; /每按一次时间设定和火候设定键flag就加一 while(pb_8255!=0x0f);wela=0x2f;pb_8255=pb_8255&0x0f;if(pb_8255!=0x0f)delayms(15);if(pb_8255!=0x0f)switch(pb_8255)case

4、 0x0e:num=0x0f;break;case 0x0d:num=2;break;case 0x0b:num=5;break;case 0x07:num=8;break; flag+; while(pb_8255!=0x0f);wela=0x7;pb_8255=pb_8255&0x0f;if(pb_8255!=0x0f)delayms(15);if(pb_8255!=0x0f)switch(pb_8255)case 0x0e:num=0x0e;break;case 0x0d:num=3;break;case 0x0b:num=6;break;case 0x07:num=9;brea

5、k; flag+; while(pb_8255!=0x0f);wela=0x3b;pb_8255=pb_8255&0x0f;if(pb_8255!=0x0f)delayms(15);if(pb_8255!=0x0f)switch(pb_8255)case 0x0e:num=0x0d;break;case 0x0d:num=0x0c;break;case 0x0b:num=0x0b;break;case 0x07:num=0x0a;break; flag+; while(pb_8255!=0x0f); wela=0x3d;pb_8255=pb_8255&0x0f;if(pb_82

6、55!=0x0f)delayms(15);if(pb_8255!=0x0f)switch(pb_8255)case 0x0e:;break;case 0x0d:;break;case 0x0b:;break;case 0x07:num=0x10;break; flag1+; while(pb_8255!=0x0f); return num ;void display(uchar fenh,uchar fenl,uchar miaoh,uchar miaol,uchar huo) /LED动态显示子函数wela=0x20;dula=tablefenh;delayms(3);wela=0x10;d

7、ula=tablefenl;delayms(3);wela=0x08;dula=0x40;delayms(3);wela=0x04;dula=tablemiaoh;delayms(3);wela=0x02;dula=tablemiaol;delayms(3);wela=0x01;dula=tablehuo; delayms(3);void display1(uchar fenh,uchar fenl,uchar miaoh,uchar miaol,uchar huo) /电源关断LED动态显示子函数wela=0x20;dula=0x00;delayms(3);wela=0x10;dula=0x

8、00;delayms(3);wela=0x08;dula=0x00;delayms(3);wela=0x04;dula=0x00;delayms(3);wela=0x02;dula=0x00;delayms(3);wela=0x01;dula=0x00; delayms(3);init_t0() /定时器T0初始化函数TH0=(65536-10000)/256; /定时时间为20msTL0=(65536-10000)%256;TMOD=0x01; /T0工作于方式1EA=1;ET0=1;/TR0=0; /启动T0void main()uchar temp;LED1=0; /电源指示灯灭com8

9、255=0x82; /8255初始化,A口输出,B口输入,C口输出,都工作于方式0init_t0(); /定时器初始化 TR0=0;while(1) if(TR0=0) temp=keyscan();if(temp=0x10) /电源键按下,指示灯变化亮灭状况 flag=0; if(flag1=1) LED1=1; fenh=0; fenl=0; miaoh=0; miaol=0; huo=0; if(flag1=2) flag1=0; LED1=0; TR0=0; fenh=0; fenl=0; miaoh=0; miaol=0; huo=0; if(flag=1)if(temp<=5

10、) fenh=temp; flag=2; else fenh=0; flag=0; if(flag=3)if(temp<=9) fenl=temp; flag=4; else fenl=0; flag=2; if(flag=5)if(temp<=5) miaoh=temp; flag=6; else miaoh=0; flag=4; if(flag=7)if(temp<=9) miaol=temp; flag=8; else miaol=0; flag=6; if(flag=9)if(0x0a<=temp&temp<=0x0c) flag=0; TR0=1; huo=temp; else huo=0; flag=8; if(flag1=0) display1(fenh,fenl,miaoh,miaol,huo); if(flag1=1) display(fenh,fenl,miaoh,miaol,huo); void timer0() interrupt 1 static uchar i=0; TH0=(65536-10000)/256; /定时时间为20msTL0=(65536-10000)%256;i+;if

温馨提示

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

评论

0/150

提交评论