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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于微波炉设计的单片机仿真以及程序资料
1 J) z( p+ a3 i- x
! m& r8 w& b) w0 i( @% _

8 I. E) y! G  ], B) U有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图
+ x) C6 S4 k) _" x
' w. f3 E% ^7 q/ L+ t1 M% O" U2 v% k1 V+ c9 N% U3 w8 E1 @5 C
( t# }( h) K7 u. p5 |
% Z: d5 Q7 M- f( Z0 S+ a4 V! e
单片机源程序:

6 i! [4 G8 C# w2 [( i#include<stdio.h>- }7 Z! _3 ~5 T. A
#include<reg52.h>
' ?5 Q2 |: X' r' e/ B' T; G#include <absacc.h>  O% [& c9 {; }; F6 ?+ `  e
#define PA XBYTE[0x8000]8 e: u" W/ _& @+ u& O' ?
#define PB XBYTE[0x8001]5 A$ _7 m$ L, |5 T4 m9 i$ o, @5 \
#define PC XBYTE[0x8002]$ {0 }' i1 H) \8 c" g) z
#define COM XBYTE[0x8003]' r7 e# G* V( p$ z
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}};
9 H% B0 z  a9 Q7 f- v& Lunsigned int i,t=0,time_num=0;
. a: \: ~$ I2 C. h2 Usbit light1=P1^0;
, g, F" g1 q2 b3 H, @2 d+ zsbit light2=P1^1;  I1 r) l4 M! [; d
sbit light3=P1^2;) N' c4 s! y. s3 U  E
sbit light4=P1^3;! q; G! f1 `8 S9 K
/*===================延迟子程序============*/
! b- L. i1 F; C4 r2 I2 Y( @: xvoid delay(void)
" q3 d. `# ^8 E; m; B{, S/ p9 Q3 n* n1 v' Y
   unsigned char j,k;
" [# l1 m6 m% [4 s5 G        for(j=20;j>0;j--). ~' |8 H8 w9 i6 w7 G( c
                for(k=200;k>0;k--);
- s+ h+ o  [4 v9 Q' Q# U1 X}) m$ Q% L9 q, Z+ g
/*===========数码管显示子程序===============*/
8 }! D) ^! m/ Y6 U* Dvoid ledplay(int b)5 Z, O; z6 m' x9 P  T* F
{- \4 b0 ^" N: K7 p
    unsigned int m,x[2];: R  D8 S% W) M* \
    for(i=0;i<2;i++)
