EDA365电子论坛网
标题:
关于微波炉设计的单片机仿真以及程序资料
[打印本页]
作者:
helendcany
时间:
2018-12-6 09:36
标题:
关于微波炉设计的单片机仿真以及程序资料
关于微波炉设计的单片机仿真以及程序资料
6 {9 _2 b' d6 J$ ]% |- x0 z
9 }- O: ? }3 V& }, Z
; @3 O0 t# |* l2 r6 q) K
有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图
1 A9 i$ y" U# D& e6 j) q& S; d
! W3 X6 W! s/ X t* [0 I( z6 Z
' ]/ D) u9 ~3 I( R
- z: l, I5 B2 I) O4 _
6 |2 \ g; z g2 p' i$ ?: r; w; Z( A
单片机源程序:
1 R# B' k9 U: L% ?
#include<stdio.h>
2 a9 i; M# r" b' `7 J1 i. t
#include<reg52.h>
' u3 n) I( U4 E
#include <absacc.h>
' h2 q; g7 L5 p9 i, m9 Y
#define PA XBYTE[0x8000]
& ]8 w/ y4 Q3 u0 ?
#define PB XBYTE[0x8001]
, p r- i' L6 _* P4 `
#define PC XBYTE[0x8002]
1 ?) a5 E& j5 L. j: L# D& W, y
#define COM XBYTE[0x8003]
' Y# R# |2 F ^/ D
unsigned int data ledtable[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10},keytable[4][6]={{7,8,9,10,16,17},{4,5,6,11,18,19},{1,2,3,12,20,21},{0,15,14,13,22,23}};
7 }) D- s; \' t' m4 S! t# j
unsigned int i,t=0,time_num=0;
$ W4 s! Z0 A T0 o9 \
sbit light1=P1^0;
# H+ i3 f9 ]7 c$ P: s) m/ t/ T( N
sbit light2=P1^1;
5 a* n* v ?5 `! S/ [6 v! W2 |: R
sbit light3=P1^2;
) d* t; t$ }$ e5 l; H' B
sbit light4=P1^3;
`$ O$ x& l, f- V- b
/*===================延迟子程序============*/
8 d1 T& s- ^, V4 H$ V% T9 y
void delay(void)
" ~: J7 H% X1 ~* [# s# L) |) |7 m
{
8 f7 Y3 a5 }0 h9 Z
unsigned char j,k;
% M! `4 s( ^% p4 M" `. E1 j& v6 x1 \
for(j=20;j>0;j--)
9 Y# J9 s/ r/ \
for(k=200;k>0;k--);
2 n6 b5 Q! D- e, _: a$ b2 W
}
( ]3 x& ?. I4 n7 G. B2 _7 F
/*===========数码管显示子程序===============*/
: s" b0 i V' m1 B5 A9 t, c8 |- P
void ledplay(int b)
+ q0 D4 X3 A) I% U/ x( L
{
0 R/ f3 J* ~6 w9 g, A3 ~) H
unsigned int m,x[2];
" ?, ^5 `$ h) U& j
for(i=0;i<2;i++)
1 `; [* }3 c6 e, x; b; Z
{
5 L* n5 W" g1 R7 O* @
x
=b%10;
( [! y0 _$ A( U, C% H
b=b/10;
; {$ F$ [/ {- Z$ P
}
/ H7 t! z; N4 v/ f
for(i=0;i<2;i++)
1 Q1 m* {$ A3 v% v( G( Z
{
* J5 y; K9 [* r
x
=ledtable[x
];
! P2 g# P5 L8 y3 C
}
$ r- \/ ]8 z$ Y2 D4 {: t8 Q9 {3 X
m=0xfd;
* o* M# Y4 A. t5 t7 B* Z! \- \
for(i=2;i>0;i--)
) X' ?% e+ f$ g* n5 i& A
{
) |4 @5 p8 ]% H5 w& S5 X' _( b( @
PA=x[i-1];
6 D; `/ j( ]9 ~1 N( M6 x4 D
PC=m;
. Q" j! {: P0 t5 T
delay();
2 }% E. I* }0 O& [0 g
PC=0xff;
/ Z7 e$ Q# L* n- Y% j; N
PA=0xff;
; x6 ]9 C1 H3 Y8 f0 b
m=(m>>1)|(0x80);
; N: S* v# M# k! n1 K" V
}
- C7 k- K: i3 |/ t
}
# L6 c; h' v1 J0 _
/*=============测试按键===========*/
9 r+ U$ p5 }: e* J# c. }
unsigned char testkey(void)
- t, b$ H" \# i
{
' A8 @" f' S; C, _# i
PC=0;
' H" e* o$ ] S/ }' _0 u
if((PB&0x0f)!=0x0f)
3 y8 B% Y* Z! G
return(1);
+ M8 K- T" X5 J! o
else
& Z+ w' w$ \) q; ~3 D" }# H
return(0);
% a6 f) v; A- ]5 p7 ?
}
; [; U" W$ S2 I8 A: A0 H
3 Z F5 Z& O7 o! v6 q
/*===============得到键值==========*/
7 I8 `: Q5 g0 b3 M
unsigned int getkey(void)
8 k/ _! u+ O0 I. O% z9 Q" ^: P. d
{
7 }0 p) E/ z0 d/ w }
unsigned int x,y,m;
8 t% O- X" P5 _0 L
m=0xfe;
" M, W) ]' ^2 m0 } e) c2 _
PC=m;
" ?4 j+ T, u2 e7 W6 C
while((PB&0x0f)==0x0f) //键盘扫描
3 R( K% A u! U! p2 L% D6 b
{
* N* D; k3 J5 I* F! x ~9 R1 G
m=(m<<1)|0x01;
6 _) I% f. T' H: F. ^. Y/ B$ N- q
PC=m;
- P- R$ X8 t8 p/ _
}
9 @- i8 W: M) J6 r2 `& C( I
y=m;
8 k5 `' X; N) d7 R0 i A" a
x=PB;
5 G3 {5 z7 T! I2 ^* a; V3 M6 z7 Z
for(i=0;(x&0x01)!=0;i++)
! x1 m) _9 x' W. ]3 ?- k
x>>=1;
/ Q+ w8 S3 z6 f3 v2 y( t: u
x=3-i; //行数
5 y! }# [9 [( R) n1 Z+ W
for(i=0;(y&0x01)!=0;i++)
6 {5 x! U& ?; ^4 K( r1 U9 O& {
y>>=1;
% E+ Y0 {0 V" i( c5 N
y=5-i; //列数
8 [1 A; j% J; F7 D+ d
while(testkey()); //等待按键释放
: Q6 Y8 K: a6 J- P! t5 ^1 v
return(keytable[x][y]); //查表得键值
! f% h; j O2 u- q- k
}
! n. r0 [. W8 y
/*====================main=============*/
# Z6 [7 \+ }0 `+ I& z
main()
7 D' Y7 H4 w9 Q5 W V
{
6 ] A' Y" |) s
unsigned int get_num;
& h) n1 A% X' j S
COM=0x82;
& z1 ]" ^0 m4 `8 @ X
start:while(1)
$ d% K0 Y0 p3 b+ V/ Z
{
0 g" c$ y% p5 y/ {$ O; x
while(1) //开关
$ X) b4 R7 ^, U
{ PA=0xff;
' Q: Q' P$ q. }3 r& ]
P1=0;
9 h; g/ ~# q6 {9 m# f
TR0=0;
( d& q1 P9 {0 l; L
ET1=0;
' G, |: w4 m' @; Z s
get_num=50;
J; S+ \% `- ^# x5 r
if(testkey())
& d R! O5 d) y( G/ }+ P
{
; v- F' z& D; m, D7 @# m0 d+ ?1 Q
delay();
4 [* }2 [3 D2 [' ~- S/ i9 g' q
if(testkey())
0 M z. M2 M: x% Q: v7 a
get_num=getkey();
$ `# {2 Y: B. |
}
0 O% e1 Z* m" E5 z% V) @. B
if(get_num==10)
. ?$ _6 ^6 \# J! H4 E
break;
; k$ Q4 Z- P. {; t4 \; t/ x
}
* v9 ?2 r; ^ b6 T* v! P) v
light1=1;
3 S! E* C# [8 \0 b) x- q
1 \3 `0 h% c! q- T, k. N
while(1) //输入第一个数
6 n" W3 O+ E1 d6 W
{
- b( D, {' O" ]2 C9 b* t* r
get_num=50;
- S% _3 ]8 q- f4 d: ?0 {
if(testkey())
. T/ d( y7 N# v, N
{
2 _; X7 h& X, I6 u. S1 P
delay();
! p7 m8 o# I* G' l% e) N$ J& B
if(testkey())
( `% s* a: |6 E- {; Y; v
get_num=getkey();
' s# \; j3 I- O1 c0 e) Q7 k4 Z
}
9 u5 {* s9 H8 j, h) K/ A- ~ Q
if(get_num<10)
* T3 I# P- l; P. e1 a& y) t+ u+ a; S
break;
/ J/ n* a% B, i: d/ r2 }
if(get_num==10)
7 Y) Q( H1 k% P" }5 [- E' ?' m
goto start;
! s. g" z* Z3 ^3 b3 I8 ]
ledplay(0);
( ^. V* c" A$ ^/ z0 T) ^
}
8 M) @8 h" `0 r# v" _7 k) y* d
time_num=get_num*10;
' m- k9 s, [2 M# s/ F
; k( U: ^- b3 K6 `) a |% J
while(1) //输入第二个数
2 ?" a/ S$ W: `
{
! u$ m3 f6 m! |# U h% D$ A
get_num=50;
0 | n6 X) ^0 S# i% D+ V
if(testkey())
* p, H, f$ r5 r
{
( K: K6 p7 f& n: D
delay();
; Q3 A6 R/ t/ w3 e
if(testkey())
0 b( t% Y7 K7 W' A- `5 x1 `
get_num=getkey();
9 x% ~' o8 E/ f
}
! \4 _1 w: l3 O g
if(get_num<10)
, ^0 w6 D* T* D
break;
8 z/ |. ]( {9 [$ Z; B- u# z
if(get_num==10)
/ b# P9 V) B V/ v# L# e
goto start;
# `3 m3 B7 n7 L* {# X J! e
ledplay(time_num);
2 {4 W" M. {4 o" B- b
}
. U, }* r) g4 d
time_num+=get_num;
6 T, m8 }* _! T
1 s0 @9 Z: J" b( Q6 @$ N* e
while(1) //输入火力挡位
- s* @8 L" `) |
{
/ Q- D" |+ _' a1 p
get_num=50;
8 J; a0 Q3 ?3 _1 \! A
if(testkey())
- ]; H; C5 g0 ~" z( `3 @1 z
{
1 l1 C. i4 m$ c1 e+ M; E& L
delay();
/ q6 {( I0 e8 W {
if(testkey())
6 M) e$ j# M9 w1 v+ R7 G1 S
get_num=getkey();
5 J+ G' @1 e# e+ h _+ q8 w$ ~
}
% B0 i+ S/ j+ n: g
8 F+ v+ S: @: A( ]# I0 x. L ~
! E9 _$ R2 G. B9 T# C, X, i
…………限于本文篇幅 余下代码请从论坛下载附件…………
4 u+ e$ I% h6 S# d
+ l& s1 T! g6 ^. N7 p$ N7 R
5 Z: \5 y; s0 j3 W
! F. `/ T. Z+ \8 R$ e
( A& i. O9 m, h7 l- s4 x8 k9 D
作者:
Demyar
时间:
2018-12-6 11:26
学习一下
作者:
wu68aq
时间:
2018-12-6 11:26
看看
作者:
yxlk
时间:
2018-12-6 11:29
谢谢分享
作者:
shengzhidao702
时间:
2024-6-5 09:05
/ p0 j- G, r: H' ]% q+ {0 Y; W
感谢楼主分享,学习了
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2