EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机多路开关控制 00-59 99秒计数器的proteus仿真及程序
0 z7 h: p6 k5 B* o; f
- S: B/ o2 `$ V8 J
( t) a8 a7 H; b3 @- N; H( ~多路开关控制proteus仿真原理图:! g) C0 P. M. B, ^7 O
+ \: B: v- r U
. ]! X* i1 I0 N' ~7 O! ` e单片机源程序: |
#include<reg52.h>
, r. u! ^, C- bsbit P10 = P1^0 ;
( \* x( e2 L4 Z, d+ s% E2 y% q/ Rsbit P11 = P1^1 ; ; t, ^( V5 }) q6 } I/ c! `4 X
sbit P12 = P1^2 ; & D7 A/ a j/ l; ~# f* P, ?/ }- H
sbit K1=P3^2;
4 Q+ }- U4 f% S& c. K: Hsbit K2=P3^3;
( Z* n, V1 W6 K' Wsbit K3=P3^5;
) H& e" u7 @9 O
. a- p. Q( E5 l' F9 w$ T8 _
6 W( v- l8 N8 h- s
0 G# L$ I1 v1 n7 H* B //标记的用法,一个按键控制一个LED灯的亮灭
2 l, h. \6 V6 W5 Q% `3 j vvoid main() 8 x9 @6 s. E5 V
{ 9 f! r' z1 H* {0 N
unsigned int n,m,k;
+ o+ s/ Y: ]" N
( L* ~. `' O1 ^ r; g. ^$ ] a0 n while(1)
- |% E0 w2 i8 M- M { " [+ ^( Y" v- u
if(!K1) //如果读到K1为0 3 A1 u2 ]- N. C; ]) n* i
{ " s4 u4 t% Y' I% S( d
for(n=0;n<1000;n++); //等待按键稳定 . o3 ~- x# j N5 |: D' j# y
while(!K1); //等待按键松开 . v0 E/ d. ~1 j) [2 ?; [
P10=~P10; # ~ ~" [% p7 }% M
} / V C# k) q. ?, W! }! L! U
% P0 J8 b! n+ L
: H" I9 N! E/ l: _ if(!K2) //如果读到K2为0
$ f" T6 L; W( l* w' i { 4 i+ {1 }- F; z( I# i( J
for(m=0;m<1000;m++); //等待按键稳定 2 H3 `& Z* k: ]3 s0 h
while(!K2); //等待按键松开
2 G/ X0 o8 |& j5 H0 m" E P11=~P11; * F) I( x* q+ }, S4 \4 [. o/ B
} . n0 J* [' R" B- [9 V5 h
1 i1 P) E6 e7 U- B+ F
if(!K3) //如果读到K3为0
1 f' q# M" Z S8 w- @ { 6 U# [; Q' f$ F- X. f0 O
for(k=0;k<1000;k++); //等待按键稳定
" \3 h" p* J' H+ M* q# j while(!K3); //等待按键松开
3 W1 O8 w0 `- ~! A& }! w P12=~P12;
+ O* Y# `( }2 l+ ?( e% X e! c! O3 v }
5 H) p5 [9 l1 J# z- h' T K3 S) i$ n, X) t8 l
" X- h1 Z! n- A E7 O; {0 R% }
+ @% q- r. u+ @5 k" B6 U0 n6 E, A3 {( ]
} : F5 s1 Z6 C3 e, \- R' j
8 v" F+ _' @. k
} % @1 U" k/ i3 p X& X A
5 |0 E z# P6 q& ^7 K
- F* Z, G+ H5 `+ _3 t1 v3 G! G
6 `, B, y/ b8 @ j6 j# Q |