EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机多路开关控制 00-59 99秒计数器的proteus仿真及程序
/ b( I7 g) k' l$ f; F, t& D
o) H# C; f2 Q0 z h, N . t: F: [2 i, N7 A( l# R" O
多路开关控制proteus仿真原理图:
* T7 }" L% X* H/ X2 k6 t
9 e4 a) a! m9 m: N4 x7 o2 g. g# \* y) P3 u/ ^0 B- S
单片机源程序: |
#include<reg52.h>
: |+ N% H) L" s# @sbit P10 = P1^0 ; % k+ ~' S8 R- {3 X1 r0 C
sbit P11 = P1^1 ;
0 D6 c8 ^" p' @- l5 ?2 T* V% B) tsbit P12 = P1^2 ;
8 G. f) L. T! Q1 U' z# r) osbit K1=P3^2;
5 p# x$ f" s0 M q* p: B( c; ksbit K2=P3^3;
" `( ^1 e1 s6 d4 @* }sbit K3=P3^5; " E5 _8 S6 R0 l
9 {* v& d# m0 a, \+ ]% n& X
1 @8 S* Q- m6 F0 J+ ~
& i4 Z% ?3 ?1 m+ f( s9 M) n
//标记的用法,一个按键控制一个LED灯的亮灭 9 e9 w# m% z* U( E; l0 A) E3 A
void main()
9 x% }6 [7 W( i4 F$ [+ y' U{
5 Z( X6 u/ S8 t0 P unsigned int n,m,k; : m+ `( h; E1 R" J
& r% ~0 L" Q5 P# t; \* H
while(1) ' |" r' P( f; x* t3 p
{
7 z7 G6 u `$ v( V k$ X' m A& v9 \ if(!K1) //如果读到K1为0
+ o+ |% M* Q3 J9 P {
( @8 }9 s$ ^3 `3 j( y1 l" H, C3 H for(n=0;n<1000;n++); //等待按键稳定 $ y7 ?# S* D1 g. J$ D' I
while(!K1); //等待按键松开 ( ^; Y. s6 ~! A; K; U3 `! B
P10=~P10; 7 s$ Z0 x* f, p# Z) @) V9 _
}
% g1 Y: Q2 G$ n& x: H
3 G7 h/ n: ^/ C( N
" C6 Z) ~9 w9 H7 j2 H; s! \ if(!K2) //如果读到K2为0
5 c; U+ e& E2 y" e { 8 b/ e, E/ {5 M d5 y
for(m=0;m<1000;m++); //等待按键稳定 0 Z6 Q# u' c8 D4 X" A, p
while(!K2); //等待按键松开
2 v9 q' q" M, a4 I4 r8 T P11=~P11;
+ A) i: G& U3 q2 b# J3 {7 b2 g } - i: S( d1 x# ~6 R$ w
7 U1 ~: ?! l4 y if(!K3) //如果读到K3为0 ( E0 a' \, ~! E K
{ ; d& ^4 h! u3 ~6 X$ U4 h" _
for(k=0;k<1000;k++); //等待按键稳定 ( u0 @# D9 I/ ~* L. S$ V
while(!K3); //等待按键松开 . u3 \0 s0 a7 ^* ?3 X
P12=~P12;
' _; {+ d, o' n, D } 6 O4 C% h: r! a" `, g
$ E) L" k) s1 w9 W
' w$ ]) R, i% R3 j% D
1 g/ h3 v; q& S# E$ K9 ]
1 D/ b' Z8 B1 `8 D* ~ }
' C3 o9 L5 p0 ?- H; O4 C7 ~' J- z! `# P& c. o
}
! i; ?8 }0 s# z: l8 {3 O# X8 d8 Z$ A' C- a! Q
9 o, L, X% k7 K1 o! x" H
. k4 T3 m* z* i5 `3 V/ _0 p+ v
|