EDA365电子工程师网

标题: “HELLO-EDA365” [打印本页]

作者: 黑驴蹄子    时间: 2012-11-22 12:57
标题: “HELLO-EDA365”
{:soso_e113:}  偶出炉的的MSP430单片机LCD1602液晶显示流水字幕“HELLO-EDA365”,要带头多发帖6 F& w  C. n6 b% \

2 k3 V. g) n7 n
5 U. ^( G& m! z1 ~) T" p" j0 X#include<msp430g2553.h>                                 //msp430头文件3 z% L) L$ E# V  y% M$ G- \4 s* I
typedef unsigned char uint8;                               //宏定义+ @! W+ a5 {; i) v1 x
typedef unsigned int uint16;# P1 @' f# c8 o2 t
void WTCOM(uint8 COMM);                                //写指令函数申明
, o' X% M5 ]1 k  P2 Dvoid WTDATA();                                                 //写第一行数据函数申明' M2 f# ]. Q7 x
void WTDATA2();                                               //写第二行数据函数申明
( M$ S7 X5 @* W8 hvoid delayms(uint8 z);                                        //延时9 i4 \. V0 \. b7 @' w8 F
void delayus();                                                    //延时
  X- B6 B0 m) Wuint8 table[]="HELLO-EDA365";                          //HELLO-EDA365
