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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于微波炉设计的单片机仿真以及程序资料
8 S6 I2 r1 k- p( w
6 A- r: N4 O3 B6 s- m$ i) Y
. \9 e, j  p& M' p6 ]) j
有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图
5 l1 W6 L4 ?. `' @0 ]) M* N/ i" U+ \6 } ' |% K& q$ M" `- K( |9 M1 w/ ]
  o. H5 b5 i  l# ^6 ]9 k2 Z
( ]( t2 F! J+ L( _! t

$ H3 H- d, |+ K- |) M单片机源程序:

" ~" G% S: C0 y" q6 j* D' j* H# ]#include<stdio.h>. x7 [5 G. B4 @0 _
#include<reg52.h>
( I- s0 w- v0 [  f/ j+ N( y9 q#include <absacc.h>
! B; S" W" i3 M% A) A#define PA XBYTE[0x8000]( s/ W* D# [/ x5 a1 I  t9 @
#define PB XBYTE[0x8001]1 f2 ^7 g2 v0 I
#define PC XBYTE[0x8002]
* v3 A8 [2 @* o$ K; z4 d. w1 V0 |#define COM XBYTE[0x8003]
- Q- l( `4 N' B- ~- R3 u- L7 T, Eunsigned 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}};
' I7 \: B7 H! i& n7 S( |unsigned int i,t=0,time_num=0;
5 G0 w; b6 v3 n) m6 D; wsbit light1=P1^0;
# \  s8 a8 J' w, y6 Zsbit light2=P1^1;
8 T) X' b8 }7 ]1 T$ r3 xsbit light3=P1^2;2 U, U. {( W" Y- g4 V3 i  C
sbit light4=P1^3;
& y5 I: |2 |5 c. W$ p- U+ {/*===================延迟子程序============*/
% M! b2 N$ y( T. u: bvoid delay(void)
: T' R' I- S# G: a" K6 L9 y# J/ n/ R{
8 ^" e8 v" j2 Q1 W  f3 U   unsigned char j,k;
  _9 J' v1 k. ?; v        for(j=20;j>0;j--)5 V- t0 C0 p, u  q. d" O
                for(k=200;k>0;k--);9 C5 e7 M. W8 ?2 x: k8 v$ n
}# Y7 ?2 Y8 L9 ]6 T( c9 E9 `
/*===========数码管显示子程序===============*/+ }9 n7 ?2 @) l, _
void ledplay(int b)3 y: }+ f8 M+ t
{. \% D. i4 `2 w: u* M9 v
    unsigned int m,x[2];9 r* l, j# Q2 I# k  C4 g
    for(i=0;i<2;i++)& v% }8 @9 ?" N# p
    {7 o2 c) Y6 g5 N6 l9 R+ \
        x=b%10;  c$ W7 u3 ^* J' V6 C. t$ B2 [8 U
        b=b/10;
  n" ~9 o* Z; I+ V8 q7 [* U/ k( ~. ?    }
1 o3 p# D& |$ u8 W) q    for(i=0;i<2;i++)
- r1 R- G* ~8 Z0 O9 B* q1 i) a    {
" f) I1 s+ s- ~        x=ledtable[x];
0 [: c8 X5 Q$ E7 r    }
" E( D; {8 I4 [. _" l. e, g    m=0xfd;- ?% `; A3 B) @/ D; Y7 M. @
    for(i=2;i>0;i--)
1 m" x, N" }; Z1 x    {
" r3 O; \) F/ \# f        PA=x[i-1];, O0 w' j) E. ]9 j8 w
        PC=m;1 V0 v8 D* h+ V% _( j9 I! K) x. ^" i
        delay();- g6 I5 H7 a/ r5 Y) B% @* r1 B) r
        PC=0xff;! k9 ~7 C- j6 P: D+ a- F
        PA=0xff;: K, T# s. L% E: r
        m=(m>>1)|(0x80);
