當前位置:編程學習大全網 - 編程語言 - RS-232-C的C語言程序

RS-232-C的C語言程序

通過RS232總線與PC進行通信的測試程序(c語言)

/*這是壹個使用單片機串行通信口通過RS232總線與PC進行通信的測試程序,無需擴展.可將DB9的第2和第3腳短路,進行自收自發測試.采用串行中斷接收,速率:9600,通信方式2,晶振使用:osc=11.0592MHz。使用SW1-SW6鍵盤發送文本數字1-6,數碼管顯示接收的ASCII數據*/

void main(void)

{

SCON=0x50;

TMOD=0x21;

TH1=0xfd;

TL1=0xfd;

TH0=0xf4;

TL0=0x48;

ES=1;ET0=1;EA=1;

TR1=1;

TR0=1;

while(1)

{

if(!key){ Delay(30000);

a=Key_down();

SBUF=table[a];

while(TI==0);

TI=0;

}

}

}

uchar Key_down(void)

{ uchar x;

if(!sw1)x=1;

else if(!sw2)x=2;

else if(!sw3)x=3;

else if(!sw4)x=4;

else if(!sw5)x=5;

else if(!sw6)x=6;

return(x);

}

void Int_T0(void) interrupt 1

{

TH0=0xf4;

TL0=0x48;

if(count==5)count=0;

else count++;

switch(count)

{

case 0:DIG_NUM=0x7f;

LED_DISPLAY=buff_led1;

break;

case 1:DIG_NUM=0xbf;

LED_DISPLAY=buff_led2;

break;

case 2:DIG_NUM=0xdf;

LED_DISPLAY=buff_led3;

break;

case 3:DIG_NUM=0xef;

LED_DISPLAY=buff_led4;

break;

case 4:DIG_NUM=0xf7;

LED_DISPLAY=buff_led5;

break;

case 5:DIG_NUM=0xfb;

LED_DISPLAY=buff_led6;

break;

default:break;

}

}

void Int_Serial(void) interrupt 4

{

while(RI==0);

a=SBUF;RI=0;

buff_led1=buff_led2;

buff_led2=buff_led3;

buff_led3=buff_led4;

buff_led4=buff_led5;

buff_led5=buff_led6;

buff_led6=a;

}

void Delay(int t)

{while(--t);}

  • 上一篇:大連的IT企業具體有那些?比較好的有那些?
  • 下一篇:如何設定自定義熱鍵,使其適合eve的PVP戰鬥
  • copyright 2024編程學習大全網