数码管移位闪动加减显示c语言,数码管位移显示C语言程序设计

原标题:数码管位移显示C语言程序设计

#include //51芯片管脚定义头文件

#include //内部包含延时函数 _nop_();

#define uchar unsigned char

#define uint unsigned int

uchar code code[11] ={ 0xC0,0xF9,0xA4,0xB0,0x99,

0x92,0x82,0xF8,0x80,0x90,0xff };

uchar data display[9]={10,10,10,10,10,10,10,10,10};

uchar shift,n;

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

/* */

/* 延时函数 */

/* */

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

void delayms(uint ms)

{

uchar t;

while(ms--)

{

for(t = 0; t < 120; t++);

}

}

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

数据交换函数(向左移动)

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

void exchange1()

{

uchar i;

for(i=1; i<9; i++)

{

display[i] = i;

delayms(1000);

}

}

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

数据交换函数(向右移动)

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

void exchange2()

{

uchar i,j;

for(j=0; j<8; j++)

{ for(i=0; i<8; i++)

{

display[i]=display[i+1];

}

display[8]=10;

delayms(1000);

}

}

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

主函数

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

void main(void)

{

uchar times;

P0=0xff;

P2=0xff;

n=0;

shift=0xfe;

times=8;

TMOD = 0x01; //定时器T0工作方式1

TH0 = 0xfc; //1ms定时常数

TL0 = 0x66;

IE = 0x82; //允许定时器T0中断

TR0 = 1; //启动定时器T0

while(1)

{

exchange1();

delayms(1000); //停止滞留时间

exchange2();

delayms(1000); //停止滞留时间

}

}

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

中断服务函数

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

void leddisplay() 1

{

TH0 = 0xFC; //1ms定时常数

TL0 = 0x66;

n++;

P0=ledcode[display[n]]; //送段码

P2=shift; //送位码

shift=shift<<1|0x01; //修改位码

if(n>8)

{

n=0;

shift=0xfe;

}

}

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

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值