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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于微波炉设计的单片机仿真以及程序资料  t) B+ n5 W9 @
( G- O4 @+ X; N( M, R, U
( a1 ~/ v' U; K: w* t
有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图
0 ~6 N! f$ H( }5 D5 w+ D
) k7 _" m  f+ |- b  L$ I' {& \8 k* J+ k6 E) d+ n
" {- a. m0 j' X; w+ q. L1 a
8 h: |" G* j4 v) @( f% g* Y
单片机源程序:

. r" d) Q, ^3 t6 G/ Y#include<stdio.h>& d- P8 ~+ q) m6 O4 r
#include<reg52.h>
8 ^, k+ a- {4 t  I7 Q#include <absacc.h>
& \8 M  N- ]) |! ^$ c#define PA XBYTE[0x8000]
  X6 ]! p6 K$ r7 K6 Z6 q& Z#define PB XBYTE[0x8001]
4 l& b3 e1 B0 f# G7 m6 H#define PC XBYTE[0x8002]
& @% C9 q8 `1 V: f$ {- C#define COM XBYTE[0x8003], |- w, H; e" ~( E5 D& D* j# a
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}};. c* H1 E2 v% G+ o9 g/ z# W
unsigned int i,t=0,time_num=0;
5 o/ M# ^( I! L- w8 Tsbit light1=P1^0;
$ v3 O5 i! V0 X3 H  J( r. e$ nsbit light2=P1^1;
7 b1 h% f) z4 a( a7 }" tsbit light3=P1^2;
+ Z7 m( S  @  d0 }( Asbit light4=P1^3;
8 E  d: m" Q/ S' P4 i$ J7 J5 D& E/*===================延迟子程序============*/% X8 _2 |( Z5 `+ |8 r9 m! s
void delay(void)
1 W7 s9 h  |; s{
6 X, n. C1 u9 \: h   unsigned char j,k;4 P/ e' L, y5 u) j
        for(j=20;j>0;j--)
5 |% t. N& G: E6 K2 ?" F6 W                for(k=200;k>0;k--);0 L: `' u. c9 v. n- s8 W5 N
}
" u0 Y+ ^- {) E6 `# ^4 {/*===========数码管显示子程序===============*/8 a7 P0 A& _4 k5 k1 M# ?: l6 g
void ledplay(int b)+ p# ^5 T* P0 |! P" T
{) j+ [8 M( A" X6 M0 D5 b0 f
    unsigned int m,x[2];
" m+ a7 s/ b* v1 r% O    for(i=0;i<2;i++)$ Z  K9 O( y; P7 m
    {
+ U/ J: r' z! K  z4 M        x=b%10;' [' a( H/ n+ l8 M4 h4 L, Z
        b=b/10;
% V6 J6 u3 J) f& `    }
* I+ `! u: D" p# o  J* I    for(i=0;i<2;i++)
. b: t* Z. L8 u9 d    {! S8 h8 m: \) I' S' F4 v
        x=ledtable[x];6 C6 j: G0 V5 v% Y
    }
/ f9 j9 c7 z, X- V; d    m=0xfd;% i7 T; ~3 u# C- J3 o
    for(i=2;i>0;i--)$ k& L8 M7 ]! S' G
    {
6 I$ o3 _% \4 u/ u$ k, v        PA=x[i-1];9 q* E0 [/ p7 T2 r  e
        PC=m;
  N0 \9 M& j7 z" i9 o7 B& X        delay();, M" a5 V. m( t, D
        PC=0xff;
. I3 g" _3 @  e5 X        PA=0xff;
/ _/ M7 T' Y7 c6 g, F+ h' R        m=(m>>1)|(0x80);5 [+ q, o4 l% u1 h* G+ w
     }
! W; w7 r& I1 F0 z- ?, v}
* y5 V1 W0 w/ W( o' v; O) m: g+ ?/*=============测试按键===========*/7 [/ a2 t! ^) {0 t
unsigned char testkey(void)3 I) V( I7 o! j7 {8 f8 n
{
4 m% q+ R$ S! }, Q3 A( V1 D    PC=0;
$ x4 x2 t) k; Z  ?   if((PB&0x0f)!=0x0f)6 V7 Y9 T# g" |5 i+ Z, d- r" A( t7 O* ?
         return(1);; b% q1 q! V$ a) o1 M; C( R
    else. w  _) i$ c6 d) ~
         return(0);
: m& H& q2 a, j8 U: F}( ^' J" w+ n- x" n( j3 n

1 ?% _- Y! t. \  ~7 r' s/*===============得到键值==========*/( p$ V5 A5 _) d( a* h: ~6 `9 f
unsigned int getkey(void)- u" W: @8 I$ b; q2 |9 S( v# G. ]
{' k( F$ e$ \3 L- V. _# I
    unsigned int x,y,m;
8 ~# U) W, C  {3 k    m=0xfe;
# a- g: b: T4 ^- a% M6 a    PC=m;) `# ?. |' i6 {& @$ H4 s! `) L
    while((PB&0x0f)==0x0f)           //键盘扫描
. \, L) A4 t0 F3 T    {
2 i! w9 U! w% f2 V  @- Z1 S            m=(m<<1)|0x01;
& }- W" F4 h9 D. ^: M                PC=m;/ S$ X6 S8 D* }5 @/ W% V
        }$ M/ L6 ^3 ~- }' A+ f
    y=m;
8 D. W: M3 g- e  c* K! ^    x=PB;
& d! @3 W4 ^. m4 a! Z  y    for(i=0;(x&0x01)!=0;i++)         " I9 P3 R; ~' L
           x>>=1;
1 D: u. w5 ?" o9 c    x=3-i;                            //行数- C, m# a9 ^0 W
    for(i=0;(y&0x01)!=0;i++)7 j5 Z1 q. `1 Z+ Q# r$ S2 S! D9 n3 O7 k
           y>>=1;$ d5 K1 p8 K9 O5 r7 ^0 I2 S# N9 p" Y
    y=5-i;                            //列数+ J% v" c0 X* f
    while(testkey());                 //等待按键释放
) u) p+ U, N. \7 V: h    return(keytable[x][y]);           //查表得键值$ E& ~; D& _' [0 I# L
}( |1 k0 [  t" W( x' T9 X/ }" c' n
/*====================main=============*/3 R3 r( n3 i  [
main()
5 ~* |" N  b. }2 T1 B{   
! p+ {! e9 b3 a7 I( a     unsigned int get_num;
) L* @2 i, V1 p9 a/ P3 B' K6 b     COM=0x82;
6 i2 E) {, c: n) N$ R+ T, [, X4 nstart:while(1)3 N0 n- z5 ^( V. i' Z  x( s
     {   
5 Q2 z! }4 S! @& m         while(1)                     //开关
: b9 A! s+ J. M; S+ U6 `$ r         {  PA=0xff;
, [* w) Y; |0 e  B            P1=0;5 v* ?1 u' H& x
            TR0=0;2 y$ J7 H5 U2 T6 E
            ET1=0;
3 O) b1 w" O" |/ W            get_num=50;
4 G: k' r5 [9 G, m            if(testkey())0 m) i/ h/ s/ f. d( a
            {/ h) y! Y8 u/ n: `- u  Y
                delay();
, n0 N) [1 F0 C                if(testkey())
$ ], J1 ]! r# i: ?) }                    get_num=getkey();* f6 d" A, v/ N. Z2 y7 |/ K! Z
            }
/ }. H* K% ], j( B9 u( x( }            if(get_num==10)
/ a" S/ A" m/ J- S( ]                break;
6 L6 }+ [7 }+ {" d         }
9 S8 p$ {& J* V5 y/ s& f+ X         light1=1;
! @5 L9 g1 J7 B% i# t( p3 J) v! X) Q  y/ c3 X6 k; h
         while(1)                   //输入第一个数8 D# x3 C7 t( ?  k
         {
! z0 F  f( `! I' p) e2 B3 u  {, j            get_num=50;
4 t6 I5 n9 e% `5 ^: L            if(testkey())
1 ^, k7 n* |: [- I, n' z" O" U            {% \7 j- y2 m, y/ N  B  f
                delay();
" _2 h  s% }: e* V7 p                if(testkey())7 A- G9 z" R8 p2 [& T! C! ?
                    get_num=getkey();; c5 e+ F$ B, R& B/ A! A: E
            }
% l1 k5 `: B, c2 H$ a- n            if(get_num<10)
- e* \5 h  ]' V7 g                 break;
7 E" e+ M# k' t3 n/ e2 W$ B            if(get_num==10)
0 \0 ?) e6 J. e                 goto start;
4 f7 t7 l' }! \( E            ledplay(0);3 c( _4 K+ y8 Y1 q& k
         }( y9 V# H  l6 P
         time_num=get_num*10;
$ ]% O/ j: a& i# G" J
/ m0 v$ r7 ~- h+ o# `         while(1)                      //输入第二个数1 B8 ]" p$ E1 E7 `1 {
         {
0 S: Q8 H: ~' D0 \' e  b) W+ W9 w/ B            get_num=50;
! L% f) u3 H8 v) w            if(testkey())# s4 a. ?* \0 R  o6 ]
            {
0 s# n0 f6 t; n                delay();
: d# ]+ W) x6 q# G& B  H2 \" ?                if(testkey())5 R( ?8 m5 ]5 o: F. i, c
                    get_num=getkey();$ e8 `( V+ Z" G$ C9 D
            }
" s( v3 b" r* w( K. H            if(get_num<10)
- A! @( ~+ G( k: o& e                 break;/ T( i& c3 Z$ I$ ?1 q' X, M
            if(get_num==10)$ N  o6 a* @8 F/ I
                 goto start;
9 L. u; p+ x% K" ^4 @            ledplay(time_num);
8 N$ E5 e8 p+ ?* D$ K9 Z         }( k. [' z4 H) ~/ o+ I  n
         time_num+=get_num;
3 T. Y) L  Y: p$ O! V& u6 ~+ S8 \& O9 P3 {+ G
         while(1)                     //输入火力挡位/ ~. H/ s6 M2 R% \; N1 Z: v2 V
         {* {, ~6 L/ \2 _) o9 i
            get_num=50;- K: K& D  A" g" L: t
            if(testkey())9 `* ^, y! L- ^5 e3 Q1 r
            {/ X4 d3 y, J! R$ f7 {' ~5 n
                delay();9 H& F" o: ~! R& R! k- s9 }
                if(testkey()), ?5 a1 p4 |6 m8 Q; Q/ E
                    get_num=getkey();
' v7 a6 t3 S7 |5 Y* \& x2 V9 T7 T            }3 u/ Z& p5 a- B# y( T9 a
+ w, P  }) A# Q
- L& J% ?/ o- o2 E! K; F* u2 U
…………限于本文篇幅 余下代码请从论坛下载附件…………% w( Q' z! S/ `( I$ S5 a/ o
游客,如果您要查看本帖隐藏内容请回复

+ u- p) D9 g$ X# ~0 a1 y

. G  z9 B, z) t3 [3 K  g0 |; h
( l% e- T3 ]; e+ r

9 O( \5 r! U* Q8 x
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    4#
    发表于 2024-6-5 09:05 | 只看该作者
    ) ]+ X9 A% ?& @" T; }9 @: M: I
    感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2026-4-18 20:48 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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