Merhaba;
Proteus programında 16f877 mikrodenetleyicisini kullanarak seri iletişim yapmaya çalışıyorum. Mikrodenetleyicinin pin_a5 pinine ağlı butona bastığımız zaman 0xAA bilgisini c# yazdığım programa gönderecek ve butonun rengini değiştirmesini istiyorum. veriyi gönderiyorum ancak c# programında hiç bir değişiklik yok.
ccs kodları
#include <16F877.h>
#fuses XT,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_e1,rcv=PIN_e2,bits=8)
//#use rs232(baud=9600,parity=N,xmit=PIN_e1,rcv=PIN_e2,bits=8)
#include <LCD420.C>
//char x;
/*
veri(){
char x[80];
gets(x);
if(x[0]=='1'){
output_c(0x01);
}
if(x[0]=='2'){
output_c(0x00);
}
return;
}
*/
void main(){ //Ana Fonksiyon.
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
while(1){
if(!input(pin_a5)){
output_high(pin_C2);
putc(0xaa);
}
//veri();
}}
c# kodları
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace seri_1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Open();
string Gelen = serialPort1.ReadLine();
if (Gelen == "0xaa")
{
button2.BackColor = Color.Red;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
string veri = textBox1.Text;
serialPort1.WriteLine(veri +(char)13);
serialPort1.Close();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
serialPort1.Write("2 "+ (char)13);
serialPort1.Close();
}
private void button2_Click(object sender, EventArgs e)
{
if (!serialPort1.IsOpen)
{
serialPort1.Open();
}
serialPort1.Write("1"+ (char)13);
serialPort1.Close();
}
}
}