8 G/ B0 l* W$ S$ p5 quint8 table2[]="WHTY_ah";                               //WHTY_ah
! v: C% D" q9 }/ Nvoid main()
% f7 m) l- g$ C8 N; Q{2 G- V2 q* X7 h2 Z; v, Z
        uint8 i;
9 K0 w8 G& J- }/ a   /***************P1是数据口  P2是控制口****************************/
! A- G! h' l8 F' q8 @          /*********主时钟MCLK用系统默认DCO****************/8 s: t, T+ M: [  I- F" O/ e5 X
        
  g& S  d! ^, `9 n1 R, {8 e        WDTCTL=WDTPW+WDTHOLD;                            //关门打狗,^_^(关看门狗)  ^( \! G+ i+ r1 C! O
        P1SEL=0X00;                                      //普通IO
! b7 H3 k3 G: N& B! q8 w        P1DIR |= 0XFF;                                   //P1为输出
+ f# x! X( p2 t; y! `$ b" v7 ?# M3 [        P2DIR |= BIT0+BIT1;                              //控制口RS+E   P20=RS   P21=E
- F% y1 y" F& S. m7 c, A  A  D/ }% P        while(1)
8 p* ^! R( @+ P4 K" F  {
- D, k8 U# s. k# o7 ^4 _* h        WTCOM(0X38);
8 n2 q2 O' i& y" `% [7 X& V        delayus();                                       //1602功能设置1 ]. p1 d) C6 O
        WTCOM(0X01);4 ]; L& `# l3 N9 o
        delayus();                                       //1602清屏
- {# @3 Z( i! q) \        WTCOM(0X06);. q2 J/ m0 u* n7 X: X
        delayus();                                         //1602光标及AC设置. z( {0 `. Z- S" s6 D/ d
        WTCOM(0X0f);* ?/ X4 C: l& M$ D( z& g5 V
        delayus();                                                //1602光标开关/ K/ X9 j6 k/ f
        WTDATA();                                         //1602第一行显示
8 R7 E. _: g* u" H# m        delayus();3 v1 }5 I4 H, J) d
        WTDATA2();                                         //1602第二行显示- {3 J9 h& U  q' o5 o7 T6 A  ~" d
        delayus();. @) u/ V( V7 s5 X6 q; s, E
        3 }: E3 I6 l& r% n( G5 Z! I1 F0 {
        
$ ~& J# |' V! z2 n//*************************************************************       2 j4 c% p5 M/ N# s6 Z+ b0 S
        for(i=13;i>0;i--)                         //移动字幕  X; N6 R9 M' a' H0 r: B
        {
$ K. q6 a& h5 `; s# }  S: T! ?" p                WTCOM(0X18);
9 ~- q* z& h7 L                delayms(100);; U2 ]7 C1 S- A, C! p! ~/ l9 {8 j
                delayms(100);  ~& W8 k5 ?- y+ x9 J
        } " ^8 S9 y6 {8 n$ T
        3 T7 a  a" x1 j* s+ F. _: [
  }6 B3 |+ ^, c% w  a9 Z4 ?
                 
3 l* i8 E& N7 d1 q2 o9 Q0 {}
& U. t' M/ ]9 j$ \- g
$ P7 M3 t1 a/ v3 t8 H4 @0 W//延时****************************************************
/ \2 T7 m" D( F( X% S2 r- P. G# {2 K- x. C( ^( Y1 P% h, I+ Y
void delayms(uint8 z)+ i& g) |5 o+ g+ o0 |
{
6 P9 d/ Q* V1 R/ y        uint16 i,j;$ v! U# `/ Q% y& h; s, o
        for(i=z;i>0;i--)
( s+ R8 ~9 t' M: Y# {" z' Z                for(j=500;j>0;j--);) @* N3 U, `5 N( d
}
3 a4 s% i) c, q  `5 C: I
9 }6 D, T! }, s0 j: _//延时************************************************
0 s9 j4 l, N( H3 V) a6 t( x
, F$ G. \+ o/ h( s5 A7 Y: z1 ?3 ~void delayus()
2 U6 ~4 H, B, _1 V9 E) Z{
. k2 K7 C  X0 N, v; Y        uint8 i=50;
  l) i8 D( n  t/ W        while(i--);
% `. ?1 {, C, v  W}  
. }; e& d4 s9 X# m4 G) b0 r- ]9 m2 X$ R. r
2 m7 p$ _, `! n8 v# G: O9 t1 {& U
//写指令***************************************************/ g5 U5 n2 G6 X( z
! z$ K& i' y: R, y6 M
void WTCOM(uint8 COMM)                             8 V* Q/ g6 a8 p* [! s
{      
* M: ]( _( s! O/ }9 R; q        P1OUT &= 0;
$ O- ^' M. @* O8 l8 ?1 I1 L$ `            P2OUT &= 0XFE;
( J" M, C" b' z) R9 g2 @# w- o        P2OUT |= BIT1;" l! h1 B/ e/ H/ f5 V0 S
        P1OUT |= COMM;
1 K9 N; j' s( e  r/ p+ M        delayms(1);
  t% f( Z5 F  J0 z# x/ J        P2OUT &= ~BIT1 ;" W+ U* y( \1 O# L
}
' w6 ~: K8 v2 l& E( m; W" N# T* m
! O0 }; O7 P& e3 a; n//写第一行数据**********************************************6 T, a! ^* }/ }" f" Z
6 V, G4 W& {( h; F' s# e
void WTDATA()                                    
3 L8 r* N6 \( C, O' ~1 L' N* {2 T% j{" y7 v1 C7 ]# W( d8 }4 L0 k2 v
            uint8 DATA=0;
8 u* v: _* w1 Q5 O& r3 y: I5 @        WTCOM(0X80);
9 P+ Z: Z) t$ ~1 s9 a        P2OUT |= BIT0;; V- T, I& i1 L3 w. d7 k
        for(DATA=0;DATA<12;DATA++)! \+ U5 m$ i3 h; I2 C. J# C
        {      
* n" l1 |$ z. x) z4 I3 w" [2 C                P1OUT &= 0;( K, x( {9 M  I3 m
                delayus();
4 F- P3 i5 Z  T; w( p                P2OUT |= BIT1;8 `+ O3 o- V& K! Y
                P1OUT |= table[DATA];. G8 ]9 M7 I* \. R  k. p1 T
                delayms(100);
3 y* u; W: g- G& \8 z                P2OUT &= ~BIT1 ;
" Z$ T3 q$ g6 n" }& A        }                        6 K' y2 A' g: ?1 _. F3 C
}
- z# v5 o7 R% E$ j! f, r; G3 |5 a. U$ X4 F
//写第二行数据************************************************; a7 h% n( p  g7 k4 @% H

$ Y- T" o6 F- I! p, svoid WTDATA2()                                     + r. ~0 A) i2 G# `: |4 I" H
{( z$ ?! ~, q6 n- E' R6 I
            uint8 DATA=0;, q, l+ p6 s! N/ k8 A: A& C
        WTCOM(0X80+0X40);
' L% I. g, P2 c% E# |& q0 ~; b6 O        P2OUT |= BIT0;& Z9 Z$ @; e4 v% d! \
        for(DATA=0;DATA<7;DATA++)+ u% E; l4 L7 ?1 K8 B" U
        {       7 M, c) ^) Y+ W3 a+ _
                P1OUT &= 0;
% X: x8 B2 o" x7 ^. @2 L                delayus();6 v  X4 ]6 Q# m$ E
                P2OUT |= BIT1;) w: y  `& _# O& I/ @( K0 r
                P1OUT |= table2[DATA];" k+ N( N+ O! ~/ X
                delayms(100);
* }7 u( `) D- i& D: M% Z$ \; L                P2OUT &= ~BIT1 ;0 p8 q; n; |3 a$ P9 R1 p
        }                        / ^8 F# f4 w6 m# |7 r
}
* _4 ]. ~3 S8 @3 H$ u4 z% A% g0 ^$ d7 @1 _/ C7 m. E
& L6 N: ?4 N; C1 n
啥玩意都得搞个图{:soso_e112:}
% m( l, K: U% K$ m; Z
( g, Z: k; k" b$ [+ t
% b" J! l8 K% o   c; j0 C+ Y7 Y& s1 A" j

) e6 `9 q0 ]& c9 S, _$ [. w- o* _2 V3 s% F: W8 `; @/ K

作者: jhdxpp    时间: 2012-11-22 13:05
赞一个!
作者: 粉色信笺    时间: 2012-11-22 15:51
走多栖路线,{:soso_e151:}
作者: 黑驴蹄子    时间: 2012-11-22 15:55
粉色信笺 发表于 2012-11-22 15:51
5 d  ]" p# ^% U2 Z9 i走多栖路线,
' n4 w% Z+ R- u/ C9 `- O
娱乐{:soso_e151:}
作者: 粉色信笺    时间: 2012-11-22 16:21
黑驴蹄子 发表于 2012-11-22 15:55 ) {; G( \; Q9 H$ Y" s; ]# V
娱乐

7 X7 D1 I" k2 w进入主题,请教个问题,不胜感激!{:soso_e183:}
作者: 黑驴蹄子    时间: 2012-11-22 16:30
粉色信笺 发表于 2012-11-22 16:21
; S) j- g% w2 W进入主题,请教个问题,不胜感激!

9 J6 c" Y  b/ Q- P+ d说,等我帮到你了再感激也不迟
作者: Larry_11844    时间: 2012-11-22 16:50
黑驴蹄子 发表于 2012-11-22 16:30 * {; d9 H9 W1 r/ a1 Z# S# X
说,等我帮到你了再感激也不迟
& Y' D8 D8 s* w9 C
看来以后有问题就直接来找你了,不用跑冤枉路了{:soso_e120:}
作者: 粉色信笺    时间: 2012-11-22 16:56
黑驴蹄子 发表于 2012-11-22 16:30
; D. o2 I$ w) s) F; ^说,等我帮到你了再感激也不迟
# m9 E/ |9 L( s6 p8 \
爽快人,好!* [1 y! i! x* Y. S' J
是关于PCB安全间距问题,在变压器二次端,输出有3个绕组,经整流供给各自独立的模块,我的问题是,在PCB上不同电源间,间距如何处理!(整流后都是24V){:soso_e183:}
作者: 黑驴蹄子    时间: 2012-11-23 08:34
粉色信笺 发表于 2012-11-22 16:56 : I8 P  {7 Z8 m4 }3 r( R' k7 S' |8 i
爽快人,好!& `4 A4 K. [5 n" I& f
是关于PCB安全间距问题,在变压器二次端,输出有3个绕组,经整流供给各自独立的模块,我的 ...
5 {* M  Y) {6 O) u+ W2 \$ r7 }' K
这个PCB安全间距的问题都有PCB安全间距规范
4 m0 i( `' g5 I/ M- l+ D但是看各类资料有的说法不一,原因是具体的走电要根据具体的应用场合而来
! r% f) M/ u( ^$ K" i1 R在电力上,<36V就算是弱电电压了,你说的整流桥过来之后的24V可以归为弱电范畴2 K" ^* y; N" C7 _6 e) |
在插件脚之间的24V的爬电间距建议不少于15mil5 ^3 Q: u  W9 |& E+ D3 Y8 f
而你说的各个电源之间的安全间距其实也可以参照标准的安全间距来,只是走线时特别注意一定要避免大电流环路的出现. ], s- u# ?& M
: s( [. v) K- l
这类的PCB设计可以多看看开关电源的PCB设计的资料
- D5 T4 f: u$ u. z8 C- F2 E% t& Y
PCB电间距标准V2.0.rar (16.88 KB, 下载次数: 34) ' X( G7 J% G; Q' P" A! t
3 Z5 ^3 X+ O5 l5 s
) u. v' e$ j( L% ~/ ^$ `2 s
开关电源的PCB布局走线.rar (23.35 KB, 下载次数: 31)
  S+ w8 P, A/ ]4 i& @2 A" X- L0 c. m- Y! S/ {6 l

# Y9 y1 `& @) K! M# h& y# X2 N+ L9 y% x# y* d6 w

作者: 粉色信笺    时间: 2012-11-23 13:12
黑驴蹄子 发表于 2012-11-23 08:34
7 M  C) g/ g% H! X这个PCB安全间距的问题都有PCB安全间距规范
3 i+ }) g& _5 T* T, y) D但是看各类资料有的说法不一,原因是具体的走电要根据具体的 ...

9 [. X' k7 m- h/ I嗯!学习到了!非常感谢,我会持续关注您的帖子!{:soso_e181:}
作者: cloudy1205    时间: 2012-11-26 08:37
是該多學多看,謝謝!




欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2