📄 yn.c
字号:
#include <reg51.h>
/*unsigned char DATA_7SEG[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};*/
/*unsigned char DAT[11]={0xfd,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x00};*/
unsigned char DAT[11]= {0xbc,0xb5,0x4d,0xf4,0xfc,0xc1,0xfd,0xdd,0xf1,0x00};
/* a-15
b-7
c-1
d-2
e-3
f-4
g-5
h-6
11111101 abcdefg fd
01000001 bc 41
10110101 abdeg b5
11100101 abcdg e5
01001101 bcfg 4d
11110100 acdeg f4
11111100 acdefg fc
11000001 abc c1
11111101 abcdefg fd
11011101 abcefg dd
11111001 abcdef f1
*/
unsigned char DIG[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
void delay(int ) ;
void out_disp(unsigned char);
void init_rs232();
void tx_char( char );
unsigned char rx_char();
void main()
{
char dat1,dat2;
int i;
delay(1000);
init_rs232();
out_disp(~DAT[1]);
out_disp(~DAT[1]);
P11=0; P11=1;
while (1){
dat1=rx_char();
dat2=rx_char();
for (i=0;i<10;i++){
if (dat1==DIG[i]) break;}
out_disp(DAT[i]);
for (i=0;i<10;i++){
if (dat2==DIG[i]) break;}
out_disp(DAT[i]);
P11=0; P11=1;
tx_char(dat1);
tx_char(dat2);
}
}
void init_rs232()
{ /*PCON=0x80; 波特率加倍 */
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
TI=1;
//TCON.6=1;
//SCON.1=1;
/* TH1=0xfa;*/
/* TL1=0xfa;*/
/* TR1=1;*/
/* TI=1;*/
}
unsigned char rx_char()
{
while(1)
if((SCON & 0x01)==0x01) break;
// SCON.0=0;
RI=0;
return SBUF;
}
void tx_char( char c)
{
while(1)
if((SCON & 0x02)==0x02) break;
// SCON.1=0;
TI=0;
SBUF=c;
}
void delay(int time) {
int i,j;
for (i=0;i<time;i++)
{
for (j= 0;j<10;j++) ;}
}
void out_disp(unsigned char dd) {
unsigned char i,k;
for (i=0;i<8;i++) { k=dd & 0x01;P10=k;P12=1;dd=dd>>1;P12=0; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -