|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8只数码管动态显示多个不同字符 仿真和源程序* G: Y; O& S4 R$ b: D4 F
. r5 z* W3 V* {# ?
# x( w4 k, Z4 w3 x 6 Q. _# b' c% e3 F. }7 d
所有资料下载:( B# `. ]3 O* z' I% _. W! Q5 A
- ]8 z% K4 ^/ k% f5 u* q3 o% \ v" c) K7 c% Q, ~( I9 ?- a6 b% ~
3 j8 R9 R' Z8 {2 V7 S2 o
源程序:
7 d9 l: ?. v4 V) D#include<reg51.h> //51头文件; O7 V, r( H8 F+ Z. z: C
#include<intrins.h> - ~& E+ r! |8 u1 \+ G9 T
#define uchar unsigned char //数据类型定义 U' i, K% j# @& K7 ~$ q) s
#define uint unsigned int 9 v+ ] t ?$ v/ y5 T# W! ]
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//七段数码管0~9段码值# Z2 X* f, l, J( u# W
* d+ J/ g. k5 v$ p8 }( K/ o Y
void DelayMS(uint x) //延时5 j% L' b7 W0 Z# y0 {. U4 I
{ uint t; + o7 U& @1 `" k: @! n s
while(x--) //while语句8 M% ~' m$ R& [" p& g/ d+ G/ T
for(t=0;t<120;t++); //t的值大小确定变换快慢& q) B% a6 M: m# q1 V& K
}
2 k+ r g% l5 K8 o( E3 [: p# @! x//主程序9 e# E. k$ ^! Q5 r! G. g
void main()0 l: [+ ?0 G+ h
{: `1 j, a/ C7 B! Q" k$ Q9 ?$ u! G
uchar i,wei=0x80;4 z2 i7 m8 x6 Z' |* j- ?! H, c) c
while(1)
" n; D# s, M* [: k, A' p# f{$ e# e* I( Z& D* e+ M L# E, l
for(i=0;i<8;i++) g2 S4 _8 r9 Y# R ?
{ P0=0xff;& }& X. N* d3 q
P0=DSY_CODE; //发送段码
- I% e8 P m& X3 t3 D wei=_crol_(wei,1);
+ R3 m$ ]4 w2 o/ L! P$ w0 u P2=wei; //发送位码
0 a3 i% Y- ?" ~2 r5 p7 K; ] DelayMS(2); * [4 b0 A7 }7 C L) O9 D
}
1 g% L6 n: C$ K( p }
4 j7 F* R3 \9 i4 \0 g } ' q) O( F8 U6 t8 N) S' @
' N6 K3 k' N7 C6 d |
|