#include #define GET_KEY P1

#define GET_LED P0

sbit LSA=P2^2;

sbit LSB=P2^3;

sbit LSC=P2^4;

unsigned char code DIG_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //“-”的段码是0x40

unsigned char flag=0,power=0; //flag 数字键加1; power表示电源键是否按下

unsigned char Keyvalue,Keystate;

unsigned char fenh,fenl,miaoh,miaol,huo;

void delay(unsigned int u)

{ unsigned char i;

for(;u>0;u--)

for(i=50;i>0;i--);

}

void Key_Scan()

{ GET_KEY=0x0f;

if(GET_KEY!=0x0f)

{ delay(15);

if(GET_KEY!=0x0f)

{ Keystate=1; //有键按下

GET_KEY=0x0f; //测试列

switch(GET_KEY)

{

case(0X07):Keyvalue=0;break;

case(0X0b):Keyvalue=4;break;

case(0X0d): Keyvalue=8;break;

case(0X0e):Keyvalue=12;break;

}

GET_KEY=0xf0; //测试行

switch(GET_KEY)

{

case(0X70):Keyvalue=Keyvalue+3;break;

case(0Xb0):Keyvalue=Keyvalue+2;break;

case(0Xd0): Keyvalue=Keyvalue+1;break;

case(0Xe0):Keyvalue=Keyvalue;break;

}

while(GET_KEY!=0xf0); //松手检测

if(Keyvalue==0x0f)

power++;

else flag++;

}

}

}

void init_t0()

{TH0=(65536-20000)/256;

TL0=(65536-20000)%256; //定时20ms

EA=1;

ET0=1;

TMOD=0x01;

}

void display1() //LED动态显示函数

{ unsigned char i;

for(i=0;i<8;i++)

{ switch(i)

{ case 0: LSC=0;LSB=0;LSA=0;GET_LED=DIG_CODE[fenh];break;

case 1: LSC=0;LSB=0;LSA=1;GET_LED=DIG_CODE[fenl];break;

case 2: LSC=0;LSB=1;LSA=0;GET_LED=0x40;break;

case 3: LSC=0;LSB=1;LSA=1;GET_LED=0x40;break;

case 4: LSC=1;LSB=0;LSA=0;GET_LED=DIG_CODE[miaoh];break;

case 5: LSC=1;LSB=0;LSA=1;GET_LED=DIG_CODE[miaol];break;

case 6: LSC=1;LSB=1;LSA=0;GET_LED=DIG_CODE[1];break;

case 7: LSC=1;LSB=1;LSA=1;GET_LED=DIG_CODE[huo];break;

}

delay(1);

GET_LED=0x00;

}

}

void display2()

{ unsigned char i;

for(i=0;i<8;i++)

{ switch(i)

{ case 0: LSC=0;LSB=0;LSA=0;break;

case 1: LSC=0;LSB=0;LSA=1;break;

case 2: LSC=0;LSB=1;LSA=0;break;

case 3: LSC=0;LSB=1;LSA=1;break;

case 4: LSC=1;LSB=0;LSA=0;break;

case 5: LSC=1;LSB=0;LSA=1;break;

case 6: LSC=1;LSB=1;LSA=0;break;

case 7: LSC=1;LSB=1;LSA=1;break;

}

GET_LED=0x00;

delay(1);

}

}

void main()

{unsigned char temp;

Keystate=0;

init_t0();

TR0=0;//定时器初始化

while(1)

{ Key_Scan();

temp=Keyvalue;

if(Keystate==1) //有键按下

{ if(temp==0x0f)

{

if(power==1)

{ huo=0;

fenh=0;

fenl=0;

miaoh=0;

miaol=0;

} //电源打开

if(power==2)

{

power=0;

} //电源关掉

}

if(flag==1)

{

if(temp>=0&&temp<=5)

fenh=temp;

else flag--;

}

if(flag==2)

{

if(temp>=0&&temp<=9)

fenl=temp;

else flag--;

}

if(flag==3)

{

if(temp>=0&&temp<=5)

miaoh=temp;

else flag--;

}

if(flag==4)

{

if(temp>=0&&temp<=9)

miaol=temp;

else flag--;

}

if(flag==5)

{

if(temp>=0x0a&&temp<=0x0c)

{

huo=temp;

TR0=1;

flag=0;

// 先输入定时时间,然后按火候键开始定时

}

else flag--;

}

}

// 开始显示

if(power==1) display1();

if(power==0) display2();//电源关闭,灯灭,重新开始输入、定时

}

}