5 Z0 }4 `4 Q9 u8 L9 ]0 p     }
' m2 }" r5 r* u3 A}9 P0 X- R" y6 l, N
/*=============测试按键===========*/- |; R% R8 p8 I$ `7 Y) C
unsigned char testkey(void)
2 ~! q+ f5 M. m. F) l{
6 ?! e& w* e5 m6 \    PC=0;
/ s% y) o# T% w$ K9 T   if((PB&0x0f)!=0x0f)
/ C2 s/ p8 u0 E3 I/ V' z# U         return(1);
  ?4 T9 l" t/ ^6 H* y    else1 C. w( P5 ^1 `* q
         return(0);
: e4 d$ {, F0 Y7 L3 C+ i) S}
$ A$ q3 z# v6 j  e3 d' g7 G' J0 B2 x8 [" e' b0 o- f. M
/*===============得到键值==========*/
) c, }4 O+ z+ B% bunsigned int getkey(void)
1 ?8 e, S5 N9 e" ~! g/ N{2 K6 D5 R& p: z: i, e% W
    unsigned int x,y,m;' E0 @0 u4 F3 ~5 d" |" {
    m=0xfe;
- f1 @( V+ n7 w- P. }/ E7 J    PC=m;
% M3 x. g* m# w8 o9 A: m% l    while((PB&0x0f)==0x0f)           //键盘扫描
, J" w6 z* G# C    {
9 E$ |0 w) G9 y& ?( N            m=(m<<1)|0x01;+ H* P& f, ~8 ^* T5 e3 w9 `7 {! B
                PC=m;  e! J- l) a* P& t
        }0 ]# e. F1 |, F* S
    y=m;
! p' ]0 F2 D7 m/ G    x=PB;! {- z+ @( \- k2 a7 ?& _
    for(i=0;(x&0x01)!=0;i++)         0 m6 N+ g) X3 ~  p# ^/ c
           x>>=1;7 n. l( v: ~$ d+ f" V) U2 C, ^8 L1 O$ v
    x=3-i;                            //行数
) G* ^. A7 T% `    for(i=0;(y&0x01)!=0;i++)4 F  p% z- y4 u6 g
           y>>=1;( m# g" C8 F6 Q2 H) m" z! i7 Q
    y=5-i;                            //列数
% q8 T, v" |: A8 P/ q0 C. i    while(testkey());                 //等待按键释放2 }5 ~/ u2 b, v6 @( @6 O
    return(keytable[x][y]);           //查表得键值
6 z4 j7 @1 S# Z$ u& K1 \- P}8 \; {8 V0 l% K6 i. y* _7 R
/*====================main=============*/- W, a' T; Y6 A
main()
% F3 u- Q/ m4 R! F4 w{    " o/ t# L  i& L
     unsigned int get_num;
! k7 c$ |4 o: X7 O4 P     COM=0x82;6 C+ C& h4 ]. u  u
start:while(1)
/ N1 i& j' l6 k     {   
2 x& Q- n1 E* A5 d  X" H         while(1)                     //开关7 t. B2 k. D6 \9 p( Y
         {  PA=0xff;
3 }* t" e+ ~3 M# H" z* }            P1=0;& T* f: `9 d  @7 |8 V
            TR0=0;  k, l5 F( H+ G
            ET1=0;9 \! `2 e$ f7 ?6 v
            get_num=50;' E# D5 C+ z( u5 G
            if(testkey())
2 g' A' v7 U. _; y            {
. d7 f) p$ P) J4 c: F, Z                delay();& E  t( x( F$ {* v/ `* `" q
                if(testkey()), _$ b# n+ d. u/ E' t
                    get_num=getkey();, K0 u2 r8 I  _
            }
+ {* ?; h9 z0 z; `* ?; L! q            if(get_num==10)
- p$ |1 `' z5 R! ^/ L% b7 X0 `                break;5 w' A  [* Y1 i/ ]5 [7 C
         }
- o. W: Y" B& [$ t% t         light1=1;
2 V& z1 |3 j% [# {/ Y- Y) Z( t- V# ?' W. y4 H. E+ x" r0 Z5 }
         while(1)                   //输入第一个数
* ^2 d4 A+ v" g4 [' u; W         {
, j# `5 _2 S& B1 r1 D1 v- }. V& G! |            get_num=50;8 x+ f% d! l- s7 G) n
            if(testkey())
) K3 x. r6 S( b* F' ^' ~9 @            {
; ~) [3 I& y' A7 y# H* h) j. K                delay();
3 f; |/ f3 [2 F( d& T                if(testkey())
2 p: }% v! V' ?5 Y! u  Z                    get_num=getkey();
6 J! H4 t  W2 D' J6 i! z9 h            }; s: d1 V) n9 W; V  |7 h
            if(get_num<10)2 V. a( d% g- G( |1 d$ H. U
                 break;
. [$ L, G5 F% W6 n            if(get_num==10)
) x; B8 E5 [- X                 goto start;. e) m: a! U2 M6 J
            ledplay(0);4 n' `, ?+ T' e+ n1 L) y: a
         }
; T6 |+ A0 o# h  }9 F! W         time_num=get_num*10;
5 t3 w" A: d$ u: m' F( l$ L$ k/ O0 R# D! O2 {% I- `
         while(1)                      //输入第二个数
; S" ^+ J" s7 C* x0 K( E         {9 F8 v$ e! {4 }& c
            get_num=50;( `% _! T2 ~  [; ]" @, M9 N7 A
            if(testkey())) D/ Z# r% {& [8 \
            {! j' J" Z8 {4 N' d
                delay();
- i8 e& v- _" a% {+ d" f                if(testkey())9 _* `# p* E* ^, k  u* z
                    get_num=getkey();( I* |( X& n/ w6 i
            }4 f; d5 }3 p- c  i- v
            if(get_num<10)/ N4 F4 p7 @* i% e* e6 ]1 _
                 break;5 B* @3 N8 e$ b+ D3 U4 c
            if(get_num==10)
1 E2 x* n& T: ~! \+ k7 b5 |0 Y9 I                 goto start;
' @, S' u5 v( I8 E            ledplay(time_num);7 g9 E6 W1 w- ]0 z! b* v# @; G
         }0 I6 z  }- u% E( L
         time_num+=get_num;
" W0 \, T+ e/ x' y4 c6 f, q3 {+ Z& \# F# F4 Y/ K& j* Z
         while(1)                     //输入火力挡位
$ a+ F; K, x  ~: U- c/ N2 p( ]         {7 E+ ]" X+ h2 G
            get_num=50;
- e7 ]3 D# ~* k0 u2 F" g( @            if(testkey())
7 e1 x* c: i, i            {2 u5 u& Q( x" b8 a# L! K6 V9 N
                delay();
8 c- f: E/ o# \# T/ a3 U                if(testkey())7 V$ \. Y: t2 c9 O4 Q0 c' f) \* ^
                    get_num=getkey();- u3 W) z& ^' C' h: B; k% Q
            }
5 `2 D+ V% A, Q
) A, F5 W+ ^; B0 R
: t5 r  v4 ^0 ^% f5 y. d, z( m0 \…………限于本文篇幅 余下代码请从论坛下载附件…………
1 C2 r' C7 d* {0 B' e
游客,如果您要查看本帖隐藏内容请回复

1 t/ d0 }! N$ K& i% p

4 [9 R; O! q2 o% U/ l* P* _- V+ [1 p* j; P
# ~% I5 Z) Y5 z  r6 I8 o- k
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    5#
    发表于 2024-6-5 09:05 | 只看该作者
    + r9 ?2 [; K; O2 S. L- l
    感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-26 09:51 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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