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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于微波炉设计的单片机仿真以及程序资料
9 a& h- h6 R+ \/ _) G  X
3 N9 x7 Q1 w$ c' k5 D' \0 S( o

- s! M  z% l  F/ [有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图3 j) B; [$ T) z4 P, H+ u: f

$ o! g. {1 y) [' l7 o
; k( D5 P' @9 d* q' B# k, ` 9 s' d; e7 @6 O  ?/ N
4 O* ]( w/ g5 H2 ^+ |, I1 _, h) y3 m3 i
单片机源程序:

  D4 a* k" k& r#include<stdio.h>  N6 D2 P+ _& D6 R( n5 z5 \1 Z
#include<reg52.h>6 z$ Z  q9 r# d. t4 a! J
#include <absacc.h>3 q4 V' `: }+ |/ i4 l$ q
#define PA XBYTE[0x8000]
1 n( L2 ~: Q( V/ Z, n#define PB XBYTE[0x8001]
% h! g; {( {# n8 b& v' r#define PC XBYTE[0x8002]
. M5 K% t! u" {8 i#define COM XBYTE[0x8003]
! Z" h' Y( I6 k4 F1 y) Sunsigned 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}};
' \' C0 C( ]; J% F& f6 Vunsigned int i,t=0,time_num=0;
; A, |6 Z8 l' \+ N" Z$ xsbit light1=P1^0;
/ j9 R" X8 P3 `6 B) h6 B# i% esbit light2=P1^1;: D$ G7 t1 d1 y) n, v0 ~) }
sbit light3=P1^2;
/ c% a' v: _1 |/ _sbit light4=P1^3;6 ~! r8 b( w" F! P
/*===================延迟子程序============*/" U; t5 Z6 |) K1 h4 l6 N  M
void delay(void)
' i6 ]$ K! O# K, S{
; B8 l7 E; K2 O# f# n   unsigned char j,k;) m4 T8 F5 ]* Q+ [
        for(j=20;j>0;j--)
" e/ B& E5 `/ j& E( X0 t6 b                for(k=200;k>0;k--);! n: ]. ~0 `+ e7 ]1 n
}
7 S3 P1 c% T; M4 t. ~/ }/*===========数码管显示子程序===============*/
8 u% g' N% P) ivoid ledplay(int b)' {% k9 f# d0 [) M
{
- E6 f" X' Y5 C0 {" P    unsigned int m,x[2];$ j* }4 A. X# w1 s0 _( a; W
    for(i=0;i<2;i++)
, v, r6 ]9 i5 _+ d    {0 F1 \4 [/ e9 h. m7 x; }
        x=b%10;
8 j2 a6 \! R" y: m+ V        b=b/10;- M1 m2 r4 {. E" ]$ F0 u0 f
    }
$ c+ [2 _8 ^5 H/ ^" ~    for(i=0;i<2;i++)! B' Z& G! E/ B3 U+ A. u
    {) y- L  B( B$ \+ E
        x=ledtable[x];
, g2 K) {% G* g$ J    }6 W/ r1 ]0 K, C1 S0 q/ C
    m=0xfd;
( V, T; f  W6 Q# [$ ~- h, w    for(i=2;i>0;i--)% V, U7 G) U- g
    {
  i4 Z7 w. z  n4 T8 Q        PA=x[i-1];
6 ~2 _1 y; A  b' [. t! t' R        PC=m;4 N; [1 S5 z" Z+ \* y% ?" j
        delay();
: G8 T* b; C" L- H, c, p        PC=0xff;
2 t# d+ N# ^8 {        PA=0xff;% W* y, L4 i% i4 w/ P9 R# Z6 P8 h
        m=(m>>1)|(0x80);
- N) Z4 D/ k1 \9 i4 T" {' B     }* ^2 r9 m, C& O* f
}$ U- M/ _2 F7 S/ {- L/ y
/*=============测试按键===========*/
1 n- T! h3 \2 S! z' m- Z* C" zunsigned char testkey(void)" j1 X$ e- U$ P
{
( q  @9 z  f- X5 d3 a    PC=0;
0 g  j6 ^: S! r# H$ n5 X8 ?   if((PB&0x0f)!=0x0f)6 A0 [) h0 M/ R( s0 O1 `: S5 r
         return(1);# ]! N: e! @, A7 k$ X6 z0 j  }( ?
    else
# q: l7 Y* ]. ~* [. _3 w+ L( p2 t" I         return(0);
) P  |% I+ _5 r% h( |# P+ Z}$ t* u  ~+ g3 ^' ?3 E; X+ H
1 Z: G) u1 r' N1 w% D6 W% t
/*===============得到键值==========*/
& X& J5 P. C* n/ gunsigned int getkey(void)
4 i8 c* S/ V& i$ j* H0 ^{$ c3 G) u, o* `' \2 j  H
    unsigned int x,y,m;4 V% \9 Y# n4 t: q
    m=0xfe;
, f9 r1 t# c1 w7 k% ^6 E    PC=m;
; h# u: X. C. [1 J    while((PB&0x0f)==0x0f)           //键盘扫描, y5 u. c0 ^5 j* y  ?
    {! O1 _; }( E3 g/ ~+ f! i
            m=(m<<1)|0x01;& Z& {9 F% ?' Q
                PC=m;
7 a1 S( M$ N( b4 ]6 C! [" e        }
# p* \4 {* e9 b1 W+ Z2 U2 r+ D/ P    y=m;9 h! X- ]4 r( C. |$ O
    x=PB;
( j4 S% r0 \. V' i* e    for(i=0;(x&0x01)!=0;i++)         0 j1 J- H$ m& z1 Q2 s3 \2 U
           x>>=1;8 D9 F. q! \- X8 r
    x=3-i;                            //行数2 J( J4 z+ H& i) E2 Z& d
    for(i=0;(y&0x01)!=0;i++)& @$ Q: p1 w8 D' I, f7 `
           y>>=1;3 o$ [. e$ C5 ^" _- U5 D
    y=5-i;                            //列数
+ v$ D- a  q2 r6 C; l    while(testkey());                 //等待按键释放
) g6 G! m* _3 x# D# X; K    return(keytable[x][y]);           //查表得键值
- S5 U6 t0 P6 M6 O' V2 y! Y  q$ u}4 J5 R* o- J# B  ^8 v& J& g( [3 a
/*====================main=============*/
$ N' i5 T( `, v  B4 h0 lmain(): c- c% h. j/ c0 ^' K
{    / R% A! r& ]4 p2 S% d* Q4 I
     unsigned int get_num;+ C0 n$ U% \* ^% x' e
     COM=0x82;, t: t4 G. v; S; T3 S# b
start:while(1)8 u! ^3 `' v  Y  n3 y
     {   
- k! h! {+ h; m% }         while(1)                     //开关$ Y3 q/ V3 Y. g2 r5 T1 w' H' r
         {  PA=0xff;0 X% ^/ t5 V4 P& `; ~% c* T$ G4 v; y
            P1=0;
) t0 `9 U2 M. E" d9 m( E            TR0=0;' ?, m: }$ I* {2 Q- O3 p& O+ b
            ET1=0;
- w- ^6 }; a9 e. n            get_num=50;7 ~: `* M' V' S
            if(testkey())7 F* E& R: Q6 a# k! G2 U
            {
9 z: o$ n& a/ X( E8 b6 b9 w                delay();
4 l/ [* ]2 E- z                if(testkey())4 J, X& w2 i% g6 ~: e7 N
                    get_num=getkey();; l. e! ]+ u# s% K, P
            }1 u! [, y- C6 \" U; g8 [
            if(get_num==10). r2 m# m" `/ @$ I& g. U
                break;
+ e# I/ P2 ^( Q. g- J4 Q         }
# b# H, J# x7 G7 {2 q6 v         light1=1;
& V& k/ s2 ]6 x9 Q. @/ L6 [( [" P9 Z4 Y1 l/ [9 R, U& ~8 J
         while(1)                   //输入第一个数
4 {+ L5 ~" n) w+ T         {8 J2 j5 @* t. e& V- y
            get_num=50;+ k2 e) v9 ?1 ~. G) K' W, W- n) F
            if(testkey())
0 S" F( h  J2 _' B& Y1 ~! ]            {2 M, O# I  H. U0 s
                delay();7 g6 a3 v- I2 B2 c7 x8 j( |2 x
                if(testkey())
) b9 o/ l% L6 d" \4 p6 M/ v                    get_num=getkey();+ C/ V, u- X1 z3 I3 z0 z
            }
! @5 K% v- N# p0 w            if(get_num<10)" Q2 E8 w, C/ Q5 [, R' M# P
                 break;6 A9 T4 {; M7 Z) {) C
            if(get_num==10)7 u( K/ t/ i- L' f# b
                 goto start;% l8 m9 i3 R( z& M0 ~: a
            ledplay(0);: B2 X) R* I1 j' L3 @( S4 X
         }
& x) |1 A7 i5 o% o" b7 X         time_num=get_num*10;
5 V0 l# k3 Z8 K7 a$ z& k6 U1 i- E6 I* H- X
         while(1)                      //输入第二个数
: P' E, k, K! ?) Y! v% T* L2 t         {  l* p! t$ C6 U
            get_num=50;
" |5 W  K' m/ H- y; x% U            if(testkey())
+ ^+ V: j- ?5 \4 T5 i+ v            {+ ?, W  s6 U3 ]( ?8 \
                delay();* _1 B2 E7 I% d4 Y; K; B. C
                if(testkey())6 q8 c3 ?2 g( t5 Y) h3 w
                    get_num=getkey();
7 C7 Q, n* R# N, |; U6 A  V2 C9 R            }( \& m2 e' }, p, G. W8 F: c
            if(get_num<10)& b; I% a& G" q5 B9 y
                 break;  t" P6 I0 X; @. t* Z, V  j$ e
            if(get_num==10)
0 ]) D1 C! m3 E3 _+ N$ a                 goto start;; S- O! Y, m/ d- V/ C
            ledplay(time_num);& v, D, I& s9 |2 Q
         }; V8 @' ^, Z; M
         time_num+=get_num;# V# E: Y$ g: x. ~- s5 ]( c8 ?
) j. C) B8 _0 v, n
         while(1)                     //输入火力挡位
/ g! i5 y1 `% Z7 J         {% c$ d# |& x5 f3 Z) ^
            get_num=50;
9 F3 D) d4 L8 \            if(testkey())
% |7 Q! s5 ]- y5 P            {
# h8 ]" p( m1 K0 a5 F# F                delay();
2 T& }. n& W5 y0 {' s- y- a                if(testkey())
  w8 o8 y) m8 w                    get_num=getkey();
9 }7 A( e# V+ M+ h5 B3 d' |            }& B6 y" O) F* H4 a, {

% M4 k$ B- V2 _& G6 E) ~( ^6 ^! q! A9 y" r# P2 I/ _( L. T. Z
…………限于本文篇幅 余下代码请从论坛下载附件…………
8 B+ V# C0 E6 \$ ~
游客,如果您要查看本帖隐藏内容请回复
4 J; V& W' N& q- F  ~) ^# @6 H5 o
( J- V6 t: X' f+ M8 p1 ^- o

5 x- J' ?+ q. `8 k' O
7 r$ ?% X- [1 W- ^: \3 a# P
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

    5#
    发表于 2024-6-5 09:05 | 只看该作者
    2 h! ]# i8 |) x* h5 L/ |/ t  z
    感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2026-4-18 22:25 , Processed in 0.109375 second(s), 26 queries , Gzip On.

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

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

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