找回密码
 注册
关于网站域名变更的通知
查看: 377|回复: 4
打印 上一主题 下一主题

关于微波炉设计的单片机仿真以及程序资料

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-12-6 09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于微波炉设计的单片机仿真以及程序资料; ~+ `. A: D7 U+ S" J7 U. k
% T% i+ I. m6 f) ]' T0 ?5 M; y
! W) I% Q& h6 q, {  p
有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图+ o7 o5 V) K5 [

, B2 E) i3 c! x0 D+ M4 `5 V" x3 ?% U) J8 S" C. \' f' |
0 x7 i4 M( v4 W$ G
+ W& k" n8 T0 g" X# I
单片机源程序:
: S& V; E  p9 K$ p
#include<stdio.h>
9 ]8 O/ t. u2 ~5 k& [0 J: ~$ l- S% L#include<reg52.h>
' ~. g: H( C; a  [8 \0 V: J#include <absacc.h>
/ t& j+ D) \4 g: l5 a1 o0 J) J% V#define PA XBYTE[0x8000]
3 t6 t- v; d3 j: o#define PB XBYTE[0x8001]0 b$ C# S8 F9 C& Q! U# R
#define PC XBYTE[0x8002]
6 L  a! C7 G+ e. u1 x1 U#define COM XBYTE[0x8003]
1 u  ~  G$ k1 Qunsigned 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}};: p2 C2 j: k4 X# {
unsigned int i,t=0,time_num=0;% k6 u0 j/ }8 C* ?# b
sbit light1=P1^0;  O+ A) t# U" h3 q1 b0 K
sbit light2=P1^1;  q  P, T9 Z+ b/ S% r( q. r  S; I. c
sbit light3=P1^2;8 p9 F0 \$ b" i" w2 N* @( a
sbit light4=P1^3;$ x7 Q- g! w& Z, z* d
/*===================延迟子程序============*/3 t4 g+ `3 ?5 c" ~$ i1 o/ I
void delay(void)9 w' q0 U" r& d# w" p( p) P3 L
{
7 d) q' |+ ^* q& I1 a8 S   unsigned char j,k;
# W: G' q( e/ ]- |2 n% N" y4 ^' i6 }6 q        for(j=20;j>0;j--)
) G* N& i" b( X3 x% L" d                for(k=200;k>0;k--);
3 J1 g! T7 c1 j- v  H5 n+ M0 Q6 i, ]}
( J" D# |! s! }1 W0 X% E/*===========数码管显示子程序===============*/: T$ m6 y9 Y" \. L5 O' F( U' F& `
void ledplay(int b)  y. Y7 i9 j! S) E
{
5 R1 z7 v6 ]% T$ C    unsigned int m,x[2];
7 ^. s8 W7 Y+ V. B8 F    for(i=0;i<2;i++)
4 @( R+ n, G& R    {
$ a7 y4 B5 X$ F' q% D2 r        x=b%10;
& K$ m9 ?$ a9 \& _7 p        b=b/10;3 M; v3 J. D1 Q0 p% t: q
    }
; ?; R5 F2 J: D) u' T7 o    for(i=0;i<2;i++)/ N) Z& L# \2 X! Z
    {
9 F6 }$ R- P; E- ]        x=ledtable[x];
' {7 u: f& @& @$ R, E* ]    }4 W5 `+ x* U$ Y- W
    m=0xfd;
9 B' j+ ]3 s+ C- u, \0 M    for(i=2;i>0;i--)
4 I: T$ G1 i4 @) v2 {" t    {5 f) B  t6 k6 W" }/ X' Y* s
        PA=x[i-1];
# Z$ A. c  i6 Z5 h. V2 ~        PC=m;
& J4 p7 L6 i  G& P2 _        delay();
: ?$ C3 r8 ^3 \1 C8 ^! M        PC=0xff;1 k! n7 b$ f& P* o! c/ V- \+ @! ^1 Z
        PA=0xff;
