Pages: [1]   Go Down
Print
Author Topic: สร้าง monitoring จาก RS232 ที่คุยผ่าน Hyperterminal ระหว่าง 2 เครื่อ&  (Read 8236 times)
0 Members and 1 Guest are viewing this topic.
nathapol1992
มาใหม่
*
Offline Offline

Posts: 2


« on: October 12, 2013, 04:37:29 PM »

คือตอนนี้การทดลองของPIC 16F877A สามารถรับค่าจากคอม 2 เครื่องที่ส่งมาและส่งกกลับได้แล้วครับ ทีBaud rate ค่าหนึ่งถ้าคอม 2 เครื่องนี้เปลี่ยน baud rate ไป

อยากให้สามารถปรับ Baud Rate อัตโนมัติ สามารถทำได้ไหมครับ โค้ดผมได้ดังนี้ครับ

Code:
#include <16f877A.h>
#fuses NOWDT,HS, NOPROTECT,NOLVP
#use delay (clock=20000000)
#use rs232(baud=9600,rcv=PIN_B4,stream=A)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7,stream=B)
#include "lcd.c"

char c[50],d[50];
int s1,s2;
int push0=0,push1=0;
int da=0,db=0;
int buad=0;
#INT_RB
void IntRB_isr(void){
c[s1]=getc(A);
lcd_init();
lcd_gotoxy(1,1); printf(lcd_putc,"%c  1",c[s1]);
s1++;
if(input(PIN_B1)){
disable_interrupts(GLOBAL);
disable_interrupts(INT_RDA);
disable_interrupts(INT_RB);break;}
}
#INT_RDA
void IntRDA_isr(){
d[s2]=getc(B);
lcd_init();
lcd_gotoxy(1,2); printf(lcd_putc,"%c  2",d[s2]);
s2++;
if(input(PIN_B1)){
disable_interrupts(GLOBAL);
disable_interrupts(INT_RDA);
disable_interrupts(INT_RB);break;}

}
void main(void)
{

lcd_init();
lcd_gotoxy(1,1); printf(lcd_putc,"select buad rate");
while(1)
{
if(input(PIN_A1)){
while(1){

enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
if(input(PIN_B1)){
disable_interrupts(GLOBAL);
disable_interrupts(INT_RDA);
disable_interrupts(INT_RB);break;}
}
                }



if(input(PIN_A2))
       {
      lcd_init();
      lcd_gotoxy(1,1); printf(lcd_putc,"A is :\n%c%c%c%c%c",c[push0],c[push0+1],c[push0+2],c[push0+3],c[push0+4]);
     delay_ms(200);
       push0++;  
                  }
if(input(PIN_A3))
       {
      lcd_init();
      lcd_gotoxy(1,1); printf(lcd_putc,"A is :\n%c%c%c%c%c",c[push0],c[push0+1],c[push0+2],c[push0+3],c[push0+4]);
     delay_ms(200);
       push0--;  
                  }
if(input(PIN_A4))
       {
      lcd_init();
      lcd_gotoxy(1,1); printf(lcd_putc,"B is :\n%c%c%c%c%c",d[push1],d[push1+1],d[push1+2],d[push1+3],d[push1+4]);
      delay_ms(200);
       push1++;  
                  }
if(input(PIN_A5))
       {
      lcd_init();
      lcd_gotoxy(1,1); printf(lcd_putc,"B is :\n%c%c%c%c%c",d[push1],d[push1+1],d[push1+2],d[push1+3],d[push1+4]);
      delay_ms(200);
       push1--;  
                  }
}
}
« Last Edit: October 12, 2013, 04:39:35 PM by nathapol1992 » Logged
nathapol1992
มาใหม่
*
Offline Offline

Posts: 2


« Reply #1 on: October 12, 2013, 04:38:43 PM »

BLOGDIAGRAM ครับ


* Untitled.png (57.55 KB, 516x578 - viewed 2169 times.)
Logged
Pages: [1]   Go Up
Print
 
Jump to: