|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include "periph_lcd.h" 1 s5 I8 C; z, {: a9 n( N4 G& d
, Z5 i: I* X+ K) Ulcd_code_item_t LCD_CODE_TAB[]= % B0 A; @/ O# u/ e/ X7 l
{ $ q1 h# {7 y4 Y& x q. D
[LCD_CHAR_0] ={.COM0_L=1,.COM0_H=0,.COM1_L=1,.COM1_H=1,.COM2_L=0,.COM2_H=1,.COM3_L=1,.COM3_H=1,},
# X+ N2 i* e& `7 c3 t- Y [LCD_CHAR_1] ={.COM0_L=0,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=0,.COM2_H=1,.COM3_L=0,.COM3_H=0,},
d2 e: f" G! o& N ^* _5 A [LCD_CHAR_2] ={.COM0_L=1,.COM0_H=0,.COM1_L=1,.COM1_H=0,.COM2_L=1,.COM2_H=1,.COM3_L=0,.COM3_H=1,},
. _' i$ i' l$ B" G6 y [LCD_CHAR_3] ={.COM0_L=1,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=1,.COM2_H=1,.COM3_L=0,.COM3_H=1,}, % |' a0 T0 b3 z3 R! `' d
[LCD_CHAR_4] ={.COM0_L=0,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=1,.COM2_H=1,.COM3_L=1,.COM3_H=0,}, " h/ E8 i( l9 a/ e6 k
[LCD_CHAR_5] ={.COM0_L=1,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=1,.COM2_H=0,.COM3_L=1,.COM3_H=1,},
* K: A7 X7 o2 Y6 _ [LCD_CHAR_6] ={.COM0_L=1,.COM0_H=0,.COM1_L=1,.COM1_H=1,.COM2_L=1,.COM2_H=0,.COM3_L=1,.COM3_H=1,},
* x4 O4 W' ^' D" s [LCD_CHAR_7] ={.COM0_L=0,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=0,.COM2_H=1,.COM3_L=0,.COM3_H=1,},
& `7 ~' {1 p0 O' q7 D) W9 K! d [LCD_CHAR_8] ={.COM0_L=1,.COM0_H=0,.COM1_L=1,.COM1_H=1,.COM2_L=1,.COM2_H=1,.COM3_L=1,.COM3_H=1,},
* M" c2 _3 @$ i# p [LCD_CHAR_9] ={.COM0_L=1,.COM0_H=0,.COM1_L=0,.COM1_H=1,.COM2_L=1,.COM2_H=1,.COM3_L=1,.COM3_H=1,},
3 Z: N7 c! b" G# q4 Y$ H; V! ?
O0 D/ f' d$ `9 |0 s [LCD_CHAR_OFF]={.COM0_L=0,.COM0_H=0,.COM1_L=0,.COM1_H=0,.COM2_L=0,.COM2_H=0,.COM3_L=0,.COM3_H=0,},
7 s/ R6 E5 I; d- d& i1 v! I}; ) z& ?( X& g6 {/ e& J
; k9 b+ {9 [: j( wvoid LCD_Open(void) ( w$ m0 P- }3 m% E
{ ' J6 A( N% |( Y) h0 d7 G9 U4 K
CLK_PeripheralClockConfig(CLK_Peripheral_LCD,ENABLE);
+ A7 H- j, r5 b" u k! g CLK_RTCClockConfig(CLK_RTCCLKSource_HSI,CLK_RTCCLKDiv_64);
; J* g! Z1 s) P LCD_Init(LCD_Prescaler_8,LCD_Divider_18,LCD_Duty_1_4,LCD_Bias_1_3,LCD_VoltageSource_External);7 J3 y9 J' c6 n6 {
LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xff);
. @' o. [% X4 u! Q7 D+ S- U LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0x03); $ z* x2 _1 f6 F! u1 n4 { l. V
2 [: f( B0 j' |$ B3 L
LCD_ContrastConfig(LCD_Contrast_3V0); ) x- o" F! E$ X4 ?& |
LCD_DeadTimeConfig(LCD_DeadTime_0);
8 D, B( L5 |. K) C4 z! C LCD_PulseOnDurationConfig(LCD_PulseOnDuration_7); 2 ], ]/ t% H( N2 ?" y8 U8 G M
LCD_Cmd(ENABLE); & Q c7 @2 o4 U5 W# z7 F: B
} ; W3 [5 k% f; p& A. Q! K. a* d! d' l( I
- X/ T; k+ K+ Q, Jvoid LCD_DispCharOnIndex(uint8ch, uint8 index)
9 C+ y2 z/ t2 ?{
z: `4 i* T: B* w8 w if(index>=LCD_INDEX_MAX_COUNT)
; o/ H8 @2 k" a$ C3 H7 { {
% G2 a. ?3 H- P return ; % l: I" g( j. H! H' g! d
}
+ W/ O; Z4 [0 [+ e0 Q1 g/ T9 S 6 A% v$ w$ y; S) E* _
uint8lcd_code=LCD_CODE_TAB[ch].Byte; 4 l; P, H/ b5 e0 f2 V
: P' A# n# R6 @- M8 |
if(lcd_code & BIT_MAST_COM0_L)
3 V. l" T" T2 ~ F# { {
( O0 f. G0 M) a4 _6 n0 U bit_arry_set_bit((void *)LCD->RAM,28*0+index*2); 9 D7 X, f; l$ ?$ K
} / B+ B+ Q: m7 R; ^, c6 \; S* H
else / ~) e2 t A( {; l, u. k2 T$ \
{ 7 x0 k0 m# n$ Y' M
bit_arry_clr_bit((void *)LCD->RAM,28*0+index*2);
4 y/ ^- j" t. ? }
$ ?5 H7 S' T. x6 L0 r6 }# W7 Z) K
3 ^# C( r! A9 b1 _2 { if(lcd_code & BIT_MAST_COM0_H) + V: A% u, c0 W8 u# t: A, k
{ 3 _% X9 U$ i, Y6 i3 A9 l5 S1 [' w4 }
bit_arry_set_bit((void *)LCD->RAM,28*0+index*2+1); ' n1 w9 z7 d+ X5 L
}
" z1 u8 L- H9 L# ` else
! A+ y! w' h' x { % r$ S8 h. a( n6 N, C- v e5 l
bit_arry_clr_bit((void *)LCD->RAM,28*0+index*2+1); 5 f* k6 i5 O- h( R( @
}
3 T j1 S! W3 D& M, ]& j) f5 A7 b- { " I7 N' C2 z3 n8 |* ?1 M: E- _% v
if(lcd_code & BIT_MAST_COM1_L)
q" G4 S6 Z) k! g9 H5 W- n {
/ i* e$ h" t0 f$ J) O. w: u% q( e bit_arry_set_bit((void *)LCD->RAM,28*1+index*2);
2 O% S3 q* S2 r U- s/ A' T( Y }
Z9 Y0 r& e0 F6 y/ j else
7 K* e6 ^9 }/ `# y" D! M, q {
: E: o2 V I/ Z" H* R b* n$ x* \ bit_arry_clr_bit((void *)LCD->RAM,28*1+index*2);
' Z/ {# T& B" i& I: U* I }
w0 C8 J5 g5 L! I R3 H 3 p& K5 A- J; d4 x6 E' {" D
if(lcd_code & BIT_MAST_COM1_H)
8 J* n# S* |6 }* h3 [' V( E1 P { 6 \/ z2 o5 d/ J& u/ y0 U# v. I
bit_arry_set_bit((void *)LCD->RAM,28*1+index*2+1);
0 P o: w( T; }+ g/ m, R }
# |' v o1 x7 ? else 8 N0 `: ]: O. Z2 }
{ 4 u: X; O2 C+ G; M6 q2 B6 J. F! K
bit_arry_clr_bit((void *)LCD->RAM,28*1+index*2+1); 5 [3 _6 v2 D6 [' V9 _, _
}
2 P" T% D6 F' Y' ]# Q8 ]) a& G $ M5 {" P3 ~5 ?) q
if(lcd_code & BIT_MAST_COM2_L) - A) Y9 z( b1 V W! X1 O8 A8 J
{ : W0 L S' r% c' X
bit_arry_set_bit((void *)LCD->RAM,28*2+index*2);
$ n% t* ^* d: c0 V0 u( h! T" @6 N' a6 k }
( w8 d) W( q. N8 D7 G% W else
+ O/ {+ O, Q$ {6 w {
5 Y! e ~* m7 y0 ]1 k bit_arry_clr_bit((void *)LCD->RAM,28*2+index*2);
H( \5 z9 x! } a" Q8 I } / z! }4 ?' F1 S+ p8 b
! G$ ~) P4 e2 x' X: k2 _/ ~* z if(lcd_code & BIT_MAST_COM2_H)
+ \6 }" w9 `( x% M( L; U3 c { X8 ~# F y- V+ A" D
bit_arry_set_bit((void *)LCD->RAM,28*2+index*2+1);
V* M3 L X2 n- H5 F8 e0 A* { }
* o/ Q/ G0 a% a; {) e0 M else Z, P% P8 Q' A- r O4 M5 @& Z
{ / G9 w3 Q3 i$ P, l
bit_arry_clr_bit((void *)LCD->RAM,28*2+index*2+1);
$ e6 p) u" `* g2 ~& b } $ N+ [5 f8 u k
% s7 f8 u4 D2 y- {2 E$ F1 A
if(lcd_code & BIT_MAST_COM3_L) 3 L& w4 U. ^& N) |
{
1 o) R8 k& K0 J8 m- n bit_arry_set_bit((void *)LCD->RAM,28*3+index*2); 5 M- R7 ^- J9 L3 f- l* Z4 f
} + \# {. k; h# t7 q
else
- Q: M$ K' S- C7 p+ P2 O1 v { 6 L' ~ N3 q& l8 I7 l8 E% X
bit_arry_clr_bit((void *)LCD->RAM,28*3+index*2); * j0 c( s, k6 u& S& x" I
} 2 C+ Q; O4 E& f3 C
" J7 F8 G! D6 |7 G
if(lcd_code & BIT_MAST_COM3_H) ( C7 Y: K# U% Y+ s" O. \
{ " _/ T1 n" T- G( r8 k0 ^5 v [
bit_arry_set_bit((void *)LCD->RAM,28*3+index*2+1);
( v$ X K* a) K8 {* w9 V% I; x1 A }
' G9 Q, p- j& s! t- W7 [, d else 1 [, ?7 y- ~6 L$ Q" t" r0 A
{ 4 y0 O' Y1 g' s* { ^. a! r
bit_arry_clr_bit((void *)LCD->RAM,28*3+index*2+1);
$ }: J: f( X+ F }
- ~; k% R3 ~! r3 F$ k}
# }- F+ v) ?7 V% B5 [$ P& G- c5 S2 `4 o: y- t
void LCD_DispOffOnIndex(uint8index) - ^1 N0 v% M6 a/ M9 J2 }- @
{ & Q( v$ G; ]4 V# w# l/ \
LCD_DispCharOnIndex(LCD_CHAR_OFF,index);
4 P$ K4 u. {( r- D$ s, U5 B4 p}
6 S( Y- w) k0 Z% J' {! W& k
$ G3 V) J8 Q; r' f" C& _7 Q5 X! {) }: G) G, T6 @
void LCD_DispOffOnAllIndex(void) t: d C$ p2 S9 o# F
{
0 n( @. f7 S& n; Q1 j for(uint8 i=0;i<lcd_index_max_count;i++)[size][="" font][="" backcolor][=""color][color="#333333][backcolor=rgb(242," 250,=""254)][size="11.818181991577148px]" [="" color]. V# T$ Z" Q/ B) D C% Y- O! J% t
{
; H/ Q H$ b2 u& X* w LCD_DispCharOnIndex(LCD_CHAR_OFF,i); . o- i* }1 x3 @/ w: p9 C2 L- p
} 2 u: k) a+ d3 \( J" D
} % X6 g: X0 f5 W* e
4 t: ~7 e" w% ^+ [
void LCD_DispUint16(uint16num, uint8 blank)
9 z9 q& @& M- G{ - M8 w7 u6 A4 R2 }& C9 n: _
uint8 bcd[__MAX(5,LCD_INDEX_MAX_COUNT)]={0};
0 G9 K' k. ?4 L. R( z( I; c, ~/ T uint8 bcd_index;
* p: m4 R# a( K0 C4 F uint8 lcd_index; % R' x3 W( k& |4 L. ?) F
- f: Q4 J& M, F, ~* \- _' B
uint8 index_max_count=__MAX(5,LCD_INDEX_MAX_COUNT); . _) J% k8 g2 O9 q
1 M$ Q8 }9 K) w* A/ K, R u16_to_bcd_5(num,bcd);
% }* l9 e& C3 o+ Y 1 k5 S3 R6 U9 |& D) P5 x( p
bcd_index=index_max_count-1;
/ P% M7 R2 Q- R! M1 p" ` # \6 ]7 s1 \0 f2 Y
for(;(bcd[bcd_index]==0)&&(bcd_index!=0);bcd_index--)
. B, I* y9 R: O6 j+ c G {
# W) }4 y* o5 p. ^" ^ lcd_index=index_max_count-1-bcd_index;
+ \# E9 F: B% M$ P5 _2 I' h LCD_DispCharOnIndex(LCD_CHAR_OFF,lcd_index); 8 S1 x+ y1 y/ Q6 n( p" z
}
2 [1 [/ N6 j! K% u
5 `* k" u% {. k; X+ B for(;bcd_index!=0xff;bcd_index--) 8 F( O7 u( u- p
{ % L& @4 {8 t# X" }6 j; d
lcd_index=index_max_count-1-bcd_index;
. Z% |6 l& b# c: p9 l' @0 P6 ] LCD_DispCharOnIndex(bcd[bcd_index],lcd_index); : l6 e1 \8 `; C# P$ [/ s6 Y' ?
} . l. l, L2 h5 l1 b
}
2 [4 d9 K( U5 ^2 h4 h0 m6 G7 d' l+ y
5 |+ Z' q# E. E: @$ L" w/ l#include "stm8l15x.h"
& c" g# j- a6 I+ t2 V8 U6 Q#include "uni_int.h" % M, z5 ?1 d4 O5 |. M6 r
#include "delay.h"
: ]1 Z' D. v9 {; @. W- D' C# J#include "periph_lcd.h"
8 o' Y) @# A* p* F" u' \( `- T4 G8 O
int main()
' k2 `0 q& p# G% e6 O{ 6 d: u i/ f) P( \2 ~
LCD_Open();
. v4 [0 E: @ H% ~7 A2 w; f' G5 [ 3 y" R6 B3 N% B$ I4 f! p, d, v/ N% v
uint16 num=100;
# k1 O( A# z: Q8 R6 s- b0 H
# I* H1 h8 E; S4 [: v Z' K while(1) 8 U; \5 o+ ], ^( _
{
0 ~/ P" y( _- ?) s& F3 x. T2 j num--;
?! |! }+ v( s7 R- O3 H LCD_DispUint16(num,LCD_CHAR_OFF); # ~- G/ y6 M, C; d _
delay();
% V5 ^% v7 V5 y N) M5 q }
9 K! }4 P( h* F9 O9 T}
# I+ r+ O6 n" q( d2 S. ` f[size=11.818181991577148px][size=11.818181991577148px]
) T7 Q: n+ A3 B( p) X |
|