📄 text2
字号:
#include<AT89X52.h>
#define uchar unsigned char;
#include <string.h>
#define INBUF_LEN 4 //数据长度
unsigned char inbuf1[INBUF_LEN];
unsigned char checksum,count3;
bit read_flag= 0 ;
void init_serialcomm( void )
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload
//PCON |= 0x80 ; //
TH1=0XFD;
TL1=0XFD;
//TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run // TI=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI== 0 );
TI= 0 ;
} //向串口发送一个字符串,strlen为该字符串长度
void send_string_com( unsigned char *str, unsigned int strlen)
{
unsigned int k= 0 ;
do{
send_char_com(*(str + k)); k++;
} while (k < strlen);
}
void DELAY(unsigned char count2)
{ unsigned char i;
do{
for(i=0;i<6233;i++);
count2--;
}while(count2!=0);
}
unsigned int data time;
uchar data count1;
uchar data count;
unsigned int *trp;
uchar data display[7];
uchar code led_segment_code[]={ 0x3F,0x30,0x5B,0x4F,0x66,0X6D,0X7D,0x07,0x7F,0x6F};
main()
{TMOD=0x00;
TH0=0XCB;TL0=0X1D;
IE=0X82;TR0=1;
P2=0x10;
trp=&time;
init_serialcomm(); //初始化串口
while(1)
{ DELAY(5);}
//send_char_com( 44); }
}
void timeint(void) interrupt 1
{ uchar data i;
uchar data r1;
unsigned int data U;
TH0=0XCB;TL0=0X1D;
count1++;
if (count1==200)
{time++;
count1=0;
SBUF=time;
while (TI== 0 );
TI= 0 ;
//send_char_com(00);
}
U=time;
for(i=0;i<=7;i++)
{display[i]=U%10;
U=U/10;}
for(r1=3;(r1>=1)&&(display[r1]==0);r1--)
{if (display[r1]==0)
display[r1]=0xff;}
if(P2==0X80)
{count=0;
P2=0x10;
P0=led_segment_code[display[count]];}
else
{count++;
P0=led_segment_code[display[count]];
P2<<=1;
}
P1=0XAA;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -