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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于微波炉设计的单片机仿真以及程序资料0 D* o2 P4 q, u! q3 I, T
! @( s% T1 G9 y8 g2 X' x

$ R; i& Y5 V, `, H+ ~( i有关微波炉控制系统的欢迎大家观看,下面是单片机仿真原理图1 x* ^) N9 V# Z) p

; k. X9 k, G3 ~2 H) L1 F" X3 z8 h; `- P9 V0 a' l& a8 G
$ k: a8 M/ O! w" q) I0 Q
( L( D" a9 L1 B$ Q
单片机源程序:

+ ^3 R" b7 Q1 ?' P#include<stdio.h>
6 a. O! `# H# t: K- k, f% q#include<reg52.h>
3 G- O, e' ?: Y! O7 k; @0 c: v1 j5 m#include <absacc.h>" K- s; Z2 h- H* ^) Z5 G
#define PA XBYTE[0x8000]
* G; R' g* u" ?( J  M) ?& e7 F#define PB XBYTE[0x8001]
5 @. A7 {3 @, ^#define PC XBYTE[0x8002]
, N7 E8 Z+ W& J5 K0 ^+ B#define COM XBYTE[0x8003]7 \: f6 B4 D! Y6 j
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}};
2 H. x& ~& e7 y/ m! k1 zunsigned int i,t=0,time_num=0;
) ~9 q& J! @0 ?4 D& p' l/ S/ jsbit light1=P1^0;
0 R+ N. N; e  k6 }2 Hsbit light2=P1^1;
' m; n6 H1 _1 J& W5 msbit light3=P1^2;  x! N& I: {. m" W+ c$ `
sbit light4=P1^3;
1 E# B& G+ X! s1 x/*===================延迟子程序============*/4 n+ c1 \8 G) V5 V+ `# j; z
void delay(void)
: Y$ t; C6 M, ], q{! ]3 w8 F/ V! i) S
   unsigned char j,k;
2 k. l7 R" _* i        for(j=20;j>0;j--)9 V; h! y' n9 F& A- A
                for(k=200;k>0;k--);
; E+ i8 S3 P# c# J2 E! O1 G, g5 l# c}
2 P+ ]; k$ @. \. X5 t/*===========数码管显示子程序===============*/
5 v# Z+ ^% U- o- [void ledplay(int b)
& D/ ~( W$ c1 y# Y, x& r- c% |9 b' N{
; `5 [3 g/ A: V  l. ^6 g! K. {    unsigned int m,x[2];1 X" b8 ^% e4 l: h
    for(i=0;i<2;i++)
" G8 O7 S+ u3 R5 S# E. u    {9 H( ]+ v9 W3 z5 S1 h
        x=b%10;/ S( Z( \/ e4 d8 v. P1 p8 f3 v
        b=b/10;4 C3 I, U! T1 A; r' \) C& B" N- G. @
    }) k' f& c( _1 X2 i8 D! a# s. Z. F+ j
    for(i=0;i<2;i++)
; [: s& G5 R  U0 g1 S    {
) h  `6 ~9 z* K        x=ledtable[x];; L; \% A, q3 n/ s* D9 y0 a6 `2 g2 ?
    }* l$ |/ z! ^4 e1 Q! C
    m=0xfd;+ h+ U  L5 t8 Q2 F
    for(i=2;i>0;i--); |; f* I! ], _! T: H6 _+ x% k
    {. z: x+ H5 p4 I& C
        PA=x[i-1];
$ _# P- e5 a0 z. v        PC=m;
4 U& B4 f2 c( m( J        delay();$ r3 R9 _. O" l7 n0 c; e, B
        PC=0xff;, I5 B  E/ l, ?% {( y' D" b
        PA=0xff;+ ~* u" D: Q1 U, `1 ]& _8 w
        m=(m>>1)|(0x80);
