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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

; C, e  Q' ?4 t9 U1 N& [; O

0 Y, {( s- {* X, j2 F( p
* J3 ]$ _7 [. R- T" ~
实验六 2.12  2.14+ x  g  p7 h0 X& Q" {
2.12
1 H! P7 v1 A  k$ I/ N蜂鸣器改(按一下一直响 再按一下停止)
) j, k& c, @, U+ H0 r  B#include "config.h"
6 C. t0 U# {$ W) R9 i" M#define                BEEPCON                1<<7
9 ?: z. x! ]$ e  l' l# A9 D8 M#define                KEY                        1<<208 N8 q+ t1 [! y2 }: D

. P4 a, Q* K0 ?3 Z

# ~' ?3 @8 N, K7 ^: oint main (void)/ B) K4 n* ?' ~) u6 e
{uint32        i;
6 T- G2 H' K# _9 `% Y: W4 K    int k=1;
' `( `2 g' j2 }9 V        PINSEL0=0x00000000;$ \4 O" {1 n( k7 [
        IO0DIR=BEEPCON;- J: d5 k3 {) v' N
        while(1)
7 O, j/ N; C5 n        {
8 V7 t8 w" D  K3 D7 `6 m+ j0 R7 ^) k        4 n: i7 {7 L1 i. H) F$ L
        if((IO0PIN&KEY)==0)
- c6 l" [% t) g' b         {( k3 D" O8 }/ B6 C/ G, d6 @' W; R5 o
             k=!k;
) `2 o5 ]1 E: Q; j+ X8 q' T  `; f( [' \4 \               H6 U$ E; b) M+ B6 W, F: y
           if(k==1)3 @3 j! @8 g% A. [
         {1 h; a1 x! [' Y
        $ o, M4 ?) \" b# L$ C. D; P
        IO0CLR=BEEPCON;) u/ Y; G" d: g6 R
         }7 S4 X3 v. `0 N0 B; G# u
           if(k==0)* y% L3 S4 S9 H
         {$ h; S; K0 G( S/ n  _% B2 T- J
        , t6 [4 x/ F8 v
        IO0SET=BEEPCON;        2 @( [. }( l( ^5 w+ Y; J! e5 F
     }1 P; Z+ m# e) l
    }
% w: D- c' A9 F3 K    for(i=0;i<1000;i++);
! n* R; J0 G4 S+ [0 i   }  Q4 q8 z7 A1 t) J: u2 _
  return(0);
: i. O/ a, G% t3 a1 c) m  
  ~2 W+ n  N$ a: h# M  ]4 ^} / j5 J3 R* a/ S9 ^! ?

. O6 X8 T4 K, [- t% I9 n

. Z/ _  P& v* Q9 z( U9 t3 J
' I) {9 Z( k- R

: t- z9 Z0 r- B; x: r8 H2 z. L# q# X, f流水灯改(按一下向后进一位)
! ~& e1 g1 s: O& Z% A1 C% w#include "config.h"- b3 \: r, p7 a9 }% W/ s
#include "config.h"
% O0 Z: s: r) L. {7 Z#define            KEY            1<<20+ b' L& Q* j0 g: B
#define                LED1        1<<16
. B) S8 X# q% K) I) H. d* z#define                LED2        1<<17     , j: H- X: \% g3 S5 E7 r
#define                LED3        1<<18      " |% G8 a* t6 ^/ N  h
#define                LED4        1<<19      
/ ~: X+ E9 V; o; j; v' A3 G#define                LED5        1<<207 R' L: r, A3 `' ]& s
#define                LED6        1<<21      9 x+ }) C, t6 _+ e
#define                LED7        1<<22 7 H. E% L& p$ n: T& K# h4 G- A6 P
#define                LED8        1<<23      9 {0 e+ D3 F- n3 c# ?9 N1 F7 r4 q- x
#define                LEDCON   0x00ff0000   
6 K' w! F" }* n# {4 H1 z  |( }7 p- [# n. \0 J; O% R5 i+ P2 @3 m. i

6 @0 e% Q( |7 O+ yconst uint32        DISP_TAB[8]={0xff01ffff,0xff02ffff,0xff04ffff,0xff08ffff,! ~3 o1 l  ~& h5 Q  L. X
                        0xff10ffff,0xff20ffff,0xff40ffff,0xff80ffff};   0 O4 G9 x+ `+ B& ?3 f% s- R: }% y
    void        DelayNS(uint32        dly)   
* l9 D: j2 y6 R/ M9 V0 ?: {, L0 k {  
0 Z1 I8 v& Q( F; ~( ^. G    uint32        i;
2 ^3 D- B: p" u4 \    for(;dly>0;dly--)
) W  b4 u. W5 @1 T0 Y( ~& {; F    {
4 u5 s6 A% B3 R' K3 U, w     for(i=0;i<5000;i++);3 L1 j8 m0 S! N! m
    }6 p3 }* E! m) \5 p& ]. T; D
  }; J+ ^& l; T% c
int main (void)( {( \0 x. b+ C8 V
{
! z6 y' i6 F2 \% R- t* U; X+ D% T        uint8  i;
3 Y9 G* V* _# `: a2 ^8 B  S          IO2DIR=LEDCON;
* o) e$ }2 c5 s+ D          while(1)4 o+ f- F  n; R" s6 [. q9 L
          {   }2 T; t; V" a$ J7 e
           for(i=0;i<8;): n0 X) c- H. q: W$ n( D
          {  ( A+ d0 D2 W! u5 t5 J/ J
                  if((IO0PIN&KEY)==0)5 Q3 G5 n+ u* l) P0 U
{DelayNS(1);" z+ Y; t, f# P- `  x4 ?4 y( ?
}
4 H; N4 W' I+ l' ~0 }        if((IO0PIN&KEY)==0)
7 r1 P% {2 V0 t$ w9 s% j4 [- a                  {
$ m4 r% }* w7 {- |8 E  ^                    DelayNS(10);5 [) L/ e8 ~- c( d$ t* D
                    IO2CLR=DISP_TAB[i++];
& v# K1 h- `9 s: r5 G, W* e  h2 Y3 u           DelayNS(10);
8 i' Q) E. ~1 Q. x/ Q3 k- W           IO2SET=0xffffffff;
, V' @" t" u- ^4 Q+ p7 \; }( iwhile((IO0PIN&KEY)==0)6 U$ A$ N& x& ]: f" H6 V
          }- ^" a: I! n+ a# O# F
         
! {" g( ~7 b, k# p$ E$ j* V. T/ ?      }
0 K5 M" B  E9 S1 A" T' u/ K        }
$ s; X" D1 Z9 V  @, n1 s    return 0;
% q0 S; V: e7 A- N/ h}
, s$ X" B+ h3 W+ m5 H5 a
: R, U' e' W3 Z) r3 z

. M1 x3 C% ~4 N# C- p+ K2.14& r3 ^2 f& i7 H% l& r
#include "config.h"
3 ?$ q) {3 W, W/ f#define BEEPCON 1<<7 // P0.7
3 X) ]( b* m  ]7 t9 a( {void __irq IRQ_Eint3(void) 7 m4 x. ~9 F: S. l; C7 l  L
{ uint32 i;
, \" Z; D7 j. J  x  e i = IO0SET;
+ c$ w0 |  r' {7 a4 @( \ if( (i&BEEPCON)==0 ) / @( G" {# b& k0 U  n
{ 2 \$ Q7 |& @; Z) I6 |
  IO0SET = BEEPCON;
4 B9 e/ g# ^5 O4 X  c7 z' M; ~# N  D }
$ U. U/ E! g2 y( v7 \' K( \ else : I. Y* r6 A- x. C) O
{
9 f3 w" p5 ]- c  v, J1 k" c5 ^  IO0CLR = BEEPCON;
/ W: w2 L8 @3 Q. r+ k# Y+ g } ( q" |+ A* U: o( F) X
while( (EXTINT&1<<3)!=0 )
0 N& R6 \- j" o: y: L* S. ]) K# b {
5 q& p2 z# E; o0 `8 ^ EXTINT = 1<<3; * `. Q: p) _) p# u( m% k! [
} . L7 E* g8 x- O6 F: n
VICVectAddr = 0; . Y. v2 v4 c( D4 e
}   A% L3 q% D: }6 r) P# |4 [
int main(void)
$ ], ]; V4 [# P; z, I{ % c; G8 Q* P. g$ k
IRQEnable();
2 b- ~4 K% z) `  Q" @ PINSEL1 = 3<<8;
. a: ]. g$ J% _5 I. s IO0DIR = BEEPCON;  
9 X  N/ b  a- p$ T7 M VICIntSelect = 0x00000000;* @& u$ R6 a+ o' u
VICDefVectAddr = (int)IRQ_Eint3;1 A6 b# D( K4 p; O- G! B$ p, v
EXTMODE = 0x00;
( n3 u. }, W$ j# B0 r EXTINT = 1<<3;
: s* u" n( i  I: y6 c8 t VICIntEnable = 1<<17; . R) I5 i5 Q* H3 Q* A) [  \4 u
while(1);   
) K7 }" c8 r% w( r2 Greturn(0); 4 Y1 g# H. G( A/ I2 \2 b# c' r
}  
( B5 B" R/ c, x0 q! ?6 w
; `( @  h' t1 h' W
: u) g0 @+ ^# @
完整代码下载:

+ z5 s7 C$ _1 [: A9 s# ~
游客,如果您要查看本帖隐藏内容请回复

% U# {1 V+ Y+ O' ?( y
3 O8 L8 |7 G4 v% z7 b0 C

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 06:53 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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