|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机8X8点阵资料包下载 含原理图 仿真 左移与静止显示.../ q2 n9 k9 u; s$ h
. Q( J6 [4 N4 h) ~4 ], _3 t
! ^% f- |! M! d( |3 X6 b a
: C6 z9 i+ Z5 \9 \
% ^2 T h$ W5 D# e单片机源程序如下(左移显示):/*********************************************************************************
' \. K, ?5 n: H; Q% F* 【编写时间】: 2014年3月5日
9 A- H; P# f, x: ]1 d* 【作 者】: 清翔电子&51hei6 E. p, Q q' N/ l: H( T
* 【声 明】: 此程序仅用于学习与参考,引用请注明版权和作者信息!
' k `9 |0 Y9 B6 B! E* 【函数功能】: 8*8点阵静态显示"亲"与心形符号 M* U! a' j/ n- t0 {; O+ O0 F
* 【使用说明】: 兼容1602接口,使用时请把点阵1脚至6脚对应接到1602 1脚至6脚,
% O; e* @4 t5 K使用QX-MCS51开发板可以直接烧写此程序,无需修改接口。. U6 K0 z* l, @( m" z
. y* c `* F! n9 m3 i" {**********************************************************************************/0 q: k- R0 V5 V! [$ I8 j: }% ?8 b
#include "main.h"9 T/ u# Q( Q R9 A. d6 ~
1 F; x/ a& R% X
//定义变量
6 n: W0 X* ~5 x* M+ Eunsigned char temp = 0xfe;& e. E0 V$ G. V5 O" [) h, e+ p
unsigned char KEY_NUM = 0;
% P* h- Q8 Y3 |6 N: A) p0 y" d, Q& j* c8 I2 D
unsigned char Display_word[4][4] = {
, h7 k6 ?( w8 ~9 c' s- c' R1 l9 D0 }0x00,0x48,0x2A,0x8E,0xFB,0x0E,0x2A,0x48, //亲; k% W) w' X; Z3 Y5 ~" n
0x0C,0x1E,0x3E,0x7C,0x7C,0x3E,0x1E,0x0C, //心- e2 f, g1 }+ C
};
5 ?2 ^ s8 z, s% T) s5 M- W) ^2 d8 U k* l; B
* s4 |/ @0 J, ^) ?2 W. g
" {! c: ?" H. M//****************************************************
. @2 J$ @' A. `6 X//主函数* b6 L4 |$ w& I/ e3 D+ {+ Z
//****************************************************; `1 ]# q7 S. F/ ] `
void main()) \3 f6 W; n }
{
5 Z0 ]6 E% d/ \! A: {8 g ~- f unsigned int i;
$ r' Y, e6 b1 \6 u. S, \ unsigned char j,k;3 {/ \9 Y1 m) X; v2 O7 c8 E7 }
while(1)+ S: {9 d9 k7 H
{/ ^; _. ^ S, H1 t5 {
for(i = 0 ; i < 1000 ; i++)
4 f6 r# G* q- v9 A: L {
0 ] F; H) a& ^; y0 B4 p) C temp = 0x7f;
7 a0 c3 {- ^ \. s for(j = 0 ; j < 2 ; j++) //显示前两个字母
4 F1 G( {# O. h8 [ I {6 ?1 j. t' F2 o) O. M# k9 _
for(k = 0 ; k < 4 ; k++) //一个字母4BYTE9 T+ `( X1 i& _) D9 w, k% J
{4 j. ~9 ?; j% v* V1 z! V
Send_Byte(temp); //列选择4 p7 F2 g# q$ f3 P: {
Send_Byte(Display_word[j][k]); //行数据
( B/ `9 d' N: Z; a: b LEDARRAY_LAT = 1; //锁存数据/ D! M, p* M/ i# y n5 J
_nop_();3 m; h3 d; A. X; Z D
/ @0 U W2 p' c5 i( B( d+ h7 v1 V/ [ LEDARRAY_LAT = 0;! B1 ?# y! {& J& \
_nop_();! {3 Y$ U) d. R+ C
temp = (temp>>1)|0x80;- @) m6 Q3 v) J: V2 C5 k7 M
}. \+ G* k9 s" i0 m5 G
}# n A3 L4 C) `& }3 p; d
}
( ^0 j4 R: f# V% ^+ x0 [4 a( f7 i1 m, n( w+ `' r/ Z8 L
for(i = 0 ; i < 1000 ; i++)
) ^! {. ^1 S+ |: V {
V7 @0 s- F9 F6 C7 V3 B; y temp = 0x7f;
' {! P7 u* z9 ^0 | for(j = 2 ; j < 4 ; j++) //显示前两个字母1 c6 M0 \- r/ w: V S
{# t; O7 o6 n3 v m# v" X6 g
for(k = 0 ; k < 4 ; k++) //一个字母4BYTE0 M6 g6 G' m, H6 i2 R
{
! M# \8 ]9 }% j& {0 K s Send_Byte(temp); //列选择1 r; l/ h. ?3 j d
Send_Byte(Display_word[j][k]); //行数据, Q# h; K6 a9 ]: y: n1 N4 n- t- G
LEDARRAY_LAT = 1; //锁存数据
+ K6 W, @. K/ l( m3 n% P& [" U _nop_();9 i8 \* ~; t% d9 m4 c, p
/ C5 A+ t) N/ w7 J LEDARRAY_LAT = 0;5 l- Y! T$ {/ t2 k
_nop_();
3 _$ q, ]5 v, M temp = (temp>>1)|0x80;
& Q+ M& o" R1 j2 P+ O* r }4 g1 I( G8 j- T2 Y/ o/ N4 d
}
" d& r0 ~1 F: \2 C }) s( a& j8 B" E5 ?
/ ]6 x7 \" l; {; H/ P5 c @
- \7 l# v' c& ^6 e }4 | _7 n- ~: X1 V, u5 A
}% o! ?7 j0 A0 [# O; Y- R3 Z7 M3 A. ~
/ U" p! o' Q, t) J//****************************************************$ C! j1 P3 o% [* P, `
//发送一个字节数据. t) N/ z1 \0 q/ Z
//****************************************************; i1 k! g$ P F2 F8 Q
void Send_Byte( unsigned char dat)) p O. L# A6 Z' B' c+ P) Q
{
) c4 M3 t8 x7 r% t: ?5 d unsigned char i;; w1 r& R# s0 v- g2 }
LEDARRAY_CLK = 0;
6 `! j8 F. B% O; Y0 Q2 [, v" k _nop_(); ! s: L/ ?/ }1 o8 X- G
LEDARRAY_LAT = 0;% P' b, Y) p1 w2 [$ w
_nop_();
; i- A+ ?# w; V+ M' z
0 c5 h$ f: }8 C for( i = 0 ; i < 8 ; i++ )
9 g. G1 e6 T: D; g4 o* ~" ` { r4 w, _7 T9 C" ^" P" S8 S! Q
if( dat&0x01 )+ Q: ~0 I/ n0 Z/ o
{. C: m( R) e, B3 z7 C& p' m# T
LEDARRAY_DI = 1; - w* O$ E( B x5 K$ ]7 u
}, x C9 v5 \7 s
……………………
1 M- {1 y4 ]5 y
6 m! V V" |6 e3 _+ S* k…………限于本文篇幅 余下代码请从论坛下载附件…………
$ C" P1 a4 ?7 }$ b @
1 q6 _0 | x$ D9 v3 |; D4 h2 g. z2 N/ w9 a
/ t" A% F: W, ?, z9 ^ |
|