|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机三层电梯控制proteus仿真设计 带源码
2 x2 `# a2 u" `6 M4 `- U ~6 ~' J" w3 W ] h$ D0 J
! w$ _6 `1 F) e
单片机三层电梯控制,使用数电和带单片机,适合新手。9 i, `+ z4 _8 q- ~/ }) t9 j
( d# @% Z4 Y8 U( B' N
' F0 \9 B* }8 ^# T单片机三层电梯的源程序:; x5 Q! h6 U" t& H2 G4 }+ x5 z5 X
/******************************************************************
: i) T- x3 t; O5 U, j* w- y AT89S51的T0,T1计数器对输入的信号进行频率计数,测量结果用五位数码管
2 D! w9 Z' l; J2 A4 X" h动态显示,要求对0~65KHZ的信号频率进行准确测量,误差不超过5HZ* V* z" p: G/ A* \0 |0 `4 g6 j
*****************************************************************/% F5 ^7 x& L0 {3 {* S [- Q& R0 p
#include E) G. X8 a, R* O
#define uint unsigned int
; e! {8 g4 k! |2 e) f( B! isbit KEY_1=P2^0;2 G3 o6 u# d5 \$ f
sbit KEY_2=P2^1;
" U; F5 w* b( H0 ~. r+ _& @9 G- V3 Asbit KEY_3=P2^2;8 c4 d) d4 V+ T# J2 w
sbit KEY_4=P3^3;
$ I/ P; h! V* U% G0 ? s( l, F9 j( u3 Rsbit LED1=P3^0;
. [8 ~5 A" W& k. t7 c# `7 h% ssbit LED2=P3^1;
: |) N, z+ c- h% Z+ T$ C Z3 f3 U7 Usbit LED3=P3^2;
( h* q! s0 ^' s0 ]8 f bunsigned int num=0;
; _! w2 i3 }, a7 K4 b/ Dcode unsigned char TAB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0X77};; d) K2 |. W! Y- j2 B
/*显示变量对应的数值*/
8 w1 ~2 i! J0 F1 |: J) E F. x/***************定时器0中断服务函数************************/5 j7 {4 d# q ], z4 l
void timer0()interrupt 1{3 O! k1 j2 r- h! L* ]+ b& X }& X
TH0 = (65536 - 10000) / 256;
& x" H6 p( j& l) ~" B TL0 = (65536 - 10000) % 256;
[9 f) A) w; X" L num++;//记到20就直接停止
+ b0 i# _ g+ Y/ _7 L //if(num>=50)- `& K( y" |3 B6 M( X
}
! }. P5 ^4 T+ ^1 X/**************************延时函数************************************/
q7 W2 B/ h7 J* O: U7 e$ V( ]void delay(unsigned char t){! u# [; S# n! U0 d; Z5 j
unsigned char i,j;
& l" u0 z( g- ?! V for(i=0;i<t;i++)
: r$ n2 G2 h/ r, g+ _: Y for(j=0;j<125;j++);
6 {/ ^( i9 X2 O}9 w4 T! D! P$ ?" a# u ^$ h
void delayms(unsigned int xms)
7 |& S% z6 x$ s, L0 R. [) Q! e4 k{0 S( S$ c1 @* N4 |5 B$ i
unsigned int x;8 s2 J0 x1 c4 J& u! V1 k4 e
unsigned char y;5 V2 _0 r% L3 n& L
for(x = xms; x > 0; x--)
& `8 K% V& Q# c. W* } for(y = 124; y>0; y--);//11.0592MHz: 114 //12MHz: 124 j, Y, Z) O- {
}
; G7 B! Y) j7 W2 t% h a2 ~4 fvoid delayus( int xus) - T O! j: i" L9 _0 R' e7 R
{
" k6 j1 B/ O3 g0 |: R6 O6 D while(--xus>0);7 L- e# }# k# w4 o0 V
}% ]4 x3 N- A7 A9 Q/ n- e
/*************************显示函数**************************************/
' v2 X' D/ E$ n2 R/ ^2 K! C& p8 U0 }, p9 T1 y# \8 f6 I
void main(){9 A" y5 o" {0 i
. W, I6 u6 ?& e3 O, n9 W TMOD=0x01;//T0 记时 T1计数/ N6 O5 R, y. Z4 ^( r1 @+ S( o5 J# [
TH0 = (65536 - 10000) / 256;
) w; x$ ^+ O- A8 E* P TL0 = (65536 - 10000) % 256;0 ~% K3 V7 f) a6 H' X7 w) g. f& f. c
! j1 B8 P5 j4 X' p- x3 K
TR0=1; //开T0 // IT1=1;
* u1 X" `7 f) h; n0 u. c ET0=1;//开中断
2 j# e5 H2 [: I& Z EA=1;//打开总中断 0x86 0xdb 0xcf/ i) `& K& D2 U
LED1=1;
' d' s* u! T5 ]# m2 i- {# L LED2=1;
' X9 X4 ^9 h4 J+ c/ D9 Z+ s LED3=1;
+ P. C! D( Z: e( `2 }0 {! Z5 a num=0; //1 1000 0110 2 1101 1011 3 1100 1111
; s2 w' z1 _6 f# W4 Q/ r0 n- Y& I while(1)
6 S6 [% q/ ~2 n8 P6 n {, `7 v9 i5 o* U, ]. y8 Y2 I4 E
if(KEY_1==0){ LED1=1; LED2=1; LED3=1;while(P1!=0X86);num=0; LED1=0; while(num<500){if(KEY_2==0||KEY_3==0)break;} if(P1==0X86)LED1=1; }
7 R1 T8 {, ~% q9 N8 g9 m; y+ C else if(KEY_2==0) {LED1=1; LED2=1; LED3=1;while(P1!=0Xdb);num=0; LED2=0; while(num<500){if(KEY_1==0||KEY_3==0)break;} if(P1==0Xdb)LED2=1;}2 H5 J- H8 U- s) E1 ~$ Z% i
else if(KEY_3==0) {LED1=1; LED2=1; LED3=1;while(P1!=0Xcf);num=0; LED3=0; while(num<500){if(KEY_1==0||KEY_2==0)break;} if(P1==0Xcf)LED3=1;}' v3 k! n' o: q! [4 p1 Z. U3 X
}2 O3 h0 l& C) Y0 g% {' o
}/ m3 D( {; s* |2 q' B
// - b( I" N" s8 Z. _% Q* i9 O$ o
) A& T6 X- q! f7 t# M! a7 @( @6 _% o3 a; w$ n
单片机三层电梯控制系统的所有资料下载:- U" c5 m' y, |3 W
6 @ s. z& A" E
6 a- m y3 {% P) t1 {% [ |
|