51单片机实现c语言字母滚动,我的单片机跑马灯c语言源程序

/*编译环境**************************************

功能:跑马灯实验,依靠程序延时控制跑马灯

CPU:  STC12C5A系列

IDE:  KEIL uVission2 V2.4a

************************************************/

/*资源分配**************************************

P0:        跑马灯

P33:跑马灯整体控制

P24-P27:数码管控制

************************************************/

#include        "stc12c5a.h"

#define                Dtube_SEG3        P27                                                //每一位的数码管总控IO定义

#define                Dtube_SEG2        P26

#define                Dtube_SEG1        P25

#define                Dtube_SEG0        P24

#define                LED_SEG                P33                                                //跑马灯总控IO定义

#define                HORSE_BUS        P0                                                //跑马灯定义

void Delay_Time(unsigned int time)                                //延时函数

{

while(time>0)

time--;

}

void main(void)

{

unsigned char horse_led;

P2M1&=~0xf0;                                                                //P2口                7 6 5 4 3 2 1 0

//                        O O O O                        :数码管总控IO为强推挽输出

//P2M1      0 0 0 0

P2M0|=0xf0;                                                                        //P2M0                1 1 1 1

P3M1&=~0x08;                                                                //P3口                7 6 5 4 3 2 1 0

//                                O                :跑马灯总控IO为强推挽输出

//P3M1              0

P3M0|=0x08;                                                                        //P3M0                        1

Dtube_SEG0=0;                                                                //关闭数码管显示

Dtube_SEG1=0;

Dtube_SEG2=0;

Dtube_SEG3=0;

LED_SEG=1;                                                                        //打开跑马灯显示

horse_led=1;                                                                //跑马灯初始值

for(;;)

{

HORSE_BUS=horse_led;                                        //把跑马灯的值送出,点亮一个灯

horse_led<<=1;                                                        //把跑马灯的值左移,准备点亮下一个灯.更改此处可以改变方向

if(horse_led==0)                                                //直到点亮最后一个灯,

{

horse_led=1;                                                //再回到第一个灯

}

Delay_Time(50000);                                                //延时,更改此处可以改变周期

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值