- U* l: g/ a. O3 n    {- q5 u. \5 n8 ^9 k4 ]
        x=b%10;! Y. Z6 b2 D6 `! w
        b=b/10;; _; I* w) n+ X) ]" _7 ?
    }  X7 F5 J& c3 q8 x$ I  F) y: @0 N5 T
    for(i=0;i<2;i++)
) h8 ^' v0 R% e) Y  ?/ x    {4 U6 E1 [- G" F5 i
        x=ledtable[x];
& h  }9 X. |, y    }
; l3 B/ |! l' q4 [; U$ a    m=0xfd;
, n7 ^3 h# T5 A/ S7 W# a    for(i=2;i>0;i--)
% i$ L9 @6 P+ Q' F4 r) W7 G. V    {- u. n# Q* K6 `2 \$ g$ `! X. [
        PA=x[i-1];
' c1 ?1 }' t# H& x( k1 N        PC=m;: e$ P$ u' z# H& D
        delay();
! j8 \+ O/ Y3 k! ~& Z7 `        PC=0xff;. K+ r" Q, }" A5 k: J
        PA=0xff;- _( T! ~5 W& ]4 T& B( L
        m=(m>>1)|(0x80);5 {5 a/ P9 e  p" z
     }* ]8 D/ j8 v/ g! a* y% r
}
9 Y; L1 [2 ^/ l6 {/*=============测试按键===========*/
' s; L- N" ~0 F  k$ uunsigned char testkey(void)
: [; p" q4 @% U5 t( n' x' W{
# b8 h2 e- [  u9 a1 y: u, F    PC=0;
2 c% y7 T$ r$ @  ^6 l   if((PB&0x0f)!=0x0f)
/ b0 e8 p5 `  L. ]         return(1);& {) T) w+ M; H. G  x8 t/ U1 d
    else
: u) D. C' y1 Z         return(0);
" M% y3 g3 m% {* q& F0 A}
6 N) d4 G' R, f+ n* V8 m1 g
( D' R: j" X  s# Z/*===============得到键值==========*/
2 R0 ^3 |5 E3 Munsigned int getkey(void)
+ z- Q% R" b" P$ ?! d{
/ e& H3 N  J% m9 K! _1 f    unsigned int x,y,m;
0 D# P( S% G( X+ o9 e% i2 `- h    m=0xfe;, e* O2 F: ?! w$ O
    PC=m;
7 r) ?7 m2 }6 i7 g    while((PB&0x0f)==0x0f)           //键盘扫描- @$ M' c7 Q$ {) m( M3 w
    {: f2 y! `. i- a
            m=(m<<1)|0x01;3 ~1 T3 l8 [5 w, b
                PC=m;
5 A% I% p2 |& d3 k7 _1 }7 L4 q( O- ]        }
# u) W' y& @3 H! p    y=m;8 ]# w5 R) h9 J3 O# H! s9 j
    x=PB;
6 g: \) U# |! I: A; ^9 B    for(i=0;(x&0x01)!=0;i++)         
; a& n3 y* u  _* ~* y/ b* k* N- \           x>>=1;
6 ]+ _3 H1 C/ Y% P7 }. p, g1 o    x=3-i;                            //行数/ C4 J. f% l) ]. W0 P
    for(i=0;(y&0x01)!=0;i++)
( }( J4 i+ L- e& H: U7 L, ~           y>>=1;+ ^+ t1 k+ e0 p$ ^7 X/ m
    y=5-i;                            //列数
! N, l* i* [: k: e. H# F    while(testkey());                 //等待按键释放' q3 R$ v6 I/ p; g+ U( b* {6 B6 _
    return(keytable[x][y]);           //查表得键值
! Q* r. m. b! p1 M) o# @. `}
, v" m( H8 U. X/*====================main=============*/
% F$ d7 P" u7 `. e1 Z  l2 p# imain()- t* v! o$ s7 X
{    5 H0 w+ t5 L! @
     unsigned int get_num;" [# w, \* K0 E8 o8 o
     COM=0x82;
+ N9 U* V) o. g( T) ?  gstart:while(1)
9 S+ Q$ o) Z% |1 x4 A, L     {   3 D/ N" r0 f! V3 w
         while(1)                     //开关. I- C  v6 ~5 m  U7 w" d
         {  PA=0xff;3 l( W5 E8 X2 r0 L6 b: u+ ^9 C: Q
            P1=0;
0 r* x; ?: A2 ~            TR0=0;
& j" [: Z, @2 @7 p& @( a0 ]7 h            ET1=0;& U. C1 ~" l, Q* l" Y. d* O
            get_num=50;
& A! X6 _. c: q            if(testkey())
3 L6 }. g" C7 h9 H! L            {6 B# i  T* `, E7 T3 T2 P7 p
                delay();. Q  C9 [6 q* X3 o
                if(testkey())
" w3 m7 S. C' A+ d! V0 d                    get_num=getkey();
, S" p$ C# h2 q5 f8 @: v& k            }: K& m& P: H# b1 m
            if(get_num==10). d" A4 v! h# r# _( V( i' t
                break;" G% M) X+ o, Q0 j( Y2 c0 c: P
         }3 {6 u. C0 q& l* {- L' o+ u& y
         light1=1;
, a( b1 Z' w" J* v: X# \% o9 O1 L4 G& _+ U
         while(1)                   //输入第一个数* ?2 \. F- e; t. z
         {* m4 n$ i# s# v$ n" s9 o. P$ F0 t' H
            get_num=50;
5 n1 C1 K- k7 g' ~* f1 ?" W$ }            if(testkey())
3 [9 e. p7 ], Z1 i3 B& a8 p6 @            {9 R0 E6 [6 S  o3 X2 z. G* Q8 K+ f
                delay();9 i2 g4 b4 K5 q& P2 p( V  S. p
                if(testkey())2 q2 ~  `4 ]$ e) C9 B' W2 v- k
                    get_num=getkey();) t7 P) |6 J( I6 |4 i( @! s' o4 k& r
            }
$ [: _0 o& j6 _# a) R            if(get_num<10)) |) r& f' ~4 o6 A* i
                 break;
' u* b* C% W' C) J3 N: `' v5 m4 u            if(get_num==10)7 B/ i5 X& ~2 [9 H9 Z5 S
                 goto start;
+ ?, A1 q1 o& e' X) r            ledplay(0);
8 x. X8 h) D8 L$ @. b! \6 B* x5 F         }
+ V( z, T1 i! x1 ]/ r1 M3 U         time_num=get_num*10;
& R0 ]( W& F+ ^% y; O- X/ X$ _( V# v/ _/ ^) w
         while(1)                      //输入第二个数
$ q3 a+ S$ q8 h5 B+ ]         {9 Z' r; m' T, W
            get_num=50;
2 \! ^& i" ?. e/ M" y6 A  q( A            if(testkey())5 v) {: l: T: x2 |- j
            {
0 Y: v! C$ v! I, W; R9 B# c6 d6 d                delay();
& q& Y8 r) k5 O                if(testkey())
. b0 m4 e2 V9 N) K                    get_num=getkey();& B! c1 I! n; E6 b, V, q# q
            }
! d2 W( b% j  F0 N            if(get_num<10)
. ~6 n# w3 Z5 w4 K                 break;
, Z, R$ U  A. q1 l  n& X4 k! Y            if(get_num==10)8 J! ^9 @/ {- a
                 goto start;
' M- A  K, W' V            ledplay(time_num);9 }3 [6 i: g- [4 Y1 x! P
         }
# W. d1 r+ }7 B2 E         time_num+=get_num;' J) o! |; I, p/ L6 P
1 s. O2 S& e! _. X7 o/ ?/ G% X
         while(1)                     //输入火力挡位
1 f1 R# i' w% I4 O1 L8 t         {+ }# S! C+ l) U( u
            get_num=50;
8 Z  s& z! _  K7 `            if(testkey())6 v$ j6 f# B+ a$ |4 d1 y
            {
/ W# G0 `3 Z! L5 y  z  p2 y# u; W                delay();
# `6 d5 ?& Y3 g, |9 A                if(testkey())1 `0 |4 ~1 ~% I3 T
                    get_num=getkey();# r% R" m8 x$ `5 l0 k( a
            }
0 e% B$ [) }  m3 T/ R% V, x
0 n0 f' P- j* M2 z" u: |; f% o. u' a  D* }
…………限于本文篇幅 余下代码请从论坛下载附件…………" r2 E, ~* g. J8 e7 B: e7 u! [
游客,如果您要查看本帖隐藏内容请回复

+ V; l/ a: _) L, k* G

9 ?! f1 B' }$ a+ C6 Y) A
  @% G4 t2 X) N/ F

( f: ?& ?# r, n- s3 \, k' {) k
  • TA的每日心情
    郁闷
    2025-8-11 15:44
  • 签到天数: 51 天

    [LV.5]常住居民I

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

    ) Z2 A9 j7 Q: e3 y6 B  V: ~感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-23 23:39 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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