myproj.c

来自「暑假为学生培训写的51相关接口的所有源码及项目代码」· C语言 代码 · 共 102 行

C
102
字号
#include <reg52.h>
typedef unsigned char BYTE;
BYTE Num;
BYTE Times;
BYTE TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
void Delay(int nCount);
void DispNum(void);
void DispLed(void);
void main()
{
    SP=0x60;	
    Num=0x01;
	Times=0x10;
	P2=0x00;
	P0=0xff;
	TMOD=0x21;
	TH1=0xfd;
	TL1=0xFd;
	TH0=0x00;
	TL0=0x00;
	SCON=0x50;
	PCON=0x00;
	IE=0xd7;
    IT1=1;
    IT0=1;
    TR1=1;
	TR0=1;
	RI=0;
	while(1)
    {
        DispLed();
        DispNum();
    }
}
void serial(void) interrupt 4//定义串行口中断处理子程序
{
    ES=0;
    if(TI)
        TI=0;
    while(RI)
    {
        ACC=SBUF;
        RI=0;
        Num=ACC;
        if(Num==0x00)
            TR0=0;
        else
        {
            TH0=0xff;
	        TL0=0xff;
	        Times=0x10;
	        TR0=1;
        }   
    }
    ES=1;
}
void TimeSec(void) interrupt 1//定义串行口中断处理子程序
{
    TR0=0x0;
    TL0=0x00;
	TH0=0x00;
	if(--Times<=0)
    {
        Num+=0x1;
        Times=0x10;
    }   
    TR0=0x1;
}
void Int0Add(void) interrupt 0//定义串行口中断处理子程序
{
    EX0=0;
    Num+=1;
    EX0=1;
}
void Int1Dec(void) interrupt 2//定义串行口中断处理子程序
{
    EX1=0;
    Num-=1;
    EX1=1;
}
void DispNum(void)
{
    BYTE i,j;
    i=Num/0x10;
    j=Num%0x10;
    P0=TAB[i];
    P2=0x40;
    Delay(500);
    P0=TAB[j];
    P2=0x20;
    Delay(500);   
}
void DispLed(void)
{
    P2=0x80;
    P0=Num;
    Delay(500);
}
void Delay(int iCount)
{
    while(--iCount);
}

⌨️ 快捷键说明

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