display.c

来自「led电路测试程序」· C语言 代码 · 共 66 行

C
66
字号
#include<reg51.h>
#define CYCLE 50000      //定义中断周期
sbit CSL=P2^0;//地位显示控制
sbit CSH=P2^1;//高位显示控制
sbit Start=P2^6;
unsigned char data i=0x00;
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//定义字形0-9编码表

void pulse(void) interrupt 1 using 2			//定时器0中断服务程序
{
       static unsigned char j=0x00;
       if(++j>=20)
       {
         i=++i%10;
         j=0;
       }
	TH0=(65536-CYCLE)/256;//重装初始值
	TL0=(65536-CYCLE)%256;
}
void Display()				//显示子函数
{
	CSL=1;
	CSH=0;
	P1=table[i];
	CSL=0;
	CSH=1;
	P1=table[i];
}

//延时模块
void Delay(unsigned int value)
{
	while(value!=0)
	{
		value--;
	}
}

void main()
{
        while(1)//等待开始键按下
	{
                Display();
		if(0==Start)
		{
			Delay(1000);
			P2=0xff;
			if(0==Start)
				break;
		}
		else
			P2=0xff;

	}
        TMOD=0x01;//设置定时器初值,开中断,启动定时器
	EA=1;
	ET0=1;
	TH0=(65536-CYCLE)/256;
	TL0=(65536-CYCLE)%256;
	TR0=1;
        while(1)
        {
                Display();
        }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?