2 X, r" U3 l" [  L     }
( ]4 U1 j$ T7 |# g5 V}
( i( f/ p! Y- y' H& M/*=============测试按键===========*/2 b2 U/ V6 J# M6 Z5 q) k
unsigned char testkey(void)3 T9 r) s" j& q" M, e1 S9 C5 j
{( @7 F5 e6 Z9 O& Y8 B
    PC=0;
' Q. J8 h$ j: x& t   if((PB&0x0f)!=0x0f)
/ Q- s$ R2 [6 y: R         return(1);) _) H- i+ A& m) Q5 M+ Q% O
    else, v% a7 j9 I- R! U1 w
         return(0);5 f2 U/ [/ q# ]+ E" X3 ~9 j
}
5 G4 S2 W$ f4 k1 q6 c$ j% q0 u  L% m& `
/*===============得到键值==========*/
$ d: o3 _0 {# }' C2 R; Eunsigned int getkey(void)
. X. E( s! A$ _' W+ q{' ?$ @9 N( @: o; h  e* z& D2 R
    unsigned int x,y,m;  K! _1 Q# R. `$ z5 d, d1 G2 z/ I3 p
    m=0xfe;
3 ^) y/ g+ z, ?5 Q2 Q: p) U6 v    PC=m;
5 j; [& L2 K5 ]' Y# }( p" M    while((PB&0x0f)==0x0f)           //键盘扫描
8 {: P: o+ {2 z8 o3 _    {- v2 g& k- [$ U* h, W. p- Y6 _
            m=(m<<1)|0x01;
; ]  N* V8 f* v# ~% S- g                PC=m;
3 h' m! S* [0 W4 t0 N+ D        }* @. ]) z4 T+ L+ V' a2 u* J
    y=m;
% A" j: L* v( j5 B% W    x=PB;
: Z3 ?, q0 e! \! {/ ]    for(i=0;(x&0x01)!=0;i++)         
2 ?# ]  L8 u! M7 Z           x>>=1;4 `# R; \2 C) x
    x=3-i;                            //行数
1 N8 ?& x2 ^5 i/ o* @' G    for(i=0;(y&0x01)!=0;i++)1 {$ l& O/ q% w2 R% l- [/ X/ B& T
           y>>=1;
" w/ V8 _' I( Q1 b" M: `- k    y=5-i;                            //列数
5 ^2 Q7 J( D; P( C$ |' E    while(testkey());                 //等待按键释放
& p0 O5 C! b! L6 S4 `1 V, l    return(keytable[x][y]);           //查表得键值
; f! ?3 D: x' p. G}
( }% p0 e! h8 c6 ?# p7 y  l/*====================main=============*/
! f" b5 y2 j0 h" Dmain()
( o0 s* F+ a( T- K+ U# f{    , _# C; j# ^. m" Y0 Y) t! f5 |
     unsigned int get_num;
& I, X; k+ Q+ z' }( i     COM=0x82;' X' |% U5 J* e; }/ z% g! \
start:while(1)
4 p, C: u' H5 z' Q7 T+ N3 N9 N     {   
/ y* J* n: L- u4 X% ^         while(1)                     //开关
0 X$ K1 O, F' v/ G+ K         {  PA=0xff;
3 C' q0 ]  e9 f0 \% x" A, F; u            P1=0;. @8 G; Q* l, o; ~0 H
            TR0=0;2 o) O- H6 W- G  [# }
            ET1=0;8 ~* z4 r- U9 D
            get_num=50;
" B# x3 D  c4 I/ A            if(testkey())9 p9 [7 e# d- z
            {
  X* L* O! v+ R6 r                delay();# e+ I! r- A3 a& G( p( i
                if(testkey())6 D- i% r- _1 ~0 [
                    get_num=getkey();0 }5 S- w; l  V
            }
. t/ J; a( N! v# D" k# g            if(get_num==10)& a+ w6 ?- y( p* [8 J0 C
                break;
- _) ?6 f/ u) ~( g         }
6 y: ~9 j7 g  x4 a) z         light1=1;
7 }' k* ^' |1 c& v1 X# Z4 d# F* ]  {) E" Y
         while(1)                   //输入第一个数
* ~5 E' V$ T6 K/ L7 I* R2 m1 U         {6 m2 E6 W; X; D" ]+ n
            get_num=50;& u% K7 P9 w4 e; ~4 b3 l, d
            if(testkey())
8 J1 O" G- s6 D7 V  k# G- ^            {
* `& a- k. I% z7 i  B: Z" v                delay();
' ]9 e2 @, R& g                if(testkey())
  I+ ?# b: I( p0 y# }  h; J6 R                    get_num=getkey();  k6 y7 p: ?9 J! j
            }
! x3 ?3 q" m' u$ V, H# g            if(get_num<10)" f/ D' |$ w9 m8 T2 \" y9 m* {
                 break;" ]9 a; K0 t/ n* J( [
            if(get_num==10)9 v( O3 r& {  D# R6 U6 |
                 goto start;. \7 [4 S! J! ]! a4 f2 O1 U! b
            ledplay(0);
# F) x( {8 Q+ q: Y+ w5 j" U         }
2 Q5 ~5 n# O5 O: j1 I. m         time_num=get_num*10;
& ~1 x8 h5 ^) @' {( J$ ?
+ y. G# M3 Z3 M" h7 u& J) A; s1 X         while(1)                      //输入第二个数
, X' p  B3 V/ Y% ~  v8 b         {
1 k1 ~. Y1 r2 e) D0 w, @# @  G            get_num=50;
  m( H' h' g$ o4 u$ ?            if(testkey())
5 E( ?. {+ p7 k: v, Q: Q            {
2 D0 R: }! G* _" b1 s                delay();) H1 s2 o9 ?$ q3 Y- X
                if(testkey())
3 ?8 @& w$ h; N+ a                    get_num=getkey();
$ \; U8 u3 v* K6 |            }$ d1 T$ c9 f4 y2 e6 V2 h
            if(get_num<10)
- B& g) V; b* Z                 break;' Q( X8 ~8 D2 S9 L% @
            if(get_num==10)
7 ]" m! u' n7 S                 goto start;8 p9 h& x) t" s, v% s- d
            ledplay(time_num);
, [  F/ V3 z% D' m  b& R         }
3 G% H0 D/ ^' w+ B         time_num+=get_num;. E6 P- v% {# u" \7 ]- U) }. j

; f& {9 b0 X1 H6 c/ |# F, x. b         while(1)                     //输入火力挡位
( n0 \- x9 U$ l0 V0 L  P$ l" z' b. j         {
1 h( e* Q$ B& _$ M8 P$ l: v            get_num=50;) \0 x$ q! ~/ \% R& v
            if(testkey())
' R" E" B: {! B& O3 D, b            {
9 X. c6 f: Q* b8 h2 _# G                delay();
& v0 ]6 \- t2 r( y8 n$ ~- D                if(testkey())
( B) g4 [7 J/ D" O3 i- O                    get_num=getkey();( {' K3 b) p% ~  _! |) D
            }* o2 ^3 y  }, p* d$ L
7 `2 D) R, k0 E1 L) Z6 z
- m3 f9 x* g' ^( E8 S6 f" k$ ~
…………限于本文篇幅 余下代码请从论坛下载附件…………; q4 f  c2 f+ X3 s
游客,如果您要查看本帖隐藏内容请回复

! i  m7 k( p4 H2 R! }
" c9 O( W" h- y0 O, U) z+ W$ O
# s0 Q# Z9 {) f
- s7 H1 `% G  l
  • TA的每日心情
    郁闷
    2025-10-17 15:59
  • 签到天数: 59 天

    [LV.5]常住居民I

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

    + c2 a7 E1 p; s感谢楼主分享,学习了
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-11-26 10:44 , Processed in 0.171875 second(s), 27 queries , Gzip On.

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

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

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