: Q8 ^2 h  R  _        m=(m>>1)|(0x80);
: ]9 h/ m  B' v0 t7 t3 D: v     }
( n, L3 c3 ?1 C}
' T5 q" Z& s; x4 Z% H& V/*=============测试按键===========*/
: G3 L7 x3 V0 I' L: ?* }; _; ]unsigned char testkey(void)& N1 C  Y) O3 t+ z# j; H. {) J
{
) E1 k. Z4 ^, V8 T    PC=0;) o2 n9 q: i% S# b% C$ J. x
   if((PB&0x0f)!=0x0f)
# F% x% [: V' m+ j5 x- F         return(1);
. e% l0 I4 A/ O2 I0 E# r. J' q    else
! _8 r2 S: S5 C         return(0);
% G5 M1 F9 I: h2 G, S}8 c- v5 f" t" B/ z7 K1 t& f) X$ B

0 ~( w+ L, I2 c/ p/*===============得到键值==========*/7 G7 I4 a# P: P" r2 g! B
unsigned int getkey(void)7 s0 [2 K; ?6 r6 W
{, L, s' W9 E# }& |
    unsigned int x,y,m;
# H. P' q/ z( y  H    m=0xfe;
3 E. Y- \$ _9 Z    PC=m;" v* I1 b2 F  C6 ?
    while((PB&0x0f)==0x0f)           //键盘扫描: q0 j( m; g+ V9 K: Q) e! j
    {- m- z! i& @( S5 Q$ n2 A3 ~
            m=(m<<1)|0x01;5 ]& J) T8 O% a# ?  t
                PC=m;  r3 p" B3 B  V4 [/ m5 Y1 w3 A
        }
( @: O* a( l; Z2 G( y    y=m;
& k& c1 _- `8 ~% Q    x=PB;
  y' h* d/ B$ h6 {    for(i=0;(x&0x01)!=0;i++)         
" i# T/ O  d" Q1 F) r           x>>=1;
0 V: S! m  P8 F% y    x=3-i;                            //行数
4 O  B3 g. S" E/ ^) K, R  k8 X6 w- T    for(i=0;(y&0x01)!=0;i++)" c: [" G6 W1 }/ y( B* O
           y>>=1;$ a4 F6 Z2 e) V" ]
    y=5-i;                            //列数/ e3 l/ F" O* S2 z0 K
    while(testkey());                 //等待按键释放; G- j( T; a7 z0 ^4 ], }
    return(keytable[x][y]);           //查表得键值/ c3 }7 \% _0 u- ?1 j% T
}7 _$ ?' Q3 P( V) W
/*====================main=============*/
  K6 O1 ?$ G% lmain()) M+ }4 b; y. g* n9 }% m2 `0 u
{   
. D, n3 e- r; `5 C3 F( s, A6 F  K# [     unsigned int get_num;
+ i6 c# {( A! ?+ [: n# J     COM=0x82;
3 S0 s7 c/ z& Q% j. k- ~3 e; bstart:while(1)
% P' C2 ^5 l6 ?$ l+ E0 G% t     {   7 ~' c8 ~4 D, N/ E% E( N0 R# e) j
         while(1)                     //开关
9 `! \* ^/ I) r! y         {  PA=0xff;
1 q: [/ k7 W% K" N$ T8 g            P1=0;
, d% N5 `# @# A  U            TR0=0;
) b1 a  E8 j( c* x9 V3 v  x9 L' n: V            ET1=0;4 K# U7 A0 p6 t! Z: ~
            get_num=50;  A3 M6 [  `, H
            if(testkey())
/ a( ?* f3 B& G0 c7 H: u            {  ~7 U  }2 |! n% _
                delay();" P3 K) @* _: d) K9 b0 y! l
                if(testkey())
5 Y9 y% c1 f. f2 E                    get_num=getkey();
" e% s. O8 F/ l* H7 D            }
& D; ?& V$ v) W0 V" {& O6 @. e            if(get_num==10)
9 w% v2 c4 D) O1 t3 V                break;
9 ?5 G& I% _9 C( }  Q- [         }; |1 \% R+ Q/ m1 u6 W6 A  h" ~
         light1=1;/ s5 k5 f2 g! F# ]$ \" e0 i

8 V, Q' {' I5 k  |9 c8 h# K         while(1)                   //输入第一个数
: j" @' y* K2 q, c1 I# X         {
8 O, _! F! o6 Q+ B            get_num=50;
, K$ S: c$ o. s0 p7 u; A, |4 n            if(testkey())( h6 ^. w$ X' T8 q: R: X3 P3 ~
            {
" f$ _: B4 _5 u* a/ q                delay();
8 q7 v$ _5 k! i  L0 d1 B                if(testkey())
0 _) B0 I4 k3 t                    get_num=getkey();# f9 C; C$ W! D4 R- @
            }5 C* Y# Y4 o: i; c# ^
            if(get_num<10)7 x+ [+ f. J6 k+ ~
                 break;
7 O- }) l, e6 W! U* R            if(get_num==10)
: [- E5 {  A7 T                 goto start;5 }3 @2 y7 u, g7 }
            ledplay(0);8 s- K. J- q6 R* W0 l
         }" W8 X8 c% Z2 J, E0 Z& f4 P% {
         time_num=get_num*10;7 p( Q* A1 P" c8 e3 `( s* E1 |8 c

( a1 E  i+ s3 \! E% z         while(1)                      //输入第二个数2 U/ v: _6 C/ A5 c7 J
         {7 T. ?! q) B% Z7 e. ^
            get_num=50;& ~' B8 I2 N7 X& S
            if(testkey())
) v" I/ W+ ~1 |7 \            {4 y1 U; a. S2 o: l( {
                delay();( I; `4 r/ e# K/ U+ N2 V
                if(testkey())
" s! d8 V" h2 h0 n                    get_num=getkey();/ \( g. v! M, E/ M8 l
            }
' n8 x4 ]2 C4 T; Y            if(get_num<10)$ r5 V6 q' x. H7 X
                 break;
# Z; ]$ t; ~9 ?; P$ V: q+ ^+ X  P            if(get_num==10)
1 ^  q+ p( |. d4 }                 goto start;
: I( ?1 e, E  L! a+ A7 C0 x            ledplay(time_num);
- t9 s2 Q) o. r4 |. G* p; k         }
, ]. _. y! G0 w& r4 r  U. B' \         time_num+=get_num;2 f  e8 L! z5 [; R

' j- h9 s& E$ k4 @         while(1)                     //输入火力挡位4 R. P  @' {% Q9 u  h- W. V& C
         {0 C$ a: D6 d- s$ B" B
            get_num=50;+ A- t* v3 t$ `. h3 \: r3 w. ?
            if(testkey())
  ~2 N/ p% h$ \2 T* z+ F+ G/ M5 o            {
) ?7 K( m/ T# }( s. ]                delay();7 v+ l. `5 m. p. ]9 o# m
                if(testkey())
9 K8 y, [8 r- i% ^                    get_num=getkey();
; p' h: t! S5 h) B7 c            }( Y' t' K# x5 H. |* S, |/ w" k
, \) L6 z" e% @
' B7 B) c( b6 Q6 O9 u: i* y
…………限于本文篇幅 余下代码请从论坛下载附件…………
6 c! ~! W8 K- w3 q
游客,如果您要查看本帖隐藏内容请回复

: x8 C' M2 \3 [: Q) O

9 M, Q. p, m( _) k, b( u3 s
, S% y% V5 o1 l) y2 I; X

5 W* h! W+ Z0 \. H4 R: L& d
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    5#
    发表于 2024-6-5 09:05 | 只看该作者

      M! U9 ?9 D9 o3 j$ L6 U感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-26 11:19 , Processed in 0.187500 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表