豆浆机程序

上传人:子 文档编号:42024584 上传时间:2018-05-31 格式:DOC 页数:14 大小:42.50KB
返回 下载 相关 举报
豆浆机程序_第1页
第1页 / 共14页
豆浆机程序_第2页
第2页 / 共14页
豆浆机程序_第3页
第3页 / 共14页
豆浆机程序_第4页
第4页 / 共14页
豆浆机程序_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《豆浆机程序》由会员分享,可在线阅读,更多相关《豆浆机程序(14页珍藏版)》请在金锄头文库上搜索。

1、豆浆机程序豆浆机程序/*芯片类型: STC89C52总线频率: 12MHz*/#include “reg52.h“/IO 口重定义-sbit led1 = P10; /,作为控制 led1 用 干豆sbit led2 = P11; /,作为控制 led2 用 湿豆sbit led3 = P12; /,作为控制 led3 用 米糊sbit led4 = P13; /,作为控制 led4 用 开机/sbit sw1 = P15; /,作为按键 1 用 米糊sbit sw2 = P16; /,作为按键 2 用 湿豆sbit sw3 = P17; /,作为按键 3 用 干豆/sbit buzzer=

2、P20; /,作为蜂铃用/sbit k1 = P21; /,作为继电器开关 1 用 选择加热打豆sbit k2 = P22; /,作为继电器开关 2 用 总开关sbit k3 = P23; /,作为继电器开关 3 用 功率控制/sbit s1 = P36; /,作为电极 1 用 溢出sbit s2 = P37; /,作为电极 2 用 干烧/数据类型宏定义-#define uchar unsigned char /变量定义-/时间变量uchar to_2ms; /2ms 统计变量uchar to_20ms; /20ms 统计变量uchar to_200ms; /200ms 统计变量uchar t

3、o_1s; /2s 统计变量uchar to_1m; /1m 统计变量uchar to_1h; /1h 统计变量/bank0 或者其他 bank 的变量-uchar beep_time; /响铃时间uchar beep_num; /响铃次数uchar key_num; /按键号uchar trig; /按键触发,即有键按下 uchar key_jisu; /按键定时器计数 2msX510msuchar key_flg; /按键扫描定时器标记uchar on; /开机标记uchar flg_1s; /1 秒标记uchar move; /打浆步骤uchar hrat_tim,all_biao_ji

4、; /全功率加热时间 标记时间给一次uchar hit_tim,hit_biao_ji; /全功率打豆时间 标记时间给一次uchar half_tim,half_biao_ji; /半功率加热时间 标记时间给一次/子函数声明-void mcu_init(); /单片机初始化void var_init(); /变量初始化void set_timer(); /定时器设置函数void key_scan(); /2ms 扫描一次void beep(uchar beep_tim,uchar beep_nu); /蜂铃管理程序void all_heat(uchar all_hrat_tim); /全功率加

5、热程序void half_heat(half_heat_time); /半功率加热程序void all_hit(uchar all_hit_time); /全功率打豆程序void off(); /关机/mcu 寄存器初始化-void mcu_init()/变量初始化-void var_init() /设置定时器-/定时器模块相关说明:中文手册 75 页void set_timer()TMOD |= 0x01; /使用模式 1,16 位定时器,使用“|“符号可以在使用多个定时器时不受影响 TH0=0xff; /给定初值,这里使用定时器最大值从 0 开始计数一直到 65535 溢出TL0=0x82

6、;EA=1; /总中断打开ET0=1; /定时器中断打开TR0=1; /定时器开关打开/蜂铃管理程序void beep(uchar beep_tim,uchar beep_nu)/beep_tim-响铃时间 beep_nu响铃次数 /0 一直响 1 响一次beep_time = beep_tim;beep_num = beep_nu;/按键扫描程序-void key_scan(void) /2ms 扫描一次if(key_flg) /按键扫描标记开 key_flg = 0; /清除按键扫描标记if(!(sw1 /按键定时器计数 2msX510ms 消抖if(key_jisu4) /按键生效key

7、_jisu = 0; / 清除定时器计数on = 1; / 开机 on 置 1beep(5,1); / 响蜂铃 5x20ms100ms 一次if(!sw1) key_num = 1;if(!sw2) key_num = 2;if(!sw3) key_num = 3;else key_jisu = 0; /全功率加热程序-void all_heat(uchar all_hrat_tim) /all_hrat_tim 加热时间if(!all_biao_ji)hrat_tim = all_hrat_tim; all_biao_ji = 1; /给时间 一次if(flg_1s)flg_1s = 0;

8、/1 秒标记清零if(hrat_tim)k1 = 0; /加热k2 = 0; /总开k3 = 0; /全功率elsek1 = 1; /停止加热k2 = 1; /总关k3 = 1; /全功率关move +; /加热完成执行下一步程序all_biao_ji = 0; /全功率加热时间给一次标记清零,为再一次加热作准备hrat_tim -;/半功率加热程序-void half_heat(half_heat_time) /half_heat_time 半功率加热时间if(!half_biao_ji) half_tim = half_heat_time; half_biao_ji = 1; /给时间 一

9、次if(flg_1s)flg_1s = 0; /1 秒标记清零if(!s2) /缺水beep(5,1); /响蜂铃k2 = 1; /停止工作 总开关关elseif(half_tim)if(s1) /无溢出 继续加热k1 = 0; /加热k2 = 0; /总开k3 = 1; /半功率else / 溢出 停止加热k1 = 1; /停止加热k2 = 1; /总关k3 = 1; /全功率关elsek1 = 1; /停止加热k2 = 1; /总关k3 = 1; /全功率关move +; /半功率加热完成执行下一步程序all_biao_ji = 0; /半功率加热时间给一次标记清零,为再一次加热作准备ha

10、lf_tim-;/全功率打豆程序-void all_hit(uchar all_hit_time) /all_hit_time 打豆时间if(!hit_biao_ji)hit_tim = all_hit_time; hit_biao_ji = 1; /给时间 一次if(flg_1s)flg_1s = 0; /1 秒标记清零if(hit_tim)k1 = 1; /打豆k2 = 0; /总开k3 = 0; /全功率elsek1 = 1; /打豆关k2 = 1; /总开关k3 = 1; /全功率关move +; /打豆完成执行下一步程序hit_biao_ji = 0; /全功率打豆时间给一次标记清零

11、,为再一次打豆作准备hit_tim-;/防干烧void fan_gan_sao(void)if(!s2) /缺水报警beep(5,1); /响蜂铃k2 = 1; /循环检测是否有水 总开关关else move +; /有水执行下一步程序/防溢出void fan_yi_chu(void)if(s1) /没溢出 继续加热k1 = 0; /加热k2 = 0; /总开k3 = 0; /全功率else /溢出停止加热 k1 = 1; /停止加热k2 = 1; /总关k3 = 1; /全功率关move+; /下一步程序/湿豆打豆程序void wet_peas(void)switch(move)case 0 : fan_gan_sao(); break; /第一步缺水检测 检水case 1 : all_heat(5); break; /第二步加热到 80 度 加热case 2 : all_hit(5); break; /第一次打豆 15 秒

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号