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

如何制作手动流水灯以及控制蜂鸣器

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-27 09:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
如何制作手动流水灯以及控制蜂鸣器
0 I# N& m& ]- o

6 {: `9 E8 z8 A2 v
, V( N- A( q) H: p! i! X
实验六 2.12  2.14
( \: ~1 O8 I0 s4 P3 X7 T7 R! a2.12
6 A- d9 `* T1 N( q8 K8 s蜂鸣器改(按一下一直响 再按一下停止)
  _& V( \4 A; T) g% c8 a; n#include "config.h"
- I+ o3 D" H3 n* }, \3 x% q5 q#define                BEEPCON                1<<7  ^; ^4 B& c5 _$ R5 y
#define                KEY                        1<<20
, _! k: |" C) Y1 A$ r; H  D, D3 _# o4 `2 t; g2 O  z4 U) X2 m
/ g0 R$ ?' @/ i5 B$ I  z$ `; W4 c2 W
int main (void)
- Q# I. a4 Q0 w{uint32        i;
6 ?5 y  y8 i" J0 p# |' L5 z+ ~2 e    int k=1;
& {; @( E  ~/ }- g  ~& E5 K9 p7 C6 V        PINSEL0=0x00000000;  Z  x# J9 H0 c
        IO0DIR=BEEPCON;
( e! t- M# L5 Z3 k2 Z7 w        while(1)
: Z! \4 i! a1 w% h. r7 B2 k        {
4 T* r3 l6 m) |        + ]9 h* O1 e- S$ s- p
        if((IO0PIN&KEY)==0)6 h" ~% `  {" Y: n* _1 T
         {& q: u2 k8 T, f6 i) `
             k=!k;! l! T. i4 k! T+ |8 A
             # G0 `/ X$ N, M3 v3 H$ |
           if(k==1)
* n* I9 @- D7 j0 |; s' j; e         {0 E5 J, E0 O  d+ B
          r$ ~2 y* `3 B, ?  @! M7 K
        IO0CLR=BEEPCON;
' ^; W& |3 m5 U6 |) }) u" `  {         }0 n) ^, _/ \- i3 h: b
           if(k==0)
+ B6 a) h2 [2 J4 l/ `8 e         {
" l, R3 o. V: B4 a- e. X6 {        ( c% |! Y+ _$ d  e5 z
        IO0SET=BEEPCON;        . K3 m2 M& p& v) e
     }
! A2 q: X, L0 Z& o/ p    }
; l4 ?4 ^2 S3 m" ?/ O    for(i=0;i<1000;i++);$ g4 W) t* c3 M) R# a: W
   }
9 `% Q5 b5 a$ Y% P8 {  return(0);
. v8 `* c0 z1 F6 E+ C  
7 F6 l* z9 B; Y8 ?} 2 j7 n/ n4 f6 n# j
4 R' Z# n6 v" ?% g. m

4 N' b; X( S1 r) H$ |4 T# H0 H- i, E1 F3 D; g- R$ k4 q
8 M6 C- H4 C& a. _# ?' A
流水灯改(按一下向后进一位)
7 ~7 y( m& H1 }) a. W0 g0 G6 ^( ]#include "config.h"3 {/ N2 E5 y: d0 u: f
#include "config.h". E  M1 W3 Y$ E$ @. \
#define            KEY            1<<20
% G- C5 f( o# ^0 _#define                LED1        1<<16 / V& {. F* a- a% n5 S
#define                LED2        1<<17     
3 _3 r& I6 u0 o#define                LED3        1<<18      8 C& `$ ~' K! j/ H) t
#define                LED4        1<<19      ! B& V* u2 Y7 U: i* h
#define                LED5        1<<20
& P9 J. @: M0 q  L; N#define                LED6        1<<21      ' ^& ~* I4 R/ i7 @; m( E
#define                LED7        1<<22
# h5 K- E: x' V8 l* d6 S+ b; E#define                LED8        1<<23      . w, C6 ^5 c* J1 \. T
#define                LEDCON   0x00ff0000   ; N! X/ F0 w3 M9 a

9 l( U: \1 Q" ^- |: b3 w+ w

% F' B. _9 d! m7 d/ H8 D; V$ qconst uint32        DISP_TAB[8]={0xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff,
7 e, ?) B, r% m; i2 ^- E: {0 f                        0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff};   
" }6 d" [9 ?4 a% M9 v3 z7 X2 |/ {    void        DelayNS(uint32        dly)    ( q1 w" e: ?2 r
{  
" I& V4 n" l1 [' T    uint32        i;
, p* m% ^9 F. c2 F" q- m# K    for(;dly>0;dly--)9 ?2 v# M! M: Q" I3 B) g
    {; P# M2 O& t; [- u7 k
     for(i=0;i<5000;i++);$ ?* P  P1 b/ S* Z: `* |' C7 D
    }3 i3 H+ |0 i4 b9 h
  }2 P0 h9 ?% x6 C/ u* E9 a/ e
int main (void)) b- z/ a$ y9 i, V) H& D% n! E
{5 ]. l4 O8 l0 d, K% h2 i! `0 |
        uint8  i;. g; I/ N) T- [& P+ L3 H
          IO2DIR=LEDCON;5 `: `" Q0 V& S
          while(1)
+ e+ h6 q: p! K; g; Z          {
* c  J% I) _% h' P           for(i=0;i<8;)  b2 m+ k; M5 u% d9 ?# O' c
          {  
6 |& W. Z' `, e# Q8 V" T                  if((IO0PIN&KEY)==0)( r. ?% y* ^" S
{DelayNS(1);/ {. m( k9 B# J# N" D( g4 Q( ]% [2 n; ?
}& M- U& k: V/ ]$ a
        if((IO0PIN&KEY)==0); q" n5 s( T$ h) W6 n$ c* Y
                  {
4 R" N# }9 ~1 o% _                    DelayNS(10);5 A- C& o2 c% d" _# _# M+ z
                    IO2CLR=DISP_TAB[i++];; \2 I6 r$ |- x3 L; k+ g
           DelayNS(10);' a7 e; _5 }+ T$ t9 \0 M
           IO2SET=0xffffffff;2 n! `! N( U9 P/ ?  N6 Y& t
while((IO0PIN&KEY)==0)3 w; C+ ~/ N. l" k
          }7 `/ @- Y0 C9 Q" l
         
+ G" p4 Z  m6 Q- b1 f- O# G. h" t      }
, f+ e; s" z' l! @  r        }
0 }. e* c6 Z) y* W% O    return 0;) M/ [* O- e; x3 e
}* P6 o3 }( r5 [2 o. C; P
" D/ A6 r1 b5 ]- I$ i: N* \. ^

3 s4 g, H6 N0 ~# K# D2.14" d' K: E* ]. K' f2 R6 ]
#include "config.h" ) |7 s! R$ F' S" z# C8 v
#define BEEPCON 1<<7 // P0.7
4 \# i: G& j# ^void __irq IRQ_Eint3(void) 4 F! Q! \2 }: K# l  C
{ uint32 i; ; d& X$ E/ j5 o% {- M# P
i = IO0SET;
1 g7 I! T8 H4 _5 B% | if( (i&BEEPCON)==0 ) ; D- w; U# G3 x+ w/ O
{
3 n2 r6 ~8 w! q/ g1 r  IO0SET = BEEPCON; % T+ D! b+ p' V0 [6 K, Y' c
}
! H* z- X% T* J3 k" T% l4 P4 i% L- n else
- j0 z$ F' m# H4 p5 G {
* ]8 R. [! D' h6 O+ a5 \  IO0CLR = BEEPCON;
- O3 n$ m  O0 ?8 n6 b# }8 O }
# G+ |, r, M2 |( B' c while( (EXTINT&1<<3)!=0 )
; h/ Q# k% X8 z  n5 I) G* P' L! B6 o { # ?0 |( g" R" n
EXTINT = 1<<3; 2 q) n; z3 n: ]% h
}
0 H. |/ D! c+ X VICVectAddr = 0;
" q: o# _6 A- f' r. |* I}
+ j/ z9 ?* g8 j( f# gint main(void)
; E( |! @2 @! E9 z0 T{
3 c+ W; Z4 M5 q' M% @4 h0 S& E+ [ IRQEnable();
1 o1 o2 D) ~" r PINSEL1 = 3<<8;
+ M7 Q! a7 j% X. x IO0DIR = BEEPCON;  , x2 u+ m9 Z& G# D; r5 z& E
VICIntSelect = 0x00000000;- |. F9 U3 J7 R
VICDefVectAddr = (int)IRQ_Eint3;: N& {5 c' X1 w0 z% h. Y5 {# w0 V
EXTMODE = 0x00; ) i' r8 x/ m5 V
EXTINT = 1<<3;
! m+ P- q+ y8 Z- w% b  _+ l; f VICIntEnable = 1<<17;   s- M% Z( D0 R$ |: n* s  J0 h
while(1);   
2 D: Y# z) ]2 e; Y9 j) treturn(0); # O' W, m1 A. i2 g. K
}  
2 S* `2 g# i" b" @3 K/ o# r5 ?% M& |4 s6 ]" M2 H9 z
% ^" H& G7 o5 @9 K' _
完整代码下载:
; ]1 i+ u, _1 B$ ^$ M* t6 k
游客,如果您要查看本帖隐藏内容请回复

! e# U/ E6 q% n+ {% ]
6 Z0 @% \* S4 f9 m+ u0 |% ]$ g+ ]) C" A# T

该用户从未签到

2#
发表于 2018-11-27 10:11 | 只看该作者
这个好 楼主好人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-6 16:45 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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