51单片机微波炉c语言程序,基于51单片机的微波炉控制C源程序.doc
#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相关推荐
- 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
/***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...
- 51单片机频率计c语言程序,基于51单片机的频率计程序
这个是电路原理图 *********************************************** **************入门级频率计设计****************** ** ...
- 单片机时间控制器c语言程序,基于AT89C52单片机实时时钟程序编写
#include'reg52.h' //包含单片机寄存器的头文件 #include'intrins.h' //包含_nop_()的头文件 sbit RS=P2^0; //LCD读写选择位 sbit R ...
- 共阳极数码时钟c语言程序,基于51单片机C语言数字钟程序.doc
基于51单片机C语言数字钟程序 基于51单片机C语言数字钟程序 数字电子钟的设计 一. 绪论 (一)引言 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地 ...
- 湿度控制c语言程序,基于51单片机的湿度控制系统设计.doc
基于51单片机的湿度控制系统设计 基于51单片机的湿度控制系统设计 摘要 关键词:单片机:湿度传感器:ADC0832数模转换 目 录 序 言1 第一章 系统的整体设计方案2 1.1设计内容2 1.2系 ...
- 51单片机的电子钟c语言程序,基于51单片机的电子钟C语言程序
基于单片机C语言的电子钟程序代码与仿真 基于51单片机的电子钟C语言程序: 程序代码 #include #include #define uchar unsigned char #define uin ...
- 74hc164驱动数码管c语言程序,基于51单片机的74HC164驱动数码管显示程序与仿真
基于51单片机的74HC164驱动数码管显示程序与仿真 基于51单片机的74HC164驱动一位数码管显示程序与仿真 #include #include #define uchar unsigned c ...
- 水塔水位测量c语言程序,基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)...
基于51单片机水塔水箱水位检测系统控制器设计(附程序代码)(任务书,开题报告,外文翻译,论文18000字) 摘 要 为了能实现水位监测与控制,以STC89C52作为核心控制芯片,进行了水位检测系统控 ...
- 51lcd显示光传感器c语言程序,基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例...
基于51单片机1602液晶显示GY-30数字光照传感器BH1750FVI程序实例,系统由GY-30数字光照传感器.51单片机最小系统.1602液晶显示屏组成,电路简单,附件中的程序是实物验证过了的.1 ...
最新文章
- mysql命令巧记_MYSQL常用命令大全(三)【值得收藏】
- 计算机控制系统的概念构成,计算机控制系统复习
- 【刷出存在感】锋会圆桌现场
- 一般3d模型代做多少钱_重庆涪陵办一场婚宴一般需要多少钱?婚庆布置报价一般多少钱?...
- 游戏设计创造对话探秘之迭代
- eclipse给jar包打断点
- java获取本机IP地址,非127.0.0.1
- 十款免费数据恢复软件
- 一把剪刀完成iphone4剪卡
- ERDAS2013安装资源及破解步骤
- kbhit()函数用法
- HRBUST 1313 火影忍者之~静音
- Restful风格的编程
- 支付宝H5,微信H5,微信公众号支付回调
- [编程题]漂流船问题
- Vue 2项目如何升级到Vue 3?
- Transform 3.1:SPSS 的通用数据转换程序
- self-redemption
- android 日期格式 毫秒
- 真实的北京IT圈:后厂村姑 vs 后厂村花?
热门文章
- Bootstrap框架(基础篇)之列表,表格,表单
- 关于Windows7下 IIS 7 对ASP.NET 的配置的一点感想
- AJAX Wrapper for .NET
- Bailian2980 大整数乘法【大数】
- C 标准库 —— stdio.h
- Spark 机器学习拾遗
- ubutntu 使用tftp_TI 816X开发板直接从SD卡读取内核到内存中和通过TFTP下载到内存中区别...
- qml中使用combobox实现多级菜单_Excel教程:还不会做Excel三级下拉菜单?其实它跟复制粘贴一样简单...
- python手机版-python手机版
- 自学python买什么教材-从入门到进阶必看,51本Python精品书籍免费送!