void timer0() interrupt 1

{ static unsigned char count=0;

TH0=(65536-20000)/256;

TL0=(65536-20000)%256;

count++;

if(count==50) //1ms定时到

{miaol--;

count=0;

}

if(miaol==0xff)

{ miaoh--;

miaol=9;

}

if(miaoh==0xff)

{ fenl--;

miaoh=5;

}

if(fenl==0xff)

{ fenh--;

fenl=9;

}

if(fenh==0xff)

{ TR0=0;

fenh=0;

fenl=0;

miaoh=0;

miaol=0;

power=0; //定时时间到,关电源

}

}

51单片机微波炉c语言程序,基于51单片机的微波炉控制C源程序.doc相关推荐

  1. 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]

    /***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...

  2. 51单片机频率计c语言程序,基于51单片机的频率计程序

    这个是电路原理图 *********************************************** **************入门级频率计设计****************** ** ...

  3. 单片机时间控制器c语言程序,基于AT89C52单片机实时时钟程序编写

    #include'reg52.h' //包含单片机寄存器的头文件 #include'intrins.h' //包含_nop_()的头文件 sbit RS=P2^0; //LCD读写选择位 sbit R ...

  4. 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc

    基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...

  5. 湿度控制c语言程序,基于51单片机的湿度控制系统设计.doc

    基于51单片机的湿度控制系统设计 基于51单片机的湿度控制系统设计 摘要 关键词:单片机:湿度传感器:ADC0832数模转换 目 录 序 言1 第一章 系统的整体设计方案2 1.1设计内容2 1.2系 ...

  6. 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序

    基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...

  7. 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真

    基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...

  8. 水塔水位测量c语言程序,基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)...

    基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)(任务书,开题报告,外文翻译,论文18000字) 摘  要 为了能实现水位监测与控制,以STC89C52作为核心控制芯片,进行了水位检测系统控 ...

  9. 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...

    基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...

最新文章

  1. mysql命令巧记_MYSQL常用命令大全(三)【值得收藏】
  2. 计算机控制系统的概念构成,计算机控制系统复习
  3. 【刷出存在感】锋会圆桌现场
  4. 一般3d模型代做多少钱_重庆涪陵办一场婚宴一般需要多少钱?婚庆布置报价一般多少钱?...
  5. 游戏设计创造对话探秘之迭代
  6. eclipse给jar包打断点
  7. java获取本机IP地址,非127.0.0.1
  8. 十款免费数据恢复软件
  9. 一把剪刀完成iphone4剪卡
  10. ERDAS2013安装资源及破解步骤
  11. kbhit()函数用法
  12. HRBUST 1313 火影忍者之~静音
  13. Restful风格的编程
  14. 支付宝H5,微信H5,微信公众号支付回调
  15. [编程题]漂流船问题
  16. Vue 2项目如何升级到Vue 3?
  17. Transform 3.1:SPSS 的通用数据转换程序
  18. self-redemption
  19. android 日期格式 毫秒
  20. 真实的北京IT圈:后厂村姑 vs 后厂村花?

热门文章

  1. Bootstrap框架(基础篇)之列表,表格,表单
  2. 关于Windows7下 IIS 7 对ASP.NET 的配置的一点感想
  3. AJAX Wrapper for .NET
  4. Bailian2980 大整数乘法【大数】
  5. C 标准库 —— stdio.h
  6. Spark 机器学习拾遗
  7. ubutntu 使用tftp_TI 816X开发板直接从SD卡读取内核到内存中和通过TFTP下载到内存中区别...
  8. qml中使用combobox实现多级菜单_Excel教程:还不会做Excel三级下拉菜单?其实它跟复制粘贴一样简单...
  9. python手机版-python手机版
  10. 自学python买什么教材-从入门到进阶必看,51本Python精品书籍免费送!