|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
8只数码管动态显示多个不同字符 仿真和源程序1 u7 ^, ~2 `3 M- z( I+ A2 S
/ C! {# |. j& X3 [5 p$ ?$ Q
) H% ?0 [: v, ^% H8 n
" ] Z+ Z5 b) L7 X所有资料下载:5 Q: U9 H' O7 P( s/ } h% ]! w
( ^0 v2 T7 _) o2 b( G# W' |8 O7 r/ i. u) K1 G! l
u" C; @& e2 j" t2 k5 u源程序:& R1 s" p1 U8 b. m
#include<reg51.h> //51头文件
( H- ]: C7 B# W#include<intrins.h>
e3 x/ E1 Q) A# r" D6 G4 b- ?#define uchar unsigned char //数据类型定义2 A6 \- @, A3 h% e' w
#define uint unsigned int
: @! h7 D0 m& W, J. J6 `2 O9 v* s0 zuchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//七段数码管0~9段码值8 C- n O" x, s0 Z
/ e" h6 e- B+ ^- ^5 D, @7 L; O
void DelayMS(uint x) //延时( a7 n" I% J# y* k. p/ |
{ uint t; # Y6 M4 B6 \$ F( A$ [+ l) L
while(x--) //while语句 b7 X8 _# L& a0 N; |, v- _/ Q
for(t=0;t<120;t++); //t的值大小确定变换快慢
$ H1 @( @9 R6 s y3 L" x# G } 9 o$ H1 `6 M6 _. \8 i/ I
//主程序
5 G9 v* M0 I4 s+ o% D Z. ]void main()" Z5 S: [6 ]! ?/ q
{
. M' F- f6 E3 L9 }uchar i,wei=0x80;
3 B) o8 ?6 W8 _. C4 Gwhile(1)# A9 b2 Q9 B& n, P5 T- V
{( Q1 Y3 G8 ^* H, ?+ n
for(i=0;i<8;i++) 6 \* F5 |( g/ C
{ P0=0xff;' ?% {: R# R# a- M# n' _5 ]
P0=DSY_CODE; //发送段码
7 Y) P1 S+ e9 x. W wei=_crol_(wei,1);
$ j$ g0 C" m" {; L. {( O P2=wei; //发送位码
2 q3 |3 ?" A# n/ F; v9 d DelayMS(2);
6 n: ]5 N$ k, l. S& U% u } 7 i+ i ^# `' {8 f+ b: o
}% o$ J: Y4 F7 i O5 x( g1 r4 i
} . [3 S3 c' k3 F( d2 g) U
1 p z! L+ } E4 c' {. C |
|