云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 基于单片机的微波炉控制器 - 图文

基于单片机的微波炉控制器 - 图文

  • 62 次阅读
  • 3 次下载
  • 2026/1/10 0:14:43

4.4总体程序设计

4.4.1总体设计流程图

开始 键盘扫描 计算按键值 删除按键值 火力选择 启动 电机运转 按键值减一 按键值等于0 结束 图4-7 总体设计流程图

29

4.4.2总体设计仿真电路

图4-8 总体设计仿真电路

4.4.3总体设计程序:

#include #include

char TAB[10]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9}; char disp[4]={0x8f,0x4f,0x2f,0x1f}; //数码管控制显示

char excite[]={0x08,0x01,0x02,0x04}; //步进电机1相驱动激励数组 //char excite[]={0x03,0x06,0x0c,0x09}; //2相驱动激励数组

unsigned char times=10; //声明电机重复数(即电机的快慢) unsigned char count=10; //声明电机重复变量 char dig[4]; char c1=5; //蜂鸣器第5秒、3秒、1秒的时候发声 char c2=4;

char qid=0; //启动的判断

char a1=0,a2=1,a3=0; //火力大中小的判断 int digit=0; //按键输入的初始数值

30

sbit da=P3^0; //声明火力大小的按键 sbit zhong=P3^1; sbit xiao=P3^2;

sbit qidong=P3^3; //声明启动按键

sbit chs=P3^4; //声明重新输入数值 sbit hli1=P0^5; //声明火力的输出端 sbit hli2=P0^6; sbit hli3=P0^7; sbit buzzer=P0^4; //蜂鸣器接口

void debouncer(void); //声明防抖动函数 void scanner(void); //声明扫描函数 void huoli(void); //火力大小函数

#define rowkey() (~P1)&0x0f //读入p1低四位(列按键值)宏 #define OUTPUT P0 //步进电机输出端低四位 #define TH0_M0 (65536-20000)/256 #define TL0_M0 (65536-20000)%6 #define TH1_M1 (65536-500)/256 #define TL1_M1 (65536-500)%6

main()

{ IE=0x8a; ET0=1; ET1=1;

TMOD=0X11; //定时器0和1,模式1 TH1=TH1_M1;TL1=TL1_M1; TH0=TH0_M0;TL0=TH0_M0;

TR1=1; //开启定时器1 P3=0xff; P0=0xe0;

while(qid==0) //键盘扫描 scanner();

while(qid==1) //启动 { TR0=1; huoli();

if(a1==1) //启动加热 {hli1=0;hli2=1;hli3=1;} if(a2==1)

{hli1=1;hli2=0;hli3=1;} if(a3==1)

{hli1=1;hli2=1;hli3=0;} if(digit==c1)

{buzzer=1; //蜂鸣器每次发声1s c1=c1-2;}

31

if(digit==c2) {buzzer=0; c2=c2-2;}

while(digit<=0) //加热结束关闭系统 {TR0=0; TR1=0;

P0=0xe0; P1=0; P2=0; P3=0;} } }

void scanner(void) //扫描函数 { char col,row; //声明行和列

char scan,keyin,kcode; //声明扫描信号,列按键值,扫描码 scan=0xef;

for(col=0;col<4;col++)

{ P1=scan; //P1按键扫描

keyin=rowkey(); //读入第col行的列按键值

_nop_(); //三个_nop_();作用为让 P1 口的状态稳定 _nop_(); _nop_();

if(keyin!=0) //若有按键按下 { for(row=0;row<3;row++) { if(keyin==(0x01<

{ kcode=row+3*col; //计算出按键码

digit=digit*10+kcode; //扫描码写入七段数码管数组

digit=digit00; //取输入的后三位,输入不够三位高位为零 break; //离开第row列扫描 } }

while(rowkey()!=0) //等按键放开 debouncer(); //防抖动函数 }

if(qidong==0) //判断启动按键是否按下 { qid=1;

while(qidong==0); }

if(chs==0) //重新输入数值 { digit=0;

while(chs==0); }

32

搜索更多关于: 基于单片机的微波炉控制器 - 图文 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

4.4总体程序设计 4.4.1总体设计流程图 开始 键盘扫描 计算按键值 删除按键值 火力选择 启动 电机运转 按键值减一 按键值等于0 结束 图4-7 总体设计流程图 29 4.4.2总体设计仿真电路 图4-8 总体设计仿真电路 4.4.3总体设计程序: #include #include char TAB[10]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9}; char disp[4]={0x8f,0x4f,0x2f,0x1f}; //数码管控制显

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com