EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机多路开关控制 00-59 99秒计数器的proteus仿真及程序
. R+ _! h* |/ x. ~5 X6 c+ L! {8 N& j, L4 E" H( |9 V/ @% a
0 R% A- f( _( [$ W0 J( ^5 x多路开关控制proteus仿真原理图:
) U% H9 Q3 Q4 Y1 d/ ?3 r # ^' ?6 D1 x/ m: C5 ^# B0 C- o+ L3 L6 f9 Q
1 ^% O/ b/ o' L8 O- q+ s0 l. Z
单片机源程序: |
#include<reg52.h> 9 c6 Z( d$ P! x3 l/ n2 ]2 O/ W$ B
sbit P10 = P1^0 ; B# O+ a, e1 _( B6 q0 I8 \
sbit P11 = P1^1 ;
' `2 m/ Z& }) v9 \3 C- j9 ksbit P12 = P1^2 ; # j; ^0 u+ l+ P* k: v6 o
sbit K1=P3^2; , k E ~" h( p4 U
sbit K2=P3^3; + I w0 u0 ]2 k; [
sbit K3=P3^5; $ ~; x" _! I) T
4 T7 o' J: W7 Z/ Q( A5 I: F5 Z& c% \- j$ R3 n4 }6 \
2 Y& q+ U+ f; d9 L
//标记的用法,一个按键控制一个LED灯的亮灭 5 N. y7 `4 O& V: Y% b3 n* k# R
void main() , C5 w& R, |. |( W- L* V3 ]% C4 f
{ / I; w" F6 o1 J j
unsigned int n,m,k; 4 X! F7 |3 K6 R% A# ^2 S
: {4 m0 ]6 M2 D while(1) % m$ R9 R& |0 o' S
{ - i( ^2 f# _5 A; R' _* s. E: M
if(!K1) //如果读到K1为0 & a% U- @2 }* ^: L4 ?3 i8 N8 p
{ 6 {+ _$ ?' t+ j: W( E1 N" {0 j: e
for(n=0;n<1000;n++); //等待按键稳定
2 S1 t2 L6 E, }" P$ X while(!K1); //等待按键松开
2 @: {# t( K! _ P10=~P10;
/ [+ O7 X" I* f0 r- T- v } $ u6 A8 ?2 n- T+ N6 J
) y" p/ D' K0 |3 B# T; V2 @
% E+ I) O" K1 L' ~: k! w( p
if(!K2) //如果读到K2为0
; b* O: o7 }" A: a& ]; Z { g; X$ t& `) E
for(m=0;m<1000;m++); //等待按键稳定 ' H0 O J/ q: S& g4 i5 k* _
while(!K2); //等待按键松开
" @, l) w+ K$ k; s; ^ P11=~P11;
3 q: {. m) l( y! d+ s } * @1 H( m% \# ] W
C/ q) d6 }- N2 | T x2 h8 b if(!K3) //如果读到K3为0
4 o6 e7 ?4 C0 v5 _ {
- j' h% p2 J% U6 Q A# z" y for(k=0;k<1000;k++); //等待按键稳定 & U- y* K+ F# Q0 t( w, @
while(!K3); //等待按键松开
3 _3 W6 v# u1 n P12=~P12;
* a7 s& P% x- x2 ~( p* r2 e } ' ^6 H0 |! ]6 o0 U* M# v6 y
- T" K: b8 k5 ^' f0 c- U7 F3 G, M. l. o. T x5 P6 W5 P6 j
# l1 i* y) D L' e" B! _
) E+ o5 M0 P/ _ } $ Y' S1 E. |- _$ V4 L
8 l, q8 I; ^9 ?8 ~8 p6 T} , `8 |4 z8 ~ }( T* F
. \( | Y+ X; l4 j: `) e8 | 5 H1 `" m; ^6 B) }+ \! x/ j* f
- m( P# I9 q' s( c. V1 U